синхронизация волчка

Что бы еще такого сделать?... Предлагайте! Обсудим все!!!
Ответить
Опытный кот
Аватара пользователя
Сообщения: 732
Зарегистрирован: Чт дек 29, 2005 07:29:25
Откуда: Омск

Сообщение Spider »

У меня в офисе где-то в загашниках валяется "Propeler Clock" с синхрой от акселерометра. ТАк оно грутится на вентиляторе и ничего - работает, работало... Пока не попало на полку :)
Контактная информация:
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

мне просто интересно сколько там будет число g на краю волчка ...
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Реклама
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1393
Зарегистрирован: Ср янв 30, 2008 17:52:55

Сообщение vistador »

давай те лучше про исходник подумаем
Собутыльник Сэра Мурра
Аватара пользователя
Сообщения: 2918
Зарегистрирован: Вт янв 10, 2006 00:26:45
Откуда: Челябинск

Сообщение WildCat »

ну исходник элементарный. допустим у нас 2 датчика, тогда на 1 оборот волчка получаем 2 импульса или каждый импульс на угол Пи. меряем период между импульсами,умножаем на два, получаем время одного оборота. делим это время на желаемое число пикселей на оборот и получаем время горения одного столбца. такие проекты описаны в "Вопросы по механической развертке"
Поэтому тут тип датчика не важен, лишь бы на выходе был четкий импульс.
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1393
Зарегистрирован: Ср янв 30, 2008 17:52:55

Сообщение vistador »

да...вот еще сфотал в той статье.....наверно тут потребуется опытный взгляд таких корифеев как например ARV....это вроде как чтото по проге....но мне пока непонятно ничего.
Изображение
Изображение
написано вроде что это основной алгоритм для написания проги.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

это основной алгоритм по формированию рисунка .
или такой же как говорил WildCat , или что-то подобное (я не профессионал пока в этом ) .

включается счётчик , потом приходит прерывание от датчика на 32 ногу (нарастающий сигнал ) , в переменную заносится время счётчика , потом идёт проверка новый ли это круг ( :shock: правильно ли я понял ? :shock: ) , если новый , то идёт поправка на скорость вращения . прерывания от таймера 0 идёт каждую миллисекунду и он считает кол-во проходов своих , т.е. банально счётчик мс без переполнения . максимально 255 .
далее прерывание по счётчику 1 , потом с ним что-то интересное делается , потом выполняется проверка не сбилась ли синхронизация и если сбилась , то выводить предыдущую колонку (вывод идёт колонками , колонки как я понимаю имеют вид массива ).

ждём более подробных коментариев от спецов :)

PS : манипуляции с таймером 1 мне почти не понятно . что там да как . и ещё - что такое #ifdef и #endif ?

PSS : vistador , а картинки реального размера или есть по-больше ? если есть , то дайте пожалуйста ссылки .
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Реклама
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

и ещё - что такое #ifdef и #endif ?
Директивы компилятора.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18784
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Кто б спаял волчек - я б прошивку сделал :) у самого руки дойдут еще неизвестно когда... эх...

Исходник проги содержит главные моменты синхронизации - формирование рисунка там практически отсутствует, наверное, в основном цикле выводится из какого-то массива столбцов в порты... А в остальном все верно догадались: зафиксировали синхро-импульс, рассчитали скорость вывода столбиков, и т.д. Т.е. обязательно ведется подстройка - волчек-то замедляет свое вращение с каждым оборотом... По идее предусмотрен вариант, когда несколько синхроимпульсов успевает прийти за один оборот - кажется, это и задается директивами, но после беглого взгляда точнее не скажу - всего лишь предположения.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

как я понял формирование рисунка там уже заложено . остаётся только доставать числа из массива и отправлять их в порт . счётчик массива в программе уже есть .

попытался просимулировать в протеусе(МК + источник такта + сдвиговый регистр + светодиодная матрица) и вот что выскакивает :
Изображение
как избавиться ?

разобрался более-менее с директивами , но их применение (как вообще , так и в данной программе) вызывает недоумение . после #ifdef идёт странный кусок кода ... его практическое применение я могу предполагать только в счётчике кол-ва раскруток волчка и с каждой следующей раскруткой будет меняться рисунок . иначе при неопределённом выражении ROTATION_COUNTER этот блок пропускается .
ещё дополениня : game_status - это состояние второго переключателя , game_ongoing - дословно "продолжающаяся игра" - тут вариантов нету что это . но понятно что идёт сравнение состояния выключателя с чем-то и в случае совпадения идёт прибавка счётчика рисунка . game_ongoing скорей всего используется в какой-то части программы для определения остановился ли волчёк . скорей всего это будет происходить по достижении счётчика кол-во проходов таймера0 значения 255 (т.е. 255 мс нету импульсов от датчика вращения).
ну и ещё мысль : идея с получением импульсов от сети 50Гц совсем не вяжется с программой - предусмотрен счётчик до 255мс , что противоречит 50Гц - импульс 20мс , т.е. счётчик никогда не достигнет значения более 20 .
ну и ещё одна мысля : второй датчик служит только противовесом , т.к. умножения в программе не встречается , да и подключать его вроде как некуда.
и ещё :

