- PVSM.RU - https://www.pvsm.ru -
Сравнение ESPboy с M5Stack, MeowBit & Dingoo A-320
Самому паять уже порядком поднадоело и удалось договориться с бойкими китайскими парнями из www.makerfabs.com [7], которые сдюжили три десятка полусобранных наборов-китов для самостоятельной окончательной сборки. Надо припаять всего 4 детали, чтобы все заработало. [8]
Пробную партию быстро раздал на тесты для желающих участвовать в разработках проекта, и надо бы заказывать еще, но побаиваюсь таможни, которая повадилась арестовывать почти все, что по содержимому посылки в количестве больше 5 однотипных штук на сканерах отображается.
Далее удалось собрать прототипы модулей и написать под каждый ПО, что превращает ESPboy в полноценный девайс, как и задумывалось. Для этого достаточно воткнуть нужный модуль в разъем расширения и обновить прошивку. Исходники на github [9].
Предстоит еще несколько итераций по доводке всех модулей до стадии производства.
Необходимо нарисовать печатные платы, сделать выверенные списки доступных и недорогих комплектующих, написать подробную инструкцию, оформить все в виде китов, готовых для сборки и в виде уже собранных изделий.
Надеюсь все это успеть сделать до конца этого года.
На сегодня полностью готовы и отлажены следующие расширения:
Так же в работе находятся еще несколько интересных задумок, надеюсь скоро расскажу.
1. Полноценная мини клавиатура
Сделана на основе клавиатуры смартфона Blackberry Q10, которая управляется через расширитель портов MCP23017.
Информации о сигналах на шлейфе клавиатуры довольно много [10] и задача сводится к заказу разъема + переходника под шлейф и припаивание этого самого разъема к переходнику. Учитывая размеры разъема в несколько миллиметров и размеры самих контактов буквально с волос, задача не из простых.
MCP23017 работает по i2c и в программном плане проблемм не возникло. Необходимо опрашивать матрицу клавиатуры на поиск замкнутых контактов и правильно интерпретировать сигналы в клавиатурныю раскладку. Подробности видны в исходниках [11].
2. Метео станция
Какой ардуинщик не собирал метеостанцию. Такого в природе не сыщешь.
В моем варианте используется i2c сенсор давления/влажности/температуры BME280 [12] и так же сенсор CO2 — SGP30 [13].
В качестве бонуса — часы реального времени DC3231 [14], что позволяет еще и правильное время показывать.
Думалось еще добавить сенсор грозы/молний AS3935 [15], но дороговат. Может позже.
Сам модуль получился небольшой, код тут [16].
В качестве расширенной версии на пробу сделал штуку побольше. Не понравилось, но видео эксперимента сохранилось.
3. MP3 плеер
Использовал DFplayer mini mp3 [17], тем же путем, что описывается в статьях про этот модуль [18].
Проблема с ним только в том, что часто попадаются бракованные и работают не стабильно или вообще не работают. Исходник [19].
4. FM радио
В качестве основы использовался модуль fm тюнера SI4703 [20] и немного допиленная библиотека [21] от mathertel [22].
Играет радио вполне сносно в наушники, работает поиск станций и даже RDS. Код тут. [23]
5. GPS навигатор
Без навигации нынче никуда. Поэтому конечно же решил собрать доп модуль и для этой задачи.
Использовал чип WAVGAT GY-NEO6MV2 [24] с которым не возникло совершенно никаких проблемм. Реализовал два экарана. Один — режим свободной навигации, второй — режим следования на точку из памяти. Теоретически и карту можно туда засунуть, но это долгая задача. Исходники все там же [25].
5. DAC модуль для проигрывания музыки
При разработке ZX Spectrum эмулятора, возникла идея эмулировать его музыкальный сопроцессор AY-3-8910. Программная эмуляция на встроенном динамике получилась, но затраты процессора на синтез звука и качество оставляли желать лучшего. В конечном итоге спектрум на ESPboy заработал, но только в версии 48к без эмуляции AY потому, как даже на это памяти хватило впритык (буквально пара десятков байт на стек осталось).
Однако благодаря стараниям Shiru [26]и его опытам со звуком, появился DAC модуль для ESPboy и плеер PT3 AY3-8910 спектрумовской музыки.
Применялся модуль на PCM5102 [27] с поддержкой интерфейса I2S [28] (не путать с I2C [29]). Исходники неизменно есть [30].
7. LORA мессенджер с криптой
Не так давно стала очень популярна технология LORA [31] — энергосберегающий протокол передачи коротких пакетов данных по радиоканалу на большие расстояния. Покопавшись обнаружил недорогие трансиверы от EBYTE [32].
Причем на максимальной мощности они шарашат аж на 8км по прямой видимости. Тут нужно понимать, что препятствия в виде рельефа местности и городской застройки этот показатель кардинально снижают, ну и городские помехи тоже. Однако в загородных условиях или если спутники с GSM вышками к примеру попадают — это отличных канал связи. Эксперименты вылились в создание полноценного чат-модуля по радиоканалу. Модуль сам шифрует пакет, но и я сверху в качестве опции AES (по умолчанию это отключено).
Пришлось заморочиться с библиотекой под трансивер [33] потому, как существующие либо глючили, либо я не понимал, как они вообще работают.
8. Хакерский GSM телефон
Наткнувшись в сети на конструктор телефона Ringo (ранее Maker Phone) [34], сильно удивился цене и сложности. Имея опыт работы с известными модулями SIM800 [35] от компании SimCom, быстренько запилил свой телефон.
Он конечно не на столько удобен, как всеми любимые современные смартфоны, но зато он не подглядывает и не ворует ваши контакты.
Написанный софт поддерживает необходимый минимум:
В дополнении на экране отображается вся служебная информация по работе GSM трансивера. Запросы и ответы базовых станций и черт знает что еще. Я не спец, но наблюдать интересно.
В качетстве бонуса можно вводить низкоуровневые AT команды управления трансивером, как в старые добрые времена dialup модемов, а команд этих в документации от SimCom аж на 600 страниц [36]. Ну чем не поле для исследований для истинных хакеров.
Изучая документацию ESP8266 и помня про WiFi у него на борту, особенно поразила возможность обновлять его прошивку по http/https [37], то есть по сети. Принимая во внимание то, что программирование микроконтроллеров дело хлопотное, а обновление прошивки это практически всегда геморрой, очень захотелось это изменить.
Как выглядит обновление прошивки для микроконтроллера обычным путем?
Понятное дело, что такой квест начинающим осилить сложно и это является критическим препятствием при вхождении в тему программирования микроконтроллеров, ротоботехники и прочего такого.
И как же это изменить?
Собственно онлайн каталог приложений сводит задачу обновления прошивки к следующим простым действиям:
Ну это ли не красота и счастье!
Вот собственно и исходники клиентской части, чтобы подключиться и наслаждаться [38].
Около года назад, уже после того, как спроектировал ESPboy и вовсю тестировал, наткнулся на коммерчески успешный проект Arduboy [3].
Под этот замечательный гаджет, как оказалось, было написано не мало прикольных игр с открытым кодом, [4] а дружное комьюнити [39] ведет разработки и по сей день.
В основе разработки игр для Arduboy лежит библиотека Arduboy2 lib [40].
После портирования этой библиотеки на ESPboy появилась возможность перекомпилировать десятки прекрасных игр с Arduboy с минимальными корреткировками кода.
Исходники библиотеки, портированные игры и инструкция о том, как портировать что угодно с Arduboy на ESPboy самому опять же на github. [5]
Параллельно с проектом ESPboy интенсивно равивается проект фентези консоли Little Game Engine [41].
Работа игр, выполненных на Little Game Engine поддерживается на ESPboy и Игорь — автор движка, не перестает нас радовать новыми релизами [6].
Разработка этих игр проста и незатейлива, а также доступна любому желающему через среду разработки (IDE), которая запускается в любом браузере и имеет встроенный компилятор и эмулятор [42].
Исходники движка также доступны для ознакомления. [43]
Таким образом работа над проектом продолжается.
Впереди еще много интересного и в плане добавления новых элементов экосистемы ESPboy и в плане более тщательной интеграции уже существующих компонент с одновременным упрощением для пользователя и повышением общего позитивного впечатления.
Спасибо всем, кто делает свой вклад в проект: Дмитрий (Plague), Александр (Shiru), Михаил Г.,
Игорь (Corax), Алексей (AlRado), Михаил (Torabora), Scott(MLXXXP) и многих других, кто играет, читайет, тестирует, кодит, стримит, советует и просто лайкает.
Всем добра и творческих успехов!
С уважением,
РоманС
Автор: Роман
Источник [50]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/diy/352733
Ссылки в тексте:
[1] Со времени публикации первой статьи : https://habr.com/ru/post/469647/
[2] ESPboy: https://hackaday.io/project/164830-espboy-games-iot-stem-for-education-fun
[3] Arduboy : http://www.arduboy.com
[4] Arduboy: https://arduboy.ried.cl
[5] ESPboy: https://github.com/ESPboy-edu/ESPboy_Arduboy2_lib
[6] Little Game Engine: https://corax89.github.io/esp8266Game/gamelist/index.html
[7] www.makerfabs.com: http://www.makerfabs.com
[8] Надо припаять всего 4 детали, чтобы все заработало.: https://hackaday.io/project/164830/instructions
[9] github: https://github.com/ESPboy-edu
[10] довольно много: https://forum.arduino.cc/index.php?topic=355709.0
[11] Подробности видны в исходниках: https://github.com/ESPboy-edu/ESPboy_Keyboard
[12] BME280: https://aliexpress.ru/af/BME280.html?d=y&origin=n&SearchText=BME280&catId=0&initiative_id=SB_20200504014309
[13] CO2 — SGP30: https://aliexpress.ru/af/GY%25252dSGP30.html?d=y&origin=n&SearchText=GY-SGP30&catId=0&initiative_id=SB_20200504035020
[14] DC3231: https://aliexpress.ru/af/rtc--ds3231-arduino.html?d=y&origin=n&SearchText=rtc++ds3231+arduino&catId=0&initiative_id=SB_20200504042158
[15] AS3935: https://aliexpress.ru/af/GY%25252dAS3935.html?d=y&origin=n&SearchText=GY-AS3935&catId=0&initiative_id=SB_20200504014401
[16] код тут: https://github.com/ESPboy-edu/ESPboy_Weather
[17] DFplayer mini mp3: https://aliexpress.ru/af/DFPlayer-mini-DF.html?d=y&origin=n&SearchText=DFPlayer+mini+DF&catId=0&initiative_id=SB_20200504015133
[18] описывается в статьях про этот модуль: https://lesson.iarduino.ru/page/urok-17-podklyuchenie-mini-mp3-pleera-k-arduino/
[19] Исходник: https://github.com/ESPboy-edu/ESPboy_MP3Player
[20] SI4703: https://aliexpress.ru/af/CJMCU%25252d470-Si4703-FM.html?d=y&origin=n&SearchText=CJMCU-470+Si4703+FM&catId=0&initiative_id=SB_20200504020440
[21] немного допиленная библиотека: https://github.com/ESPboy-edu/ESPboyRadio_lib
[22] mathertel: https://github.com/mathertel/Radio
[23] Код тут.: https://github.com/ESPboy-edu/ESPboy_FMradio
[24] WAVGAT GY-NEO6MV2: https://aliexpress.ru/af/WAVGAT-GY%25252dNEO6MV2.html?d=y&origin=n&SearchText=WAVGAT+GY-NEO6MV2&catId=0&initiative_id=SB_20200504020836
[25] Исходники все там же: https://github.com/ESPboy-edu/ESPboy_Navigator
[26] Shiru : https://www.patreon.com/shiru8bit/posts
[27] PCM5102: https://aliexpress.ru/af/GY%25252dPCM5102.html?d=y&origin=n&SearchText=GY-PCM5102&catId=0&initiative_id=SB_20200504025038
[28] I2S: https://ru.wikipedia.org/wiki/I%C2%B2S
[29] I2C: https://ru.wikipedia.org/wiki/I%C2%B2C
[30] Исходники неизменно есть: https://github.com/ESPboy-edu/ESPboy_PT3Play
[31] LORA: https://en.wikipedia.org/wiki/LoRa
[32] EBYTE : https://aliexpress.ru/af/EBYTE-E32-LORA.html?d=y&origin=n&SearchText=EBYTE+E32+LORA&catId=0&initiative_id=SB_20200504022722
[33] заморочиться с библиотекой под трансивер: https://github.com/ESPboy-edu/ESPboy_LORAmessenger
[34] Ringo (ранее Maker Phone): https://www.circuitmess.com/ringo/
[35] SIM800: https://aliexpress.ru/af/sim800L-GSM.html?d=y&origin=n&SearchText=sim800L+GSM&catId=0&initiative_id=SB_20200504030252
[36] SimCom аж на 600 страниц: https://github.com/ESPboy-edu/ESPboy_GSMphone/blob/master/SIM800_Series_AT_Command_Manual_V1_10.pdf
[37] обновлять его прошивку по http/https: https://arduino-esp8266.readthedocs.io/en/latest/ota_updates/readme.html
[38] Вот собственно и исходники клиентской части, чтобы подключиться и наслаждаться: https://github.com/ESPboy-edu/ESPboy_OTA
[39] дружное комьюнити: https://community.arduboy.com
[40] Arduboy2 lib: https://github.com/MLXXXp/Arduboy2
[41] Little Game Engine: https://habr.com/ru/post/472114/
[42] любом браузере и имеет встроенный компилятор и эмулятор: https://corax89.github.io/esp8266Game/index.html?src=fc58f18411b844c17bf2ae1341eb00c7
[43] Исходники движка также доступны для ознакомления.: https://github.com/corax89/esp8266_game_engine
[44] среда разработки: https://corax89.github.io/esp8266Game/index.html
[45] YouTube: https://www.youtube.com/channel/UCsMjlCb8CK-Cw54lRrkpbQw/videos
[46] easyeda.com: https://easyeda.com/roman.sokolov/espboy_rev3-7b
[47] espboy.edu@gmail.com: http://espboy.edu@gmail.com
[48] форум: https://community.espboy.com
[49] Discord chat: https://discord.gg/kXfDQpX
[50] Источник: https://habr.com/ru/post/500336/?utm_source=habrahabr&utm_medium=rss&utm_campaign=500336
Нажмите здесь для печати.