-
SupeRUX для CarDSP
Штатный RUX от CarDSP, при всех его достоинствах, довольно неудобен для интеграции.
Возникла идея заменить его универсальным энкодером, умеющим помимо громкости переключать входы, пресеты и рулить уровнем саба.
Выбор пал на ALPS RKJXT1F – цифровой энкодер с пятипозиционным джойстиком (четыре направления и нажатие). Компактный, удобный, еще и для авто заточен (такие же ставятся на некоторые штатки, а также на бошки JVC и Pioneer).
Чтобы не рулить процессором вслепую, заказал также крохотный OLED-экран с шиной I2C и "диагональю" 0.91".
Управляет всем хозяйством компактный контроллер Teensy 3.2, поддерживающий среду Arduino. В отличие от примитивных Arduino Mini и Micro на 8-битных процессорах Atmega, Teensy 3.2 -- полноценный 32-битный ARM с вагоном памяти и аппаратных прерываний.
SupeRUX в действии
https://www.youtube.com/watch?v=MuPfQOkmL_A&t=10s
-
Вложений: 3
Re: SupeRUX для CarDSP
Чтобы приготовить SupeRUX в домашних условиях понадобятся следующие ингредиенты
Процессор
CarDSP Full SE (PCM1795) или Velvet. Скоро будет добавлен код для CarDSP Full 1795.
Поддержка CarDSP Full на PCM1794 не планируется.
Teensy 3.2
Естественная среда их обитания: радиолюбительские магазины или Ali
Вложение 1314459
Энкодер ALPS RKJXT1F42001
Заказывал на Ali. Бывают оригинальными и не очень. Оригинальные отличаются более короткой осью и отсутствием металлической накладки с направляющими джойстика. Пробовал оба, родной ALPS лучше.
Вложение 1314461
Два RKJXT1F42001: левый и оригинал
OLED-экран с шиной I2C (IIC) и контроллером SSD1306
Вложение 1314463
Тоннами продаются на Ali, но встречается и на Avito.
Код написан для под разрешение 128x32, но можно попробовать экраны и с бОльшей диагональю/разрешением, слегка адаптировав прошивку.
Желательно выбирать экран с контроллером, переваривающим напряжение питания 5V.
К счастью, таких большинство.
БП для постоянного тока
Преобразователь из 12V в любое напряжение в диапазоне 3,6-5V. Подойдет простой импульсный DC-DC адаптер питания с током на выходе от 1A, например автомобильная зарядка для телефона
-
Вложений: 3
Re: SupeRUX для CarDSP
Схема подключения
Вложение 1314465
Питание
Плюсовой выход БП подключить к контакту Vin на Teensy и VCC на контроллере экрана (если последний дружит с 5V).
Если его дисплей желает только 3.3V, нужно питать его не от БП, а от вывода 3.3V на teensy.
Минусовой выход подключить к контактам GND на Teensy и контроллере экрана.
Внимание! Не стоит подключать teensy к USB-порту когда на контакт Vin подается внешнее напряжение. Прежде необходимо либо отключить питание от Vin, либо не подавать питание по USB. Проще всего изготовить специальный USB-кабель для прошивки teensy в машине, разорвав в нем красную жилу.
Вложение 1314467
Назначение контактов в прошивке по умолчанию
Вложение 1314469
Любую сигнальную линию энкодера можно повесить на любой свободный контакт teensy, отредактировав файл Hardware.h
Сборка по шагам
1. Соединить Teensy, энкодер, OLED-экран и CarDSP (см. схему)
2. Подать питание 5V на Teensy и OLED-экран
3. Установить на ПК среду Arduino IDE
4. Установить Teensyduino
5. Установить Adafruit SSD1306.zip из архива с прошивкой</a>
(Скетч->Подключить Библиотеку->Добавить .ZIP библиотеку…)
6. Распаковать скетч из архива, загрузить его в Arduino IDE
7. Выбрать свою версию teensy в меню Инструменты->Плата
8. Подключить teensy к USB-порту компьютера.
9. В среде Arduino IDE нажать круглую кнопку со стрелкой (Загрузка)
10. Дождаться загрузки прошивки и наслаждаться жизнью
Для удобства все основные настройки прошивки вынесены в заголовочные файлы Hardware.h (соответствие контактов, осей энкодера, разрешение экрана), Timings.h (задержки энкодера, скрин-сэйвера) и Can.h (переменные для работы с CAN-шиной VAG MQB).
Код прошивки и необходимые библиотеки выложен здесь https://yadi.sk/d/O5KOlObxf4bYPw
-
Re: SupeRUX для CarDSP
Вдогонку: код нетрудно допилить и под другие процессоры.
Как минимум Helix уже расковыряли, примеры есть в сети.
Мне Хеликсы ни к чему, но если кто то решится дописать для них код -- помогу советом.