![](https://habrastorage.org/getpro/habr/upload_files/15a/b40/8a5/15ab408a57cc7504cb6247c1ec83313d.png)
О различных клавиатурах мы уже писали, и на самом деле хороших моделей гораздо больше, чем может уместить даже целый цикл статей. Сегодня расскажем об одной интересной сплит-клавиатуре, разработчик которой создал её на базе картриджа от Game Boy. И нет, это не ради игр — встроенного эмулятора у неё нет (хотя можно было бы и добавить!). Речь идёт о том, что внутри картриджа вся необходимая для работы системы электроника.
Что это за помесь бегемота с носорогом?
![](https://habrastorage.org/getpro/habr/upload_files/7a9/b02/ce7/7a9b02ce7aa0fdb1cbe95870bf527c72.jpg)
Выглядит она вот так — стильно, модно, молодёжно. Называется модель TypeBoy, создала её компания FlatFootFox. Помимо того, что в неё вставляются картриджи, клавиатура ещё и беспроводная, что очень удобно. У автора этого текста тоже сплит, но проводной, и иногда это вызывает определённые неудобства. Один раз клавиатура упала, и гнездо под USB-порт просто оторвало от материнской платы. Так что пришлось в срочном порядке всё это чинить с паяльником.
Беспроводные сплит-клавиатуры, на мой взгляд, удобнее. Хотя, вероятно, и у них есть недостатки (если так, то расскажите, у кого такая система).
Но вернёмся к нашему гибриду ретро- и современной техники. Картридж не один, их сразу два, каждый вставляется в свою половинку клавиатуры. Внутри картриджа — контроллеры половинок платы, которые и отвечают за работу всей системы. Картриджи вставляются в слоты. Сделано всё аккуратно, так что ничего не отваливается и не выпадает.
![](https://habrastorage.org/getpro/habr/upload_files/f0e/41c/a5b/f0e41ca5be188f0906677e62dd134873.jpg)
Вся эта система базируется на основе проекта Open Source Cartridge Reader. Контроллеры свободно помещаются внутри картриджей для Game Boy Advance. Сначала автор разработки использовал полноразмерный картридж, установив дисплеи побольше. Но вся система получилась несколько больше, чем хотелось. Поэтому было решено воспользоваться другими картриджами. Автор не уничтожал оригинальные картриджи, а купил пустые корпуса, которые продаются на том же AliExpress.
![](https://habrastorage.org/getpro/habr/upload_files/94f/243/27f/94f24327f6e03242fce51383011b976a.jpg)
Внутри корпуса — кастомные контроллеры, автор не использовал готовое решение. Платы оснащены Bluetooth-модулями, так что половинки синхронизируются с ПК. Очень удобно. Для работы нужно вставить оба картриджа в слоты на обеих половинках клавиатуры, включить её — и можно работать. Клавиатура совместима практически со всеми устройствами, которые поддерживают подключение внешних аксессуаров по Bluetooth.
![](https://habrastorage.org/getpro/habr/upload_files/242/3d3/0ef/2423d30ef4759ce5f23774392cdcc0d1.png)
Положительный момент всей конструкции в том, что плату контроллера можно вынуть из картриджа, доработать при желании и вставить обратно. Проблем с этим никаких нет.
![](https://habrastorage.org/getpro/habr/upload_files/0da/18b/394/0da18b394e6aa1f3d815176c289f9620.jpg)
Печатные платы и корпуса подлинных картриджей Game Boy Advance имеют внутри два небольших выступа, удерживающих печатную плату на месте. Эти вкладки не являются совершенно необходимыми и занимают место, которое в противном случае можно было бы использовать для деталей. TypePak использует «контрафактную» печатную плату, и она не помещается в оригинальный картридж. Автор просит пользователей, которые захотят повторить проект, не уничтожать оригинальные игры.
Что внутри картриджа?
Контроллер Seeed Studio XIAO nRF52840 и LiPo-батарея ёмкостью в 80 мАч. Для того, чтобы реализовать подобный проект, нужно дружить с паяльником и другими инструментами. Если вы никогда не ремонтировали платы, не разрабатывали собственные электронные проекты, то, конечно, можно попробовать. Но будет сложно. Хотя для многих это вовсе не препятствие.
Seed XIAO BLE может быть запрограммирована с помощью Arduino, MicroPython и CircuityPython. У платы два 7-пиновых разъема, включая 1x UART, 1x I2C, 1x SPI, 1x NFC, 1x SWD, 11x GPIO (PWM). Что действительно нового, так это беспроводная связь, датчики и схема зарядки аккумулятора. И как раз этой новой возможностью и воспользовался автор проекта.
![](https://habrastorage.org/getpro/habr/upload_files/5ed/4dd/4a7/5ed4dd4a715596afeec6d764ac495320.jpg)
Характеристики микроконтроллера:
Беспроводной MCU — микроконтроллер Nordic nRF52840 Arm Cortex-M4F @ до 64 МГц с 1 Мб флеш-памяти, 256 Кб SRAM и Bluetooth 5.0, NFC, а также Zigbee
Хранилище — 2 Мб QSPI флеш-памяти
Расширение ввода-вывода — 2x 7-контактных разъёма с 1x UART, 1x I2C, 1x SPI, 1x NFC, 1x SWD, 11x GPIO (PWM), 6x ADC.
Напряжение ввода/вывода — 3,3 В (не допускается 5 В)
Датчики (только XIAO BLE Sense) — встроенный цифровой микрофон PDM, встроенный 6-осевой IMU (LSM6DS3TR)
Разное — кнопка сброса, 3-цветный световой индикатор, светодиодный индикатор зарядки
Питание — 5 В через порта USB Type-C, чип зарядки аккумулятора BQ25101, рабочее напряжение 3,3 В @ 200 мА, ток зарядки — 50 мА/100 мА. Потребляемая мощность в режиме ожидания — <5 мкА
Размеры — 21 x 17,5 мм
Компоненты внутри TypePak занимают место, примерно сравнимое с размером стандартного микроконтроллера, но разъём картриджа и сам TypePak занимают значительно больше места. Поскольку картридж довольно высокий, то клавиатура сделана таким образом, чтобы часть корпуса выступала.
![](https://habrastorage.org/getpro/habr/upload_files/90e/489/156/90e489156bc19b66e21e8049e8061c38.jpg)
Кроме того, есть монохромный дисплей с разрешением 160*68. Он отображает не только информацию о вводимых символах, статусе контроллера, но и показывает индикатор заряда батареи со статусом беспроводного подключения. И это необычно — я не встречал сплит-клавиатур, которые способны на это. Если вам попадались такие модели, расскажите о них в комментариях.
Что касается контактов, то задействованы не все, так что функциональность клавиатуры можно при желании расширять. Большинство важных контактов вынесены на оба конца разъёма картриджа. Пины батареи, контакты питания, сброса и некоторые другие дублируются, чтобы со всем этим было бы проще работать при реализации своего собственного проекта.
Если вы захотите сделать аналогичный или более функциональный проект, вот GitHub проекта с необходимой технической информацией, включая модель платы, прошивку и т. п.