Расскажу о своём небольшом опыте работы в проекте, который был посвящён астрономии, и о математике, с которой пришлось повозиться. Я написал программу, которая при помощи метода Монте-Карло моделирует рассеивание света звёздной пылью. Скажу сразу что я не математик и не астроном, просто написал пару программ, которые относятся к этой области.
Пользователь
Управление прожекторами при помощи Arduino

Здравствуйте, уважаемые хабрчане! Друг купил прожекторы, которые управляются при помощи инфракрасного пульта, и попросил автоматизировать их, чтобы каждый час была возможность выставить нужный цвет и яркость. Идея выставить настройки для аквариума, чтобы освещение переключалось автоматически каждый час, в течении 24 часов.
Для реализации проекта была выбрана плата Arduino UNO, так как есть готовые библиотеки для считывания и отправки инфракрасного сигнала. Вначале были прочитаны команды пульта, используя микросхему VS1838B (Ардуино библиотека писала, что это протокол LG и используются 28 бит). Попробовал генерировать такие же сигналы используя функцию sendLG - ничего не получилось (осциллоскопа нету, увидеть сигнал в живую возможности не было). Поэтому 8 команд (включить, выключить, ярче, темнее, белый, красный, синий, розовый) были прочитаны в режиме raw , и каждой команде соответствовал свой массив из 67 unsigned int значений. Конечно это плохое решение, потому что занимает 60% динамической памяти, но других вариантов как решить эту задачу у меня не было.
Далее была работа над меню устройства. Необходимо было дать возможность выставить текущее время, а также выбрать параметры освещения под каждый час. Был взят символьный дисплей 20х4 (использовал параллельное подключение, т.к. переходник на I2C глючил) и три кнопки, всего получилось семь окон для символьного дисплея. Для реализации меню пришлось повозится, используется Конечный автомат (Finite-state machine) с 77 состояниями.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность