![]() |
![]() |
|||||||||||||||
Елочная гирлянда
Автор: Сергей Давно хотелось сделать елочную гирлянду на радость детям. Конечно Вы можете сказать что сейчас есть много разных китайских светящихся ленточек из которых можно выбрать что-то подходящее, но я среди китайского товарного многообразия так ничего и не нашел того что бы мне подошло. Требования к елочной гирлянде ставились такие:
В результате получилось устройство состоящее из следующих частей:
Все схемы нарисованы с помощью KiCad. На схемах плат STM32 я не указывал блокировочные конденсаторы в цепях питания. Они имеют следующие номиналы: те которые 0402 и 0603 – 0.1uF, те которые 1206 – 2.2 uF. Самые большие – 100uF или 47uF. Программирование световых эффектов выполняется на языке Java – смотрите папку sergvs201ledc_jvmDebug – там находятся все нужные файлы для компиляции программ. Вкратце пройдемся по структуре архива: - в корне архива лежат файлы печатных плат. - в папке kikad – схемы. - в папке sergvs2010ledc_jvm – эмулятор гирлянды для Windows. - sergmyProgramsARMboard_stm32f207_ledc_java – проект Keil uVision с исходниками для прошивки контроллера STM32. - sergmyProgramsAVRRGB_Led_Control – проект AVRStudio для прошивки ATTiny2313. Общение с контроллером гирлянды происходит через виртуальный USB ком порт. Команды которые понимает контроллер таковы: - dir – вывод каталога файлов на SPI eeprom. - reset – сброс контроллеров RGB светодиодов. - format – форматирование SPI eeprom. - run program_name arguments – запуск программы на исполнение. - stop – останов программы. - deletefile – удаление файла из файловой системы SPI eeprom.
Инициализация устройства:
spi_flash_write имя_ком_порта classes/Message.class /binary spi_flash_write имя_ком_порта classes/Syst.class /binary spi_flash_write имя_ком_порта Board.class /binary Файлы находятся в папке sergvs201ledc_jvmDebug. По умолчанию устройство при старте пытается выполнить программу записанную в файл main.class. Загрузить другие файлы в устройство можно с помощью той же программы spi_flash_write. В файле main1.java Вы найдете четыре программы которые я использовал для тестов. Также файл ledc_test служит для тестирования модулей на ATTiny2313. (он имеет один параметр коммандной строки – номер устройства). Пройдемся вкратце по API для работы с гирляндой:
- HeapgetFree – получение размера свободной памяти. - GC_Collect – вызов garbage collector. - delay – задержка в миллисекундах.
- show – вывод сообщения в ком порт. - printf – аналог такой же команды на языке С за исключением того что внутри этой функции все параметры ппреобразуются в строки так что для любого типа переменных надо указывать в строке формата %s.
- ledc_reset – сброс контроллеров RGB светодиодов. - ledc_send – команда контроллеру RGB светодиодов. Имеет семь параметров – номер контроллера (на номер 0 откликаются сразу все контроллеры), и значения яркостей R, G, B для первого и второго светодиода. Значения яркости могут быть от 0 до 255. - random – получение случайного числа от 0 до 0xFFFFFFFF. Должен предупредить, что далеко не все классы реализованы во встроенной java машине. Список классов и список реализованных функций вы сможете найти в исходниках Java машины.
Фото контроллера RGB светодиодов:
Фото платы для STM32F2 144pin QFP:
Фото устройства:
Файлы: Все вопросы в Форум.
|
|
|||||||||||||||
![]() |
![]() |


![]() |
![]() |
|||
|
||||
![]() |
![]() |