Рисунок на колесе
- SeamaNCOS
- Встал на лапы
- Сообщения: 107
- Зарегистрирован: Ср дек 10, 2008 15:10:59
- Откуда: KPACHO9PCK
- Контактная информация:
Рисунок на колесе
Скоро можно будет наконец то выгнать "Стального коня" на простор российских дорог.
Хочу сделать рисунки на колеса с механической индикацией на Attiny2313(помойму за глаза). Один датчик положения. Одна линейка светодиодов (10-15 шт).
Вопрос такой - как можно выводить 160 столбцов на 360 градусов с плавным изменением частоты вращения от 1 до 20 ГЦ (что лучше использовать програмно таймеры прерывания или всавлять изменяемую задержку между индикацией).
Хочу сделать рисунки на колеса с механической индикацией на Attiny2313(помойму за глаза). Один датчик положения. Одна линейка светодиодов (10-15 шт).
Вопрос такой - как можно выводить 160 столбцов на 360 градусов с плавным изменением частоты вращения от 1 до 20 ГЦ (что лучше использовать програмно таймеры прерывания или всавлять изменяемую задержку между индикацией).
Чем больше думаеш, тем дольше уснуть не можеш...
- ibiza11
- Поставщик валерьянки для Кота
- Сообщения: 1900
- Зарегистрирован: Сб фев 21, 2009 13:11:40
- Откуда: Москва
думаю все зависит от самого алгоритма ну и универсальности схемы.
если начать с самого простого, то можно тупо вставлять задержки постоянного времени, а по датчику ресетить... сами понимаете, что красиво во всех случаях эта схема работать не будет.
можно датчиком не ресетить, а завести внешнее прерывание, считать период обращения колеса и подстраиваться под него, изменяя задержку, в этом случае лучше использовать не пустой цикл, а таймер.
а если использовать две линейки или 4 перпендикулярных.... короче много чего можно было бы желание))) замечтался)))
насчет вопроса: каким образом 160столбцов вы хотите уместить в круге???
если вы будете использовать, пусть даже 15 светодиодов, максимальное разрешение в обе стороны (гориз. и вертик.) 30 точек)))) какие 160)))
видимо я не понял вопроса))) объясните пожалуйста яснее)))
насчет 1-20 Гц плавно.... скажем так: вращение рисунка на колесе зависит от разности частот 1)вращения колеса 2)обновления рисунка
грубо говоря, если вы какждый период обновления рисунка будете опаздывать на t секунд от начала обращения колеса, то рисунок будет постепенно с каждым периодом сдвигаться относительно начального положения.
с ув.Ibiza
если начать с самого простого, то можно тупо вставлять задержки постоянного времени, а по датчику ресетить... сами понимаете, что красиво во всех случаях эта схема работать не будет.
можно датчиком не ресетить, а завести внешнее прерывание, считать период обращения колеса и подстраиваться под него, изменяя задержку, в этом случае лучше использовать не пустой цикл, а таймер.
а если использовать две линейки или 4 перпендикулярных.... короче много чего можно было бы желание))) замечтался)))
насчет вопроса: каким образом 160столбцов вы хотите уместить в круге???
если вы будете использовать, пусть даже 15 светодиодов, максимальное разрешение в обе стороны (гориз. и вертик.) 30 точек)))) какие 160)))
видимо я не понял вопроса))) объясните пожалуйста яснее)))
насчет 1-20 Гц плавно.... скажем так: вращение рисунка на колесе зависит от разности частот 1)вращения колеса 2)обновления рисунка
грубо говоря, если вы какждый период обновления рисунка будете опаздывать на t секунд от начала обращения колеса, то рисунок будет постепенно с каждым периодом сдвигаться относительно начального положения.
с ув.Ibiza
- Аксель
- Опытный кот
- Сообщения: 800
- Зарегистрирован: Ср апр 25, 2007 09:50:43
- Откуда: Киев
- Контактная информация:
Re: Рисунок на колесе
SeamaNCOS писал(а):Скоро можно будет наконец то выгнать "Стального коня" на простор
Диаметр колеса "Стального коня"?
Кстати, "стальной конь" - мотоцикл/мопед/велосипед/трактор/санки колёсные/другое?
Какие рисунки желаете выводить?
Скелет колобка состоит из черепа.
- SeamaNCOS
- Встал на лапы
- Сообщения: 107
- Зарегистрирован: Ср дек 10, 2008 15:10:59
- Откуда: KPACHO9PCK
- Контактная информация:
Мотоцикл Урал. Внешний радиус светодиодов 250мм.(Отсюда 160 столбцов т.е. точек по периметру 5мм одна точка хотя можно для первого раза взять 80 столбцов)
Думал сравнивать таимеры. Т.е. каждый круг выставлять число сравнения на таимер TCCR1 получая время оборота с TCCR0 и деля полученное число на 160. тем самым сделать прерывания по таймеру, но тогда ни о какой плавности регулирования говорить не приходиться, рисунок с изменением частоты будет уходить а за тем резко вставать на место (т.к. делить 0хff 0xff плавно не выйдет)
Думал сравнивать таимеры. Т.е. каждый круг выставлять число сравнения на таимер TCCR1 получая время оборота с TCCR0 и деля полученное число на 160. тем самым сделать прерывания по таймеру, но тогда ни о какой плавности регулирования говорить не приходиться, рисунок с изменением частоты будет уходить а за тем резко вставать на место (т.к. делить 0хff 0xff плавно не выйдет)
Чем больше думаеш, тем дольше уснуть не можеш...
- Аксель
- Опытный кот
- Сообщения: 800
- Зарегистрирован: Ср апр 25, 2007 09:50:43
- Откуда: Киев
- Контактная информация:
Радиус колеса?SeamaNCOS писал(а):Мотоцикл Урал. Внешний радиус светодиодов 250мм.
Допустим 19", при 20 оборотах в секунду (20 герц Вы про это?) получаем скорость 218 км/час.
...для небольших скоростей ставят несколько линеек светодиодов. Теперь можно уточнить ТЗ. Добавить линеек светодиодов ...И включать рисовку изображения на на скорости более Х км/ч. Как-то так для начала.
...и да, видел в сети, таких пректов есть для примера много.
Скелет колобка состоит из черепа.
- SeamaNCOS
- Встал на лапы
- Сообщения: 107
- Зарегистрирован: Ср дек 10, 2008 15:10:59
- Откуда: KPACHO9PCK
- Контактная информация:
Помоему тоже на 19'' это 0.4826м пириметр 1,57м при 20 об.сек. получаеться 31.4м/c а это всего 113.04 км/ч.
На счет двух линеек полностью согласен(больше портов у Тиньки не хватит).
В сети искал ничего подобного с хорошим описанием не нашел.
Рисовку можно начинать при 2-5Гц.
Но самое главное определиться с расчетом задержки между индикацией, а сколько линеек будет не суть важна.
На счет двух линеек полностью согласен(больше портов у Тиньки не хватит).
В сети искал ничего подобного с хорошим описанием не нашел.
Рисовку можно начинать при 2-5Гц.
Но самое главное определиться с расчетом задержки между индикацией, а сколько линеек будет не суть важна.
Чем больше думаеш, тем дольше уснуть не можеш...
Кароче делать нада так:
1. забуть про 2313 - делай на меге (например Мега48 стоит почти также, но какая разница!)
2. запускаеш 16 битный таймер
3. делаеш захват значения таймера (нога ICR) датчиком хола
4. количество столбцов должно быть 256 (это шоб облегчить жизнь твоему контроллеру
)
5. береш старший байт захваченного значения 16 битного тайммера и это значение заносиш в регистр сравнения 8 битного таймера - по переполнению которого будет выводится новая строчка
6. в момент захвата 16 битного таймера обнуляеш оба таймера и записываеш новое значение сравнения в 8 битный таймер.
Вот и все!
Но не не надейся что все так просто получится
. При использовании такого способа к концу прорисовки столбцов на колесе будет копиться погрешность 8 битного таймера ( т.к. отбрасывается дробная часть от значения захвата (младший байт) ). В итого последние столбцы будут здорово прыгать при смене скорости.
В идеале нада взять подороже контроллер с двумя 16 битными таймерами один с пределителем 256 поставить на захват значения а второй с пределителем 1 поставить на вывод столбцов.
Вот такой расклад.
1. забуть про 2313 - делай на меге (например Мега48 стоит почти также, но какая разница!)
2. запускаеш 16 битный таймер
3. делаеш захват значения таймера (нога ICR) датчиком хола
4. количество столбцов должно быть 256 (это шоб облегчить жизнь твоему контроллеру
5. береш старший байт захваченного значения 16 битного тайммера и это значение заносиш в регистр сравнения 8 битного таймера - по переполнению которого будет выводится новая строчка
6. в момент захвата 16 битного таймера обнуляеш оба таймера и записываеш новое значение сравнения в 8 битный таймер.
Вот и все!
Но не не надейся что все так просто получится
В идеале нада взять подороже контроллер с двумя 16 битными таймерами один с пределителем 256 поставить на захват значения а второй с пределителем 1 поставить на вывод столбцов.
Вот такой расклад.
- Spider
- Опытный кот
- Сообщения: 732
- Зарегистрирован: Чт дек 29, 2005 07:29:25
- Откуда: Омск
- Контактная информация:
Все же мне кажеться так:SeamaNCOS писал(а):Помоему тоже на 19'' это 0.4826м пириметр 1,57м при 20 об.сек. получаеться 31.4м/c а это всего 113.04 км/ч.
R=19"=48,26 см
L = 2*Pi*R или L= 2 * 48,26 * 3,14 = 303,0728 см.
V при 20Hz = 303,0728 (см) / 100 (см в м) / 1000 (м в км) * 20 (Hz) * 3600 (сек в час) = 218,212416 км/час
Или я тоже ошибся?
- Владимир К.
- Мучитель микросхем
- Сообщения: 438
- Зарегистрирован: Ср ноя 21, 2007 14:14:37
- Откуда: Краснодар
А такое не подойдет? Уже все готовое. И рисунки менять можно.
http://pawst.com/post/585490-ian-039-s-spoke-pov
http://pawst.com/post/585490-ian-039-s-spoke-pov
Electronikus mente prius et oculis agat, quam armata manu.
- SeamaNCOS
- Встал на лапы
- Сообщения: 107
- Зарегистрирован: Ср дек 10, 2008 15:10:59
- Откуда: KPACHO9PCK
- Контактная информация:
Evgen88 писал(а):Но не не надейся что все так просто получится. При использовании такого способа к концу прорисовки столбцов на колесе будет копиться погрешность 8 битного таймера ( т.к. отбрасывается дробная часть от значения захвата (младший байт) ). В итого последние столбцы будут здорово прыгать при смене скорости.
Тоже самое я описал несколькими постами выше. На МЕГЕ можно добиться большей точности чем на тиньке но прыжки все равно остануться.
Именно по этому надо эксперементировать с задержкой т.к. с ней можно добиться большей точности а значит меньше прыжков.
ЕСЛИ R=19'' т.е. D=96.52см почти метр..... ВОТ ЭТО КОЛЕСО НА МОТОЦИКЛЕ.
http://pawst.com/post/585490-ian-039-s-spoke-pov (C PIC дело не имел но возьму на заметку)
Чем больше думаеш, тем дольше уснуть не можеш...
- Аксель
- Опытный кот
- Сообщения: 800
- Зарегистрирован: Ср апр 25, 2007 09:50:43
- Откуда: Киев
- Контактная информация:
SeamaNCOS писал(а):ЕСЛИ R=19'' т.е. D=96.52см почти метр..... ВОТ ЭТО КОЛЕСО НА МОТОЦИКЛЕ
:)Аксель писал(а):Радиус колеса?
Допустим 19"
Чей мотоцикл?SeamaNCOS писал(а):Помоему тоже на 19''
Проект на пик не смотрел. Если он там готовый и подходит - делов-то: прошить мк и собрать.
Последний раз редактировалось Аксель Вт мар 24, 2009 22:17:02, всего редактировалось 1 раз.
Скелет колобка состоит из черепа.
Evgen88 писал(а):В идеале нада взять подороже контроллер с двумя 16 битными таймерами один с пределителем 256 поставить на захват значения а второй с пределителем 1 поставить на вывод столбцов.
В этом варианте максимальная погрешность расположения последнего столбца - 1 столбец. Прыжки в ширину 1 столбца даже не будут заметны.
- SeamaNCOS
- Встал на лапы
- Сообщения: 107
- Зарегистрирован: Ср дек 10, 2008 15:10:59
- Откуда: KPACHO9PCK
- Контактная информация:
Stalker46 писал(а):А вот можно придумать, что бы устройство обладало АПЧ. Стоит закрепленная на колодке контакт, а на ободе подвижный, чем больше скорость, тем больше частота, МК сам определит, что делать...)))))
Типо поставить внешний источник тактирования с умножителем частоты?
Чем больше думаеш, тем дольше уснуть не можеш...
SeamaNCOS писал(а):Типо поставить внешний источник тактирования с умножителем частоты?
Не совсем, нужно синхронизировать моменты зажигания светодиодов с частотой вращения колеса, т. е. если линейка жестко прикреплена к колесу то нужно, например, на вилке установить магнит, а на линейке датчик Хола, тогда как только ДХ сработает мы будем знать в каком положении линейка, и синхронизировать управление светодиодами. Правда, наверное, ДХ в этом случае не очень подойдет, лучше оптические датчики.
Вторая проблема - источник питания тут либо сменные батарейки, либо хитрая динамо-машина.