Заливаем простенькую программу, которая ждёт затемнения фоторезистора, а потом выстреливает с заданным интервалом на цифровые выходы (2..9) нужные данные. Горизонтальный размер одного пикселя определяется подбираемой вручную задержкой, для моей установки оптимальное значение составило 2,3 миллисекунды.
В результате, мой «телевизор» стал выглядеть вот так:
Теперь осталось подсоединить конструкцию к Arduino. Светодиоды подключил к цифровым выходам через ограничительные резисторы на 150 Ом, фоторезистор к входу АЦП.
Фоторезистор закрепил просто зажав его между двумя кубиками лего.
Теперь надо позаботиться о синхронизации. Двигатель у меня самый простой не шаговый и без энкодера, так что решил ловить начало цикла фотоячейкой. Позади мотора укрепил яркий светодиод, который светит через тонкую трубку. Луч света при каждом обороте пересекается кривошипом и затемняет фоторезистор. Для уменьшения помех от внешнего освещения он смотрит точно на светодиод, тоже через трубочку.
Следующим шагом была установка светодиодов. К счастью, диаметр отверстий Lego ровно 5мм, так что диоды идеально входят с большим усилием и не расшатываются в время работы. Катоды соединил вместе, а аноды вывел по отдельности наружу мягким проводом на 0.05. Получилось девять проводников, но силы мотора хватает с избытком.
Если верить учебникам, то первые «телевизоры» были с механической развёрткой на . Понятное дело, определение телевизора у каждого своё и для бытового применения механика малопригодна, однако решил и я попробовать сделать механический дисплей. К счастью в семье обнаружился восьмилетний специалист по моторчикам, он и смастерил «хардверную» часть установки. Lego Power Functions Medium Motor, питаясь от девяти вольт, способен при помощи кривошипно-шатунного механизма раскачивать планку на 15 отверстий с частотой в несколько Герц.
Arduino / [Из песочницы] Механический дисплей из лего и Arduino | Gliffer
Комментариев нет:
Отправить комментарий