Я частенько делаю роботов или игрушки на основе Arduino или подобных плат. Как вариант управления такими устройствами я пользуюсь ИК диапазоном. В плане приемника проблем нет, легко найти и подключить, а вот в случает с пультом сложнее.
И здесь два варианта:
1. использовать пульт от телевизора или другой техники, что есть под руками. Тогда возникает много возни, проблем и требует много времени. Вначале надо считать коды кнопок с пульта, а затем записать их в свою прошивку. Еще одна проблема заключается в том, что пульт посылает сигнал при нажатии кнопок один раз, не повторяет его (если устройство движется или далеко то за один раз приемник может его не считать), и ничего не отправляет при отпускании кнопки, что весьма неудобно, когда надо управлять двигающейся техникой. Ну и не хочется управлять телевизором и машинкой одновременно.
2. сделать свой пульт.
Вот по второму пути я и пойду. Для основы я использовал старый джойстик от приставки Sega. Там есть все что нужно. Четыре стрелки (удобно при управлении машинками) и 8 кнопок.
Итак что нам понадобится:
- джойстик от приставки Sega
- Arduino Pro Mini 3.3v 8MHz
- USB-TTL
- 2 Ni-Mn аккумулятора 1.2v 1000mA
- Ик светодиод
- Красный светодиод
- Синий светодиод
- резистора 2x75Om, 2x5Om, 1x2Om
-провода
- коннектор PLSх5 «мама»
- термоклей
- провода
- отсек для батареек 4xAAA
- разноцветные провода
- паяльник, припой, канифоль
- прямые руки
Шаг 1 Паяем
Разбираем наш джойстик, достаем из него плату и отпаиваем все провода от нее. Далее надо взять канцелярский нож или просто острый нож и разрезать все дорожки у контролера на плате, чтобы он нам не мешал и не конфликтовал с Arduino. Около каждой кнопки есть небольшой кружок с оголённой дорожкой. Взяв паяльник надо припаять к каждому кружку по проводу, а также найдя общий провод припаять и к нему провод (общий, черный). Завернув провода назад должно получится примерно так:
С обратной стороны на двусторонний скотч приклеиваем нашу Arduino. Небольшое отступление по поводу выбора Arduino. В принципе можно использовать любую плату, главное чтобы она поместилась внутрь джойстика.
Припаиваем наши повода по следующие схеме
Джойстик Arduino
Стрелка вверх 2
Стрелка вниз 4
Стрелка влево 5
Стрелка вправо 6
Кнопка A 8
Кнопка B 10
Кнопка C 7
Кнопка X 12
Кнопка Y 11
Кнопка Z 9
Кнопка Start 14 (A0)
Кнопка Reset RST
ИК светодиод + 3
Общий GND
Синий светодиод
через резистор 75 Om Raw
Красный светодиод
через резистор 75 Om + 5 конектора
Поясню: все кнопки припаял как было удобно по проводам, если перепутали, надо просто поправить в пошивке. Главное ИК плюсовой контакт надо припаять к 3! Не забыть припаять минус ИК к GND. Кнопка Reset нужна для перезагрузки Arduino при прошивке.
Шаг 2 режим корпус
Надо продумать вывод проводов для подключения USB-TTL. Я использовал коннектор на 5 PLS «мама». Прорезь подходящего размера сделал в правом боку джойстика, вставил коннектор и залил все термоклеем. +5v от этого коннектора пока просто выводим провод. TX к RX Arduino, RX к TX соответственно. +3.3v к 3.3 Arduino, GND кGND Arduino. Прорезь подходящего размера сделал в правом боку джойстика.
Для индикации включения пульта и заряда аккумуляторов надо просверлить два отверстия диаметром 5 мм в передней части джойстика и вставить туда светодиоды. А также прорезать отверстие для выключателя.
С внутренней стороны диоды и выключатели залить термоклеем.
Шаг 3 питание
Итак для питания есть два варианта. Я сделал оба, но вы можете выбрать подходящий и использовать один.
Первый питание на аккумуляторах. Для этого спаиваем последовательно два NI-MN аккумулятора, к плюсы через выключатель припаиваем последовательно следующее 5Om + 5Om + 2Om + Диод и к +5 нашего коннектора, это для зарядки от USB-TTL. Получившуюся спайку из диода и резисторов обматываем изолентой и закладываем правый верхний угол. Параллельно подпаиваем наш красный светодиод через резистор 75 Om, для индикации заряда. Второе положение выключателя – рабочее от него провод идет к RAW Arduino и опять параллельно, на этот раз синий светодиод, через резистор 75Om. Минус напрямую к GND Arduino.
Аккумуляторы поместились в верхней части джойстика и их надо приклеить
Далее идут манипуляции с Arduino. Дело в том что напряжение 2.4 вольт мало, и для того чтобы запустить наш контроллер надо изменить фьюз биты Arduino. Подробная инструкция по поводу прошивки загрузчика и фьюз битов выходит за рамки данной темы, и в интернете полно схем и вариантов. Здесь главное результат – отключить контроль питания Arduino. Вот схема распиновки ICSP Arduino Pro Mini.
Второй вариант проще и не требует дополнительных манипуляций с Arduino. Припаиваем к выключателю плюсовой провод от нашего отсека для батареек, минус к GND Arduino. Выводим провода наружу, сделав маленький разрез в корпусе и приклеиваем на двусторонний скотч отсек к задней крышке джойстика. Получает вот так:
Выглядит не очень красиво, зато быстрее и проблем меньше.
Шаг 4 Сборка
Итак у нас получилась следующая конструкция:
При сборке надо проложить провода так, чтобы их не закусывало внутренними частями джойстика. У меня получилось не сразу, но через попыток пять все получится. Вот мой пульт в сборе.
Шаг 5 прошивка
Прошивается наш пульт через коннектор подключенный к USB-TTL, зарядка тоже через него. Не забываем нажимать Reset при заливке скретча.
При написании прошивки я записал случайный набор чисел (коды) на каждую команду (кнопку). Эти коды я использую при написание прошивки управляемого устройства. Коды посылаются по три раза, что исключает возможность пропуска команды. При отпускании кнопки также отправляется код, который используется для остановки управляемого устройства.
Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.