Информационный экран для iPod

Моя девушка, любительница музыки, попросила меня придумать способ просмотра информации о треке, играющем на iPod Touch во время использования его за рулем.  Те, кто имеет или имели iPod Touch, знают, что читать информацию на нем во время вождения далеко не просто. Для просмотра информации о треке необходимо два раза нажать кнопку Home, при этом буквы очень маленькие.

Я решил сделать устройство, которое будет работать с iPod и брать с него информацию о проигрываемом треке, а потом отображать её на экране, закрепленном в удобном для водителя месте. После довольно длительной работы и исследований, я сделал устройство, описанное в этой статье. Оно отображает на экране информацию о названии песни, исполнителе, альбоме, длительности песни и отображает значок воспроизведение/пауза. Также при помощи этого устройства можно листать песни вперед/назад, включать воспроизведение/ставить на паузу песню.

Исследования

Первым шагом в создании этого устройства было выяснение, возможно ли такое вообще. Я никогда не работал с iPod, и не знал, публичны ли протоколы для работы с ним.

Одним из первых сайтов, на который я наткнулся, был Cornell senior design с подробной документацией о принятии и отправлении команд с/на iPod. На  этом сайте есть схема соединений. Также благодаря этому сайту я убедился, что это возможно.

Я наткнулся ещё на нескольких ресурсов, а потом попал на самый главный. Я нашел блог Дэвида Финдли,  в котором он написал о дополнениях к iPod и библиотеке Arduino, которая позволяет легко работать с iPod. Я использовал эту библиотеку в своем проекте.

Также я нашел сайт с описанием Apple Accessory Protocol. Информация с этого сайта не нужна для понимания работы библиотеки Давида, но это может пригодиться в других проектах.

Элементы

Arduino (Для прототипа я использовал Uno, а в готовом устройстве Pro Mini)
PodBreakout
4x Кнопка без фиксации
Графический ЖК-дисплей (я использовал MONOCHRON от Adafruit)
Потенциометр 10кОм (для регулировки контрастности)
Разъем USB Mini
Аудио джек 3,5 мм  
Резистор 100 Ом
3х Резистор 1 кОм (3x)
2х Резистор 1 МОм
2х Резистор 33 кОм
Резистор 22 кОм
Резистор 100 кОм

Для сборки также необходимы:
BLS штырьки и разъемы
Провода
Стойки
Корпус
Фольгированный текстолит (если вы собираетесь делать свою плату)

Аппаратная часть

Поскольку я использую Arduino, вся обвязка микроконтроллера находится на Arduino. К нему подключаются лишь провода и резисторы. Распиновку разъема iPod найти по ссылке.

Необходимые соединения указаны для каждого контакта, указанного по ссылке. Также информация о контактах есть на сайтах перечисленных выше. Я и позже буду ссылаться на эти сайты.

Основное
ЖК-дисплей использует популярный контроллер KS0108.Для Arduino есть библиотека GLCD. ЖК-дисплей занимает большую часть контактов с Arduino. Для правильного присоединения ЖК-дисплея ориентируйтесь на документацию библиотеки. Ссылка на библиотеку будет приведена ниже.

Для последовательных линий TX и RX используются контакты 1 и 0 соответственно, подключенные к последовательным линиям iPod. ТX Arduino подключается к RX iPod и наоборот. То есть, контакт 1 Arduino подключается к контакту 18 разъема iPod, контакт 0 Arduino подключается к контакту 19 разъема iPod. Поскольку iPod работает от напряжения примерно 3В, а Arduino от 5В, нужно использовать делитель напряжения на линии передачи Arduino. Для него используются резисторы 1кОм. Теоретически, я должен использовать схему сдвига уровня, но я обнаружил, что Arduino не имеет никаких проблем с получением входящего сигнала 3В.

Осталось лишь присоединить кнопки.

Интерфейс
21 контакт  разъема iPod подключается к GND через резистор 500кОм, я использовал два резистора по 1 Мом, соединённых параллельно.  Контакты 25 и 27 разъема используются для контроля зарядки iPod. Если подать 2.8В на вывод 25 и 2.0В на вывод 27 можно получить от iPod около 1А и зарядить аккумулятор. Эти напряжения получаются при помощи простых делителей напряжения.

Другое
Все остальные соединения прямые. Смотрите схемы и документацию.

Программная часть

Для успешной компиляции прилагаемого кода вам понадобятся следующие библиотеки:
  iPodSerial
  GLCD

В документации, прилагаемой к каждой библиотеке, написано о работе с ней.

Код для этого проекта можно скачать внизу статьи. Я использую Advanced Remote с установленной библиотекой iPodSerial. При помощи этой библиотеки обрабатываться нажатия на кнопки и вывод информации на дисплей, а при помощи библиотеки iPodSerial происходит работа с IPod. Я не собираюсь разбирать код, но вы можете скачать его и изучить его самостоятельно.

Проектирование платы

Я делал плату для этого проекта, ориентируясь на корпус. Я сделал три отдельных платы. На основной плате находится Arduino и ЖК-дисплей, на плате с кнопками находятся лишь кнопки, а на интерфейсной плате находятся резисторы для зарядки, распознавания и т.д.

Eagle файлы прилагаются. Основная плата была сделана методом фрезеровки, а остальные методом травления.

Сборка устройства

Этот раздел статьи краток, я думаю, вы сами сможете установить устройство в корпус. Я использовал герметичный корпус с просверленными отверстиями. Возможно, позже, я установлю устройство в корпус, сделанный при помощью вакуумного формования, но оно работает и сейчас.

Компоненты должны быть припаяны и подсоединены.

Использование

Когда всё было сделано, устройство получилось даже лучше, чем ожидалось. Моей девушке оно нравится, что важно для меня. Спасибо за чтение!

Скачать скетч к Arduino и файлы печатных плат в формате Eagle

Оригинал статьи на английском языке (перевод: Александр Касьянов )


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

ЖК-дисплейR1, R2
Резистор1 МОм2
R3, R5
Резистор33 кОм2
R4
Резистор22 кОм1
R6
Резистор47 кОм1
USB
USB гнездо1
U2
Гнездо Mini-Jack1
JP1
Гнездо 4 пина1
JP4-15
Гнездо 1 пин12
ОсновноеU1
Плата ArduinoArduino Uno1
Pro MiniR1
Резистор1001
R2, R3, R5
Резистор1 кОм3
R4
Переменный резистор10 кОм1
JP1
Гнездо 5 пинов1
JP2
Гнездо 4 пина1
A4, A5
Гнездо 1 пин2

LCD-дисплей1
ИнтерфейсS1-S3
Кнопка1
кнопки без фиксацииJP1
Гнездо 5 пинов1
JP2
Гнездо 2 пина1

Резистор22 кОм1
Добавить все

Скачать список элементов (PDF)

Добавить комментарий

Ваш адрес email не будет опубликован.