Код: Выделить всё

if (current_column > (COLUMN_NUMBER*8)/10)      // если текущая выводимая колонка больше кол-ва колонок умноженного на 0.8 
        {
        timer1_startvalue = 1000/COLUMN_NUMBER*current_round_time;  // то рассчитать по новой таймер1
        current_column = 0;          // и сбросить текущую колонку 
говорит о том , что перерасчёт времени свечения будет происходить при кол-ве выведенного изображения в 80% от заданного . лично мне не нравится такая реализация , т.к. надо будет рассчитывать общее кол-во колонок и заранее вносить пустые колонки , а с другой стороны будет убираться наложение колонок друг на друга ... я в раздумьях ...
да , кто-нибудь , отвтетьте в теме по всему вышесказанному , а то уже надоело нажимать кнопку "правка" :)
Вложения
Снимок4.JPG
(14.91 КБ) 438 скачиваний
Последний раз редактировалось LINKS_234 Чт янв 15, 2009 00:07:52, всего редактировалось 1 раз.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1393
Зарегистрирован: Ср янв 30, 2008 17:52:55

Сообщение vistador »

LINKS_234 писал(а):э

PSS : vistador , а картинки реального размера или есть по-больше ? если есть , то дайте пожалуйста ссылки .
все что смог сфотать...а на сайте журнала нет еще этой статьи
...скоро появится наверно печатка..
тогда пришлю
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

балин , хрень какая-то - совмещаются оба прерывания под тегами [ code ]
так что так помещу : ...
вротмненоги ... и так совмещается ...
значит рисунок :)
Изображение
Изображение


наконецтаки я дошёл до того , что разобрался с механической развёрткой :)
по поводу программы - есть одна нелогичная строчка . зачем она - понять не могу (в коде есть комент соотв. ) ! данный исходник рекомендую к ознакомлению новичкам , т.к. прокоментил каждый кусок кода :)

PS : весь исходник в код не вмещается , так что привёл только фрагмент где у меня непонятки . всё остальное с коментами в аттаче .
Вложения
vol4ok.c
(4.49 КБ) 415 скачиваний
Последний раз редактировалось LINKS_234 Чт янв 15, 2009 01:39:26, всего редактировалось 1 раз.
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1393
Зарегистрирован: Ср янв 30, 2008 17:52:55

Сообщение vistador »

классно пошло ...
жаль я в си вообще ничего не соображаю...
как то ассемблер еще чтото пытаюсь чтото думать....но си не лезет в голову :)
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

на сишке проще :)
к тому же у меня каждая строка расписана что да куда . там только разобраться с одной строкой . когда есть условие и если условие не выполняется , то надо текущую колонку уменьшать . или это сделано из-за того что прерывание по таймеру1 может раньше придти таймера0 или я хз . прерывание от таймера0 идут каждую мс . т.е. получается время горения должно быть меньше 1мс и рассчитывается по формуле - 1000/(кол-во колонок)*(частота вращения - от 1 до 255 )

хотя я тут посчитал ... допустим волчёк делает 1 оборот за 1мс :shock: , для нормального текста требуется около 50 колонок . тогда время на отображение 1 колонки составит 20 единиц . т.к. таймер1 работает на 1МГц , то это составит 1/10^6 * 20 = 20мкс . 20мкс *50 = 1000мкс = 1мс . прерывания от таймера0 идут с той же частотой ... т.е. блин надо офигенно раскрутить волчок в вакууме чтобы он не только не потерял свою первоначальную скорость , но блин и набрал свыше первоначальной :) тогда сработает строчка
if (current_column < COLUMN_NUMBER)
{
current_column++;
}
else
{
current_column--;
:)))
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1393
Зарегистрирован: Ср янв 30, 2008 17:52:55

Сообщение vistador »

