Рисунок на колесе

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
8434163
Открыл глаза
Сообщения: 47
Зарегистрирован: Ср дек 02, 2009 15:06:55
Откуда: Украина
Контактная информация:

Re: Рисунок на колесе

Сообщение 8434163 »

Наверно никому не интересно.
Аватара пользователя
Сериг
Это не хвост, это антенна
Сообщения: 1451
Зарегистрирован: Пт фев 19, 2010 19:39:28
Откуда: Москва

Re: Рисунок на колесе

Сообщение Сериг »

мне интересно,я бы даже прошу написал,но не понимаю как работает эта чтука!точнее понимаю что светики моргают и тд ......
8434163
Открыл глаза
Сообщения: 47
Зарегистрирован: Ср дек 02, 2009 15:06:55
Откуда: Украина
Контактная информация:

Re: Рисунок на колесе

Сообщение 8434163 »

При вращении планки светодиодов по кругу, в нужном месте зажигаются нужные светодиоды. За счет инерционности нашего зрения, мы видим на колесе картинку. На практике, нужно записать массив с картинкой в контроллер и в зависимости от скорости вращения выводить массив на светодиоды.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Рисунок на колесе

Сообщение СКАЗОЧНИК »

Извините, что спрашиваю тоже самое еще и в этой ветке, но ветки одинаковые, может помогут???
Сделал массив внешней библиотекой. Т.к. у меня 12 светодиодов, то числа в массиве большие. При компиляции грузит из этой внешней библиотеки только по 8 младших бит... А остальные отрезает, в итоге и загорается только 8 светодиодов. Что делать? Как сделать, чтобы по 12 бит грузилось????
Станислав
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Рисунок на колесе

Сообщение uk8amk »

Как я понял из приведенной в той теме схемы, у вас использвуется встречно-параллельное включение СД -> используется динамическая индикация. Посмотрел код... Вам следует обратить внимание на такой замечательный ресурс контроллера как таймеры и прерывания. Вы организуете подпрограмму регенерации светодиодного столбца(можно всего кадра) и по мере надобности бросаете туда байтики из основной программы. Все остальное делает драйвер регенерации. Ну это как замечание по технике программинга.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Рисунок на колесе

Сообщение СКАЗОЧНИК »

uk8amk писал(а):и по мере надобности бросаете туда байтики из основной программы. Все остальное делает драйвер регенерации.

Спасибо, приму за хорошую идею и намотаю на ус. В дальнейшем, скорее всего так и переделаю. =)
А про массив??? Как сделать, чтобы из библиотеки вставлял не 8 бит, а 12??? Меня это сейчас больше всего интересует.
Додумался только до того, что числа разбить на 1-о байтные и из двух чисел составлять уже одно для 12 светодиодов....
Но мне кажется, что у других работает и больше, чем с 12 светодиодами... И на 30 и на 40 выводят...
Станислав
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Рисунок на колесе

Сообщение uk8amk »

Элементы массива - двухбайтовый integer?

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

char b1, b2;

b1=(char)massiv[i];//LSB
b2=massiv[i]>>8;//MSB
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Рисунок на колесе

Сообщение СКАЗОЧНИК »

Эээээ. Уже разбил массив с двубайтового Инегер, на однобайтовый чар. Получилось два элемента массива на одну строку светодиодов. Работает. =)
Спасибо.
Станислав
8434163
Открыл глаза
Сообщения: 47
Зарегистрирован: Ср дек 02, 2009 15:06:55
Откуда: Украина
Контактная информация:

Re: Рисунок на колесе

Сообщение 8434163 »

Может кому пригодится для експериментов, картинка как образец и она-же развернутая по кругу. Можно подогнать масштаб в фотошопе под свои нужды, перегнать в массив и наблюдать на колесе.
Изображение
Изображение
Последний раз редактировалось 8434163 Сб июн 04, 2011 09:42:22, всего редактировалось 1 раз.
Val
Мучитель микросхем
Сообщения: 477
Зарегистрирован: Вс окт 25, 2009 09:39:40

Re: Рисунок на колесе

Сообщение Val »

Ех, если бы кто нибуть выклал готовую, проверенную конструкцию с платами, прошивкой или написал статью на сайт.
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: Рисунок на колесе

Сообщение bolek »

Эх, если просто мечтать, что кто-нибудь все сделает а потом подарит тебе комплект...
Или, лучше, еще и все сам установит на колесо :))

Схемы, платы, прошивки - все давно есть, только делай.
Напомню:
http://www.ianpaterson.org/projects/index.htm
аж два варианта.

Не уверен, что хватит вдохновения сделать такую штуку себе на велосипед, для начала просто написал маленькую программку-прототип для подготовки картинок. Дело то пустяшное...

Исходная картинка обязательно должна быть размером 512*512, монохромная либо черно-белая, в BMP формате.
Результат выводится под линейку из 32 светодиодов, в строке 256 точек.
Пока только на экран, но это потому, что еще не решил, в каком формате формировать выходной файл. Пока склоняюсь к двоичному файлу.
Если есть пожелания по формату или перестановке бит - излагайте, но только конкретно что и как реализовать (в смысле интерфейса, как удобнее задать эти перестановки), а не мечтать "вообще" с пальцем в носу :))
Вложения
pic2wheel.zip
(37.37 КБ) 226 скачиваний
Fizikus
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Сб фев 27, 2010 19:23:52
Откуда: Тула
Контактная информация:

Re: Рисунок на колесе

Сообщение Fizikus »

Каким бы вы хотели видеть само устройство? Количество линеек, светодиодов, тип светодиодов, питание, способ загрузки картинок. Каким функционалом на ваш взгляд должен обладать софт для подготовки картинок? И наконец какова себестоимость?
Вот видео моего экспериментального образца
Вложения
MOV00008.rar
(830.97 КБ) 232 скачивания
Продаю SMD резисторы, конденсаторы.
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: Рисунок на колесе

Сообщение bolek »

Fizikus писал(а):Каким бы вы хотели видеть само устройство? Количество линеек, светодиодов, тип светодиодов, питание, способ загрузки картинок. Каким функционалом на ваш взгляд должен обладать софт для подготовки картинок? И наконец какова себестоимость?

:shock: Это маркетинговый опрос? :kill:
Imho, здесь тусуются те, кто хочет сделать, а не купить.
Купить линейку из 16 светодиодов можно в Китае за 350 руб. Проверено, покупка доходит в среднем за 3-4 недели.
Купить можно и у нас нечто в виде SpokePOV: 1700 за 1 линейку, 3800 - за три.

Китайские цены мне нравятся больше :)) поскольку 3 линейки * на 2 колеса = велосипед. Оно надо?

P.S. Ваш экспериментальный образец "не вставляет":
1. синхронизация неустойчивая - изображение дергается
2. это не велосипед, а макет на столе, колесо крутится медленно, поэтому нужно как минимум три линейки, чтобы изображение было более-менее стабильным при разумной скорости езды.
Fizikus
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Сб фев 27, 2010 19:23:52
Откуда: Тула
Контактная информация:

Re: Рисунок на колесе

Сообщение Fizikus »

Это маркетинговый опрос?

Для меня да.

Imho, здесь тусуются те, кто хочет сделать, а не купить.

Согласен, но не надо додумывать за меня. Проект планируется как коммерческий(именно поэтому меня интересуют мнения людей, которые желают сделать подобную конструкцию), но будет открытым для повторения радиолюбителями.

Купить линейку из 16 светодиодов можно в Китае за 350 руб. Проверено, покупка доходит в среднем за 3-4 недели.
Купить можно и у нас нечто в виде SpokePOV: 1700 за 1 линейку, 3800 - за три.

А сдвиговые регистры на китайской линейке стоят? А 16 светодиодов можно купить и за 100 руб, причем в Москве.
Я не собираюсь продавать SpokePOV, ваши доводы по поводу цены не вставляют :)

Китайские цены мне нравятся больше :)) поскольку 3 линейки * на 2 колеса = велосипед. Оно надо?

16 светодиодов*3 линейки*2колеса=2100 руб и это только светодиоды.
P.S. Ваш экспериментальный образец "не вставляет":
1. синхронизация неустойчивая - изображение дергается

Ключевое слово - экспериментальный, это не конечный продукт.
2. это не велосипед, а макет на столе, колесо крутится медленно, поэтому нужно как минимум три линейки, чтобы изображение было более-менее стабильным при разумной скорости езды.

Откуда вы знаете скорость вращения моего макета? Частота вращения примерно 5 Гц, что состовляет около 30 км/ч. 3 линейки по 32 RGB светодиода.
Вложения
макет.jpg
(206.97 КБ) 496 скачиваний
Продаю SMD резисторы, конденсаторы.
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: Рисунок на колесе

Сообщение bolek »

Fizikus писал(а):А сдвиговые регистры на китайской линейке стоят?

За 350 руб - это готовая конструкция, которую сразу можно ставить на колесо.
Например, вот:
http://www.aliexpress.com/product-fm/45 ... alers.html
Откуда вы знаете скорость вращения моего макета? Частота вращения примерно 5 Гц, что состовляет около 30 км/ч. 3 линейки по 32 RGB светодиода.

Почитайте, все же, обсуждение. Разумная скорость начинается примерно с 6 км/час - порог автоматического включения иллюминации.
30 км/час в сумерках/темноте ... не забудьте каску надеть :))
Fizikus
Нашел транзистор. Понюхал.
Сообщения: 164
Зарегистрирован: Сб фев 27, 2010 19:23:52
Откуда: Тула
Контактная информация:

Re: Рисунок на колесе

Сообщение Fizikus »

Я так понимаю, 350 - это одна линейка, а как вы сами говорили - минимальное - 3 шт., да и заложенные 32 узора не очень-то устраивают, свои картинки все же лучше. 3 линейки в своей конструкции я заложил изначально, естественно прочитав не только этот форум. 30 км/ч - персчитанная скорость макета(на меньших скоростях камера нормально не снимает). На счет скоростей спорить не буду - этот вопрос давно уже исчерпал себя.
Продаю SMD резисторы, конденсаторы.
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Рисунок на колесе

Сообщение СКАЗОЧНИК »

bolek писал(а):Исходная картинка обязательно должна быть размером 512*512, монохромная либо черно-белая, в BMP формате.Результат выводится под линейку из 32 светодиодов, в строке 256 точек.Пока только на экран, но это потому, что еще не решил, в каком формате формировать выходной файл. Пока склоняюсь к двоичному файлу.Если есть пожелания по формату или перестановке бит - излагайте, но только конкретно что и как реализовать (в смысле интерфейса, как удобнее задать эти перестановки), а не мечтать "вообще" с пальцем в носу


Вот это мне нравится. А можете написать универсальную программу для похожих устройств?
Суть в том, чтобы количество строк (или столбцов, кому как нравится) можно было задавать, у меня например их 248 по колесу. Например, ставишь цифру и он автоматом круг разбивает на это количество секторов. =)))
И в строке (столбце) чтобы светодиодов было тоже по заданному количеству, т.е. у меня 12 штук, а завтра спаял на 30 штук, чтобы поставил цифру и тоже автоматом разбило круг на столько же окружностей. =)))
Теперь по выводу. =) На выходе надо делать массив *.h, который подключается библиотекой к файлу программы и записывается, например, во ФЛЕШ микроконтроллера. При этом массив получается двумерным: в одном измерении по строкам [248], а во втором по столбцам, только разбивая их по одному байту, т.е. при 16 светодиодах массив будет [248][2], а при 24 светодиодах - [248][3].
Первый светодиод на линейке особо нет разницы откуда считать, но лучше, чтобы тоже задавалось при конфигурации ближе к центру (к оси) или первый ближе к ободу колеса.
Также не полохо учитывать расстояние между светодиодами (не у всех они плотно стоят) и задавать радиус от того светодиода, который ближе к ободу.
Ну а потом уже картинку накладывать.... =)))
За эту программу будет очень много народу благодарно.

А вот пример массива, который у меня:

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

const unsigned char pic [248][2] PROGMEM =                           
{                              
{   1   ,   8   }   ,               
{   1   ,   8   }   ,               
{   1   ,   8   }   ,               
{   1   ,   8   }   ,               
{   1   ,   8   }   ,               
{   1   ,   8   }   ,               
{   254   ,   7   }   ,               
{   254   ,   7   }   ,               
{   254   ,   7   }   ,               
{   240   ,   0   }   ,               
{   248   ,   1   }   ,               
{   158   ,   7   }   ,               
{   14   ,   7   }   ,               
{   6   ,   6   }   ,               
{   1   ,   8   }   ,               
{   1   ,   8   }   };         
Последний раз редактировалось СКАЗОЧНИК Чт июн 09, 2011 11:55:37, всего редактировалось 1 раз.
Станислав
uk8amk
Поставщик валерьянки для Кота
Сообщения: 2222
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Откуда: Tashkent

Re: Рисунок на колесе

Сообщение uk8amk »

Записи
const unsigned char pic [248][2] PROGMEM =

и

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

const unsigned char pic [496] PROGMEM =

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

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

a=pic[1][1];
a=pic[1*2+1];/*по сути при обращении к ячеке памяти компилятор проводит данное действие*/
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: Рисунок на колесе

Сообщение СКАЗОЧНИК »

Чего умничать то??? :roll:
Я знаю, что все элементы один за другим в памяти записываются. Но мне удобнее так обрабатывать, как я написал. И программа уже готова и для моих мозгов проще.
Так что прошу массив разбивать на строки и столбцы. :write: :kill:
Станислав
bolek
Сверлит текстолит когтями
Сообщения: 1178
Зарегистрирован: Пт авг 21, 2009 03:22:12

Re: Рисунок на колесе

Сообщение bolek »

СКАЗОЧНИК писал(а):...
Вот это мне нравится. А можете написать универсальную программу для похожих устройств?...
Могу, но, скорее всего, не буду: такой универсализм требует совсем других затрат времени.

Сделать переменным количество точек в строке можно, я добавлю это в ini файл программы.
Возможно, добавлю задание количества светодиодов в столбце и это число должно быть кратным 8.
А вот учет диаметра ступицы, расстояние между СД и прочее...нет у меня желания вылизывать эту программу. Данные быстренько подготовил, залил, посмотрел живьем на колесе: живьем оно нагляднее.

...За эту программу будет очень много народу благодарно.

Это "очень много" - в лучшем случае 5 человек, поскольку скачали программу 6 раз, из них один - я (для проверки). :))
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»