Go to content
Your browser is out of date. It has known security flaws and may not display all features of this websites. Learn how to update your browser[Закрыть]

Старые поделки


Ракетная установка на базе Arduino


Автор: Серый череп



Испытывая потребность создать нечто бесполезно-замысловатое, я решил воспользоваться моим Arduino Mega для запуска химического ракетного двигателя. У меня уже имелся точечный дисплей матричного типа от моего Arduino. Я пользовался им для прокрутки всякой непотребщины, когда мы ходили на встречи клуба в пабе, чтобы те, кто искал настоящих техногиков, сразу видели, кто мы такие (иначе, мы бы просто не смогли достаточно выделиться из толпы :) ). Я подумал, а почему бы не использовать точечную матрицу для визуализации обратного отсчета, а Arduino как активатор реле, которое подает питание 9В напрямую к ракете и в нужный момент со свистом запускает ее в небо.

Схема

Тут все очень просто: небольшая плата, на которой крепится микросхема и реле, плюс контакт к точечному дисплею. Я остановил свой выбор на микросхеме ULN2003 для переключения реле, во-первых, потому что в комплекте уже есть ограничительный диод и им можно управлять напрямую с Arduino. Во-вторых, потому что у меня просто осталось три лишних комплекта с предыдущего проекта. Кстати, точечная матрица тоже использовалась в том проекте. Это модель 0832 от производителя Sure Electronics. На ebay такое удовольствие можно купить всего за 10$.

Ракетная установка на базе Arduino

Программа для Arduino

Большая часть кода для Arduino была написана на других проектах, (это, собственно, отлично поясняет нашу любовь к Arduino, не так ли?). Программа должна считывать входной сигнал с микро-выключателя, чтобы определять момент, когда начинать обратный отсчет. И он должен отсчитываться, только пока выключатель нажат. Как только обратный отсчет достигает ноля, должен привести в действие реле. Обе эти операции описываются стандартным кодом функций ввода-вывода, с использованием команд digitalRead и digitalWrite. Точечная матрица управляется при помощи библиотеки Matrix Display. Экран инициализируется на старте программы, а картинки отображаются путем включения и выключения отдельных пикселей. Я немного изменил файл Font.h, добавил больше ASCII символов. В атачах с исходниками можно найти мою версию библиотеки Matrix display. Особым энтузиастам я бы посоветовал переместить функцию отображения символов также в заголовок и добавить остальные ASCII символы для отображения. Это есть в моем списке задач на будущее, как и реализация переменной ширины шрифта. Но этот список довольно велик, так что пока на вышеперечисленные задачи нет времени. Прокрутка текста реализована при помощи функции drawString, которая является частью библиотеки. Анимации с ракетой и надписью (прекращение полета) описаны как массивы байт в верхней части кода, а функция drawImage просто вычисляет видимую часть массива и подает данные на дисплей.

Исходный код Arduino

Устанавливаем ракету для взлета

Устанавливаем ракету для взлета

Ракетная установка Arduino готова к запуску

Ракетная установка Arduino готова к запуску