ну вот этот журнал в нете.....
http://www.alltomelektronik.se/tidn2008.html
но нет там еще этого в показе....последний номер 9 и все( я кстати его купил месяца полтора назад)...так что все появляется на электронке у них с опозданием. И вообще все заточено под торговлю запчастями...и лазеек всяким продвинутым оставляют немного.
остается людям только покупать его в бумаге......еще есть на дисках ..но цена европейская :(
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

а смысл покупать такие журналы , если они появляются в инете ? причём неважно когда , т.к. они всёравно опережают славян по развитию и технологиям , и некоторых комплектующих можно просто не найти . старые журналы так же хорошо читаются как и новые .

судя по всему мы тут остались вдвоём и никто даже исходник глянуть не желает и высказаться по нему ... :(
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1393
Зарегистрирован: Ср янв 30, 2008 17:52:55

Сообщение vistador »

LINKS_234 писал(а):а смысл покупать такие журналы , если они появляются в инете ? причём неважно когда , т.к. они всёравно опережают славян по развитию и технологиям , и некоторых комплектующих можно просто не найти . старые журналы так же хорошо читаются как и новые .

... :(
смысл в том, что этот журнал заточен только под продажу таких конструкторов, там на каждый элемент - свой артикул для заказа по нету (ОПЯТЬ ЖЕ)поэтому выгоднее впаривать такие схемы на каждом шагу всем .Авось кто и заинтересуется.
что касается отставания...да..отдельные индивидуумы тут могут хорошо развиваться , поскольку можно купить по нету все.Например я в России искал одну микросхему...на меня продавцы смотрели с дикостью - типа не найдете вы ее никогда.
А тут посмотрел на сайте - лежит себе доллара за полтора всего....
Но поголовно население не интересуется ничем таким...и в развитии они не очень далеко ушли вперед. Не много надо ума , чтоб заказать по нету процессор 64выводной прошитый под протоколы диагностики, припаять все это на готовую плату и считать себя оооочень крутым парнем , создавшем типа самому CAN -адаптер для готового же софта на лаптопе.А реально создали все это просто парни, в кого вложили уже реальные деньги.
извините за оффтоп
Модератор
Аватара пользователя
Сообщения: 11169
Зарегистрирован: Чт окт 27, 2005 18:50:07
Откуда: из мест не столь отдалённых

Сообщение Сэр Мурр »

Что-то мне кажется, что эта тема оченно перекликается с http://radiokot.ru/forum/viewtopic.php?t=12864&start=20 Propeller clock.
Вы уж определитесь, где флудить, а где- обсуждать конструкции.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2296
Зарегистрирован: Пн июл 14, 2008 18:12:37

Сообщение LINKS_234 »

Сэр Мурр , извините за offtopic :roll:
но тема эта отличается от пропеллера и хотелось бы её сохранить .


по поводу прошивки - та строка , которая была не понятна теперь прояснилась . допустим время оборота 21мс , столбиков 8 , тогда 1000/8*21 = 5,952380952380952380952380952381
в таймер1 занесётся только целая часть , т.е. 5 . итого имеем по таймеру1 время полного оборота 5*21*8=840 , а прерывания от таймера0 приходят каждую 1мс , тогда 1000-840=160мкс куда-то должно деваться , тогда таймер1 зацикливает последнее число массива , пока не придёт прерывание от таймера0 с пересчётом времени оборота . на 160мкс мы имеем 160/21=7 лишних импульсов .
однако тут же и непонятки : на частоте генератора 100Гц должно остатся 40мкс не востребованных . 40/10=4 имульса последней ноги туда-обратно . в симуляции она делает почти 20 О_0 откуда такая разбежка - хз .

программа вроде как работает . симуляцию в протеусе прилагаю . осталось разобраться с задержкой прерывания таймера1 . больно долго её нету .
Вложения
волчок на меге8.rar
симуляция в протеусе и прошивка
(16.49 КБ) 255 скачиваний
есть вопросы ? чего-то не знаешь ? [url=http://s61.radikal.ru/i174/1006/79/bc6a635c1451.jpg][color=blue][b]прежде всего смотри это[/b][/color][/url]
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1393
Зарегистрирован: Ср янв 30, 2008 17:52:55

Сообщение vistador »

Сэр Мурр писал(а):Что-то мне кажется, что эта тема оченно перекликается с http://radiokot.ru/forum/viewtopic.php?t=12864&start=20 Propeller clock.
Вы уж определитесь, где флудить, а где- обсуждать конструкции.
примите извинения за оффтоп.
и если можно...смею заметить , что тема конечно перекликается с соседней...но только принципом построения изображения...как то - механическая развертка по горизо....сорри по окружности. :)
моя же тема о необычной синхронизации. так как например в той схеме импульсы берутся тупо и жестко с датчика холла, который собственно и определяет четкое положение изображения .
Модератор
Аватара пользователя
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Сообщение ploop »

Я вот тоже за темой слежу, интересно, будет ли раскрыта загадка синхронизации...
судя по всему мы тут остались вдвоём
Если никто не пишет, это не значит, что никто не читает :))
Ответить

Вернуться в «Умные мысли»