ИК пульт из джойстика от Sega

Я частенько делаю роботов или игрушки на основе 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 при заливке скретча.
При написании прошивки я записал случайный набор чисел (коды) на каждую команду (кнопку). Эти коды я использую при написание прошивки управляемого устройства. Коды посылаются по три раза, что исключает возможность пропуска команды. При отпускании кнопки также отправляется код, который используется для остановки управляемого устройства.

pult_1.rar

[1005 b] (скачиваний: 132)

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

Источник: usamodelkina.ru

Понравилась статья? Поделиться с друзьями:
Современная мода