Страница 12 из 13

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

Добавлено: Пт май 13, 2011 13:54:24
8434163
Наверно никому не интересно.

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

Добавлено: Пт май 13, 2011 14:01:36
Сериг
мне интересно,я бы даже прошу написал,но не понимаю как работает эта чтука!точнее понимаю что светики моргают и тд ......

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

Добавлено: Пт май 13, 2011 16:49:24
8434163
При вращении планки светодиодов по кругу, в нужном месте зажигаются нужные светодиоды. За счет инерционности нашего зрения, мы видим на колесе картинку. На практике, нужно записать массив с картинкой в контроллер и в зависимости от скорости вращения выводить массив на светодиоды.

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

Добавлено: Пт май 27, 2011 13:24:50
СКАЗОЧНИК
Извините, что спрашиваю тоже самое еще и в этой ветке, но ветки одинаковые, может помогут???
Сделал массив внешней библиотекой. Т.к. у меня 12 светодиодов, то числа в массиве большие. При компиляции грузит из этой внешней библиотеки только по 8 младших бит... А остальные отрезает, в итоге и загорается только 8 светодиодов. Что делать? Как сделать, чтобы по 12 бит грузилось????

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

Добавлено: Сб май 28, 2011 09:58:01
uk8amk
Как я понял из приведенной в той теме схемы, у вас использвуется встречно-параллельное включение СД -> используется динамическая индикация. Посмотрел код... Вам следует обратить внимание на такой замечательный ресурс контроллера как таймеры и прерывания. Вы организуете подпрограмму регенерации светодиодного столбца(можно всего кадра) и по мере надобности бросаете туда байтики из основной программы. Все остальное делает драйвер регенерации. Ну это как замечание по технике программинга.

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

Добавлено: Сб май 28, 2011 12:08:08
СКАЗОЧНИК
uk8amk писал(а):и по мере надобности бросаете туда байтики из основной программы. Все остальное делает драйвер регенерации.
Спасибо, приму за хорошую идею и намотаю на ус. В дальнейшем, скорее всего так и переделаю. =)
А про массив??? Как сделать, чтобы из библиотеки вставлял не 8 бит, а 12??? Меня это сейчас больше всего интересует.
Додумался только до того, что числа разбить на 1-о байтные и из двух чисел составлять уже одно для 12 светодиодов....
Но мне кажется, что у других работает и больше, чем с 12 светодиодами... И на 30 и на 40 выводят...

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

Добавлено: Вс май 29, 2011 08:07:20
uk8amk
Элементы массива - двухбайтовый integer?

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

char b1, b2;

b1=(char)massiv[i];//LSB
b2=massiv[i]>>8;//MSB

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

Добавлено: Вс май 29, 2011 10:45:11
СКАЗОЧНИК
Эээээ. Уже разбил массив с двубайтового Инегер, на однобайтовый чар. Получилось два элемента массива на одну строку светодиодов. Работает. =)
Спасибо.

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

Добавлено: Ср июн 01, 2011 17:40:17
8434163
Может кому пригодится для експериментов, картинка как образец и она-же развернутая по кругу. Можно подогнать масштаб в фотошопе под свои нужды, перегнать в массив и наблюдать на колесе.
Изображение
Изображение

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

Добавлено: Ср июн 01, 2011 23:14:07
Val
Ех, если бы кто нибуть выклал готовую, проверенную конструкцию с платами, прошивкой или написал статью на сайт.

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

Добавлено: Вс июн 05, 2011 05:10:16
bolek
Эх, если просто мечтать, что кто-нибудь все сделает а потом подарит тебе комплект...
Или, лучше, еще и все сам установит на колесо :))

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

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

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

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

Добавлено: Вс июн 05, 2011 09:12:25
Fizikus
Каким бы вы хотели видеть само устройство? Количество линеек, светодиодов, тип светодиодов, питание, способ загрузки картинок. Каким функционалом на ваш взгляд должен обладать софт для подготовки картинок? И наконец какова себестоимость?
Вот видео моего экспериментального образца

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

Добавлено: Вс июн 05, 2011 12:07:38
bolek
Fizikus писал(а):Каким бы вы хотели видеть само устройство? Количество линеек, светодиодов, тип светодиодов, питание, способ загрузки картинок. Каким функционалом на ваш взгляд должен обладать софт для подготовки картинок? И наконец какова себестоимость?
:shock: Это маркетинговый опрос? :kill:
Imho, здесь тусуются те, кто хочет сделать, а не купить.
Купить линейку из 16 светодиодов можно в Китае за 350 руб. Проверено, покупка доходит в среднем за 3-4 недели.
Купить можно и у нас нечто в виде SpokePOV: 1700 за 1 линейку, 3800 - за три.

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

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

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

Добавлено: Вс июн 05, 2011 13:25:30
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 светодиода.

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

Добавлено: Вс июн 05, 2011 13:59:02
bolek
Fizikus писал(а):А сдвиговые регистры на китайской линейке стоят?

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

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

Добавлено: Вс июн 05, 2011 14:43:02
Fizikus
Я так понимаю, 350 - это одна линейка, а как вы сами говорили - минимальное - 3 шт., да и заложенные 32 узора не очень-то устраивают, свои картинки все же лучше. 3 линейки в своей конструкции я заложил изначально, естественно прочитав не только этот форум. 30 км/ч - персчитанная скорость макета(на меньших скоростях камера нормально не снимает). На счет скоростей спорить не буду - этот вопрос давно уже исчерпал себя.

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

Добавлено: Ср июн 08, 2011 14:54:54
СКАЗОЧНИК
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	}	};			

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

Добавлено: Чт июн 09, 2011 09:01:53
uk8amk
Записи
const unsigned char pic [248][2] PROGMEM =
и

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

const unsigned char pic [496] PROGMEM =
абсолютно эквивалентны т.к. в любом случае данные последовательно сохраняются в одномерный массив, а N-мерность на высоком уровне придумана исключительно ради удобства использования. Аналогично следующие выражения будут давать одинаковый результат:

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

a=pic[1][1];
a=pic[1*2+1];/*по сути при обращении к ячеке памяти компилятор проводит данное действие*/

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

Добавлено: Чт июн 09, 2011 11:51:27
СКАЗОЧНИК
Чего умничать то??? :roll:
Я знаю, что все элементы один за другим в памяти записываются. Но мне удобнее так обрабатывать, как я написал. И программа уже готова и для моих мозгов проще.
Так что прошу массив разбивать на строки и столбцы. :write: :kill:

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

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

Сделать переменным количество точек в строке можно, я добавлю это в ini файл программы.
Возможно, добавлю задание количества светодиодов в столбце и это число должно быть кратным 8.
А вот учет диаметра ступицы, расстояние между СД и прочее...нет у меня желания вылизывать эту программу. Данные быстренько подготовил, залил, посмотрел живьем на колесе: живьем оно нагляднее.
...За эту программу будет очень много народу благодарно.
Это "очень много" - в лучшем случае 5 человек, поскольку скачали программу 6 раз, из них один - я (для проверки). :))