И таки да! Есть продолжение этой истории.
Только немного в другую сторону. Сегодня речь пойдет не про сам танк, а про то, чем будем им управлять в (может и не столь далеком) будущем.
Завалялся у меня на полках вот такой вот аппарат
(далее много фоток, наберитесь терпения для загрузки)
Это был старенький ноутбук на базе 486го проца и чернобелого экрана. Рабочий причем. И даже грузился в DOS. Но... производительность его доставляла, конечно. Да и чего с ним делать, когда все средства разработки под этот раритет довольно сложно стало достать (но возможно!).
И решено было его переделать под что то более удобоваримое. И первое, что пришло в голову — Малина!
И так, определим, что нужно доделать, чтоб осуществить задуманное.
- Питание — родные батарейки благополучно сдохли, но еще остались, что позволило снять размеры блока. Блок питания тоже надо будет дорабатывать.
- Клавиатура — родная клава с электрической точки зрения — обычная матрица. Надо контроллер варганить, который к малине через USB подключается
- Дисплей — родная матрица была чернобелой и безконтроллерной, а у малины есть только выход HDMI. Потому было решено взять что-то готовое, подключаемое к малине через HDMI.
Собрав все пунткы в кучу — приступаем.
Питание.
Чем можно заменить в наше время старые батарейки? Ну кончено Литий-Ионом! Идем в «эти ваши интернеты» и ищем. Нашли баночки 18650, потом у братьев китайцев нашли платку BMS, для сбалансированного питания, подходящего размера и пытаемся все это соединить вместе. Для начала вот такой вот корпусок:
Для сравнения — вот рядом со старым блоком батарей:
Вставляем в новый корпус балансир BMS:
Ну и батарейки не забываем:
Эти вот пленочки нужны, чтоб извлекать батарейки из посадочного места. А то если их один раз туда засунуть, то потом только отверткой можно их оттудова выковырять.
Получился вот такой вот аккуратный аккумуляторный блок:
Чтобы все это безобразие заряжать, пришлось сдедать и заряжатор!
Опробован на уже давно лежащем блочке батареек. Вроде работает. Можно использовать.
Заряжатор был построен на базе BQ24725a. Это немного «туповатая» версия BQ-шки. Ей надо постоянно «объяснять» чего делать надо с батарейкой, какой химии она, каким током заряжается, и до какого уровня. Поэтому прилепил еще и микроконтроллер ей, STM32F40x. Он то этим всем и занимается.
Так же была идея сделать кнопку включения, как в современных компах, нажал — включилось, нажал и подержал секунд 5 — выключилось. А если при нажатии уже во включенном состоянии, ничего не должно происходить. Конечно можно было бы взять готовую микруху для этого, но мы не ищем легких путей, и потому собрал все на рассыпухе:
Схемка в pdf, если кому интересно.
Так же с этим включателем получилась такая любопытная фича — из распберри при выключении можно выключить себе питание. В линуксе можно задать пин, который будет дрегаться, когда закончится скрипт выключения. И этот пин заведен на вход SWITCH_IT_OFF на схеме (около P4), и все выключается. Так что получилось все совсем как у взрослых компов.
Так как сетевой адаптер выдает 24 вольта (надо для заряда батареи), а сама батарея выдает от 12-ти до почти 17 вольт, а распи питается от 5-ти вольт, то построил такой вот Buck-Bust DC-DC конвертор на базе LTC3780G, который высосет из батарее все до последнего:
Клавиатура.
Для начала чиним шлейфы, а то контакты поизносились малость
На просторах интернета нашел пасту токопроводящую, намазал на контакты и они заработали! Правда хватает на пару раз воткнуть и выткнуть. Потом надо заново мазать.
Затем паяем вот такую вот платку:
Это контроллер клавиатуры, который опрашивает матрицу клавиш и переводит их в сигналы USB. Сам он претворяется стандартным USB HID девайсом Клавиатура, причем, если память не изменяет, legacy, чтоб работал не только в Виндовсах но и в Биосе. Так же он еще претворяется мышкой, но эта часть почему то не взлетела. Пример работает, но вот управлять курсором как то не получилось толком. Ну и до кучу он еще претворяется USB HID Custom. И из него можно считать текущее время. Если знать как. Т.е. надо программу для компа свою делать. Ну нам сейчас важна функциональность клавиатуры.
Вот примерно так это выглядит. Распознается клавиатура как под линуксами так и под виндами.
Дисплей
На просторах интернетов нашел дсиплейчик с HDMI платой:
К сожалению сам процесс вкорячивания я не заснял, поэтому только готовый вариант, но с внутренностями:
Еще до кучи нашел в местном магазине небольшой USB хабчик, и разобрал его до винтиков и платок, чтоб использовать в своих целях
Сборка
Ну и теперь это все, что по отдельности работало, надо собрать вместе в один мааааленький корпусок.
Для начала примеряем, как оно все будет лежать там внутре.
Ну и чтоб неутомлять, сразу (полу)готовый вариант
Ну чтож. Вроде как работает оно все вместе.
Но чего то не хватает. Да! Музыки не хватает. Опять же полезл в интернет, нашел мелкий усилитель на пару Ватт, и воткнул его и еще два динамика, благо места там прям «вагон и маленькая тележка», т.е. мало места.
Вот тут вот сбоку виден блок батарей, и чуть выше — динамики:
Ну и надо же добавить отверстия в корпус. Я постарался сделать красиво, но вышло вот так:
Немного софта
Как у взрослых ноутбуков, так и у моего есть возможность посмотреть, насколько заряжена батарейка. Для этого мой заряжатор был соединен с Распи двумя проводками, по которым бегают TX и RX UARTа, и используя хитрый протокол, были получены данные текущего состояния батареи:
Ну и иконку в таск бар обязательно!
С определением уровня заряда пришлось потанцевать с бубном вокруг даташиты аккумов. Там есть вот такой вот график, точнее два:
И в заряжаторном микроконтроллере, считывая текущее состояние самого уровня напряжения и учитывая присутствие сетевого адаптера, можно высчитать примерный уровень заряда. И когда сетевой адаптер отключен, то уровень получается выше, ежели чем при подключенном адаптере и в процессе зарядки. Ну для примерного определения уровня вполне себе хватает.
Так же, в процессе зарядки очень сильно греются МОСФЕТы, и поэтому были встроенны два вентилятора, уровень работы которых так же можно было наблюдать на экране .
Так-же в батарее есть небольшой NTC температурный сенсор, и его температура так же отображается в программке:
Ну думаю, что примерное представление того, что было сделано, было полученно.
Остался вопрос — а зачем это все
Ну во превых — чего зря корпусу валяться, пусть работает с «современным» наполнением, а потом — идея была сделать компик для управления танком. На нем будет примено вот это :
В процессе создания сего устройства было напечатанно:
Оставить комментарий или два
Пожалуйста, зарегистрируйтесь для комментирования.