И тут меня ждало жестокое разочарование — это творение сумрачного китайского гения содержало систему программирования, вполне доступную для рептилоидов с планеты Нубиру, но вряд ли пригодную для ребенка 6ти лет. Плюс внезапно оказалось, что совместимых с Миту датчиков вполне можно и не дождаться.
Но если ребенок просит — папа не может отказать. Начал исследовать варианты, разумеется смотрю на Лего, для начала на NXT/EV3. Сразу слегка разочаровывает цена, как на компьютер, так и на моторы/кнопки, потом начинаю смотреть на их последний писк Wedo — и там вообще все уныло.
Ок, есть же альтернативные версии, нахожу интересный проект Sbrick — цена более-менее вменяемая, совместимые моторы можно брать на Ali, но программирования там негусто.
Были так же всякие шилды на Биглбоны и Ардуины, но ничего достойного внимания не попалось.
Ну что ж, впереди были долгие зимние вечера, берем напильник и начинаем пилить.
Для первой версии взял разрекламированную ESP32, да еще и с OLED на борту. Красота.
К ней в компанию был куплен шилд с драйверами моторов и PCA9685:
Моего энтузиазма хватило где-то на неделю. Т.е. и на экране что-то показывает, и мотор крутится, но чем-то задним чувствую — не тот чип. Возможно, где-то для него и найдется ниша, но очень узкоспециальная, слишком уж он несбалансированный и какой-то китайский.
Ставлю на ESP32 жирный крест, беру следующего поциента. Волею случая это оказался RTL8710, купленный незадолго до этого на Али под предлогом «О, забавный! И недорого!».
Но тут даже много времени тратить не пришлось :)
C чистой совестью чип отправляется на свалку. И здесь вступление заканчивается и мы переходим к собственно проекту. Ибо следующим у меня на столе оказался NRF52. И не случайно — хорошо сбалансированный АРМ, с добротным СДК и толковой технической поддержкой. Собираю первый наколеночный вариант:
Для начала только светодиодики и блютуз профили. Отлаживаю самые базовые вещи и понимаю, что вот оно! Это именно тот чип, который мне нужен. Теперь уже можно добавить проекту немножко мускулов:
Ну тут уже есть и спикер, и драйвера, и акселерометр, и коннекторы для периферии. В качестве коннкторов изначально рассматривал вариант USB-C, как на Миту, но смутила сложность изготовления соединительных кабелей. Поэтому не стал изобретать велосипед, а просто поставил почти совместимые с Лего RJ-12. Их легко обжать, они дешевые и вполне надежные, как для детских шаловливых ручек.
Ну и в обычных леговских детальках разъем меняется за 3 минуты:
Тут уже пишется более-менее толковый софт, можно с телефона через блютуз конфигурировать и управлять железкой.
Параллельно создается проект на CircuitMaker (это тот же самый Альтиум, только бесплатный), где рисуется схема и плата.
На Али покупаются делатьки, на Сиидстудио — изготовление платы, и пока они неспешно плывут морями-океанами, продолжаем писать фирмварь.
Наконец приехали платы и часть деталей:
Заливаем фирмварь, радуемся миганию светодиодика. Наступила пора для следующей части. Рисуем модельку батарейного отсека и печатаем ее на 3Д-принтере:
Причем в отличие от китайских холдеров, в этот можно вставить аккумуляторы как с защитой, так и без:
Совершенно внезапно для меня оказывается, что первая же версия платы оказалась без глобальных косяков, все детали влазят, нигде никакая перемычка не забыта, мелкие апдейты по ходу не в счет:
Опять откладываем паяльник и берем 3Д-принтер. После десятка неудачных моделей таки получается приличный корпус:
С обратной стороны у него все готово для подсоединения к обычному Лего, уши по бокам совпадают по размерам с Lego Technic:
Моторы использую обычные китайские, лего-совместимые, а вот всякие дополнительные плюшки делаю отдельно. Например, из китайского HC-SR04 за доллар получился отличный Range srnsor:
C печатным корпусом и разъемом его стоимость получается меньше 3х долларов, при том что аналогичный леговский стоит $57:
Итого на сегодня есть коробочка, умеющая с помошью джаваскрипта рулить моторами и датчиками (внутри крутится слегка кастрированный Espruino в качестве сабмодуля), коробочка умеет апдейтить свою фирмварь через блютуз, схемы, платы, сорцы, 3д-модели — все выложено в открытом виде на гитхабе.
К сожалению, у меня осталась одна незакрытая задача. Я все-таки больше по железу, и когда понадобилось написать софтинку для Андроида, то я несколько подуныл.
В плане взять обычный код Blockly и к нему добавить аплоад через блютуз. И если есть желающие присоединиться или сделать себе такую же игрушку — велкам.
Гитхаб
Схемы
Группа в фейсбуке
Надеюсь, такая железка пригодится не только моему малышу.
Комментарии (26)
foxin
23.03.2018 15:45Интересно.
Можно ли компактнее?
Как выглядит интерфейс? Может лучше веб-версию пилить?
Какие еще есть датчики?Delsian Автор
23.03.2018 16:00Компактнее можно, но сейчас 90% объема — это аккумуляторы и коннекторы. Т.е. или меньше автономность, или крохотные (неудобные для ребенка) разъемы.
Интерфейс описан на гитхабе, BLE сервис, понимающий много чего. Внутри коробочки — джаваскрипт, заливать можно тоже через BLE
Веб-версию не хочу, надо, чтобы ребенок мог с неподключенного к интернету планшета рулить.
Датчиков пока только кнопка и ультразвук, но подходе цвет и поворот, плюс встроенный акселерометр/гироскоп
Будут еще сервы, актуаторы, шаговики и т.п.Tortortor
23.03.2018 16:21+1веб-версия != интернет
Free_ze
23.03.2018 16:27Какой смысл в таких извращениях?
Tortortor
23.03.2018 18:16+1смотря что называть извращением.
например, для технаря ставить знак равенства между вай-фаем и интернетом — это невежество или извращение?SADKO
23.03.2018 20:42Да причём здесь, автор по всей видимости имел ввиду расклад при котором контроллер поднимает точку доступа, которую ищет приложение, что бы это всё работало где угодно, без завязки на какой-то конкретный маршрутизатор…
… конечно, вместо приложения иногда бывает проще поднять сервер на контроллере, и я так часто делаю и делал если ресурсы позволяли, но есть одна деталь, иногда детям хочется управлять поделкой в реальном времени, и тут начинаются лаги, так что иногда приложения рулят, а нативные приложения рулят ещё больше
rbobot
23.03.2018 16:05Ябкупил. Может сделать серию?
Delsian Автор
23.03.2018 16:08Если найдется энтузиаст, готовый вывести это, например, на кикстартер — я буду всецело его поддерживать. Даже не обижусь, если кто-то сумеет на этом заработать больше денег, чем я :)
Delsian Автор
23.03.2018 16:13+1А продавать отдельные блоки мне невыгодно. Пайка одной платы вручную занимает где-то 5-6 часов, печать корпуса еще 4 часа.
Деталей там суммарно на 11 долларов, еще минимум 8 долларов за хорошие аккумуляторы, печатная плата стоит 50 центов ($4.99 за 10 штук на сиидстудио)
А продавать в виде конструктора — так маловато найдется умельцев, вручную запаивающих TQFP48 :)
SADKO
23.03.2018 17:57ЧТо-то я не догоняю, на сколько миту совместим с лего?
Delsian Автор
23.03.2018 18:15По деталькам совпадает идеально, качество пластика отличное. Размер моторов вроде бы совпадает, но точки крепления отличаются. По коннекторам несовместим абсолютно, даже количество проводов к мотору разное. В принципе, техниксовские чертежи несложно адаптировать под Миту
crmMaster
23.03.2018 18:33+10Как сэкономить на лего?
1. 10 лет копаем STM по 8 часов в день
2. Покупаем 3д принтер стоимостью в пару тысяч.
…
n. Лего теперь стоит 3 бакса вместо 57!
nochkin
23.03.2018 19:33+1Хорошее начало. Интересно почему ESP не пошло. Я как раз нечто похожее на ESP делаю и вроде как проблем нет, хотя проект не закончен ещё.
Delsian Автор
23.03.2018 19:47-1ESP32 хорош для карманных поделок в ардуино-стиле. Чуть потребуется что-то серьезное — начинается: кривые либы, код либ вместо флеша жрет рам, отсюда фрагментация, жрет как андроид и т.п.
nochkin
24.03.2018 07:34Код либ ведь не зависит от МК так сильно. Использовал esp-open-rtos (esp8266), пробовал esp-idf (esp32) — не было такого, что вообще кошмар как в комментарии. Да и либы часто есть разные на одно и тоже, что можно выбрать.
Кривой код есть везде, конечно, но это не вина МК. Или я что-то не видел ещё? Не могу сказать, что у меня огромный опыт и я просто могу чего-то не знать, потому и спрашиваю.
MaxAlekseev
23.03.2018 19:53+2Для всех владельцев EV3 желающих продвинуться дальше чем предлагает Lego
и стать красноглазиком
Отличный проект http://www.ev3dev.org/
Кирпич EV3 превращается в полноценный Linux компьютер, вся периферия Lego доступна из Python библиотеки. Образ Linux записывается на SD-карточку и кирпич EV3 грузится с неё, при этом вынув SD получаем снова штатный Lego, в порт USB втыкаю Wi-Fi свисток… и у вас на столе Lego-Linux комп с Wi-Fi, который из Python может крутить колесами и работать с датчиками. Веду таким образом кружек робототехники в школе, с штатным Lego софтом и всякими Windows не пересекаюсь совсем. А вот Linux+Python на рабочих компах школьников и на Lego EV3 заходит на ура.poznawatel
24.03.2018 07:51можно с Python-ом и без операционной системы: store.micropython.org/product/HOUSING-OS-1
iMisanthrope
24.03.2018 11:34Если можно, в двух словах, насколько убог MiTU? С детства осталось немало Лего и иметь возможность собирать «умные» поделки была бы не лишней, но цена на оригинальный EV3 ставит крест на затее. А вот MiTU вполне вменяем по деньгам, но уже не раз слышу, что с программной частью все грустно.
Как я понимаю, там какой-нибудь псевдо ЯП, и что-то серьезнее самобалансирующего робота сделать не получится?VIPDC
26.03.2018 10:53В принципе базовое программирование норм. Основные операторы в наличии.
Есть голосове управление на английском, мой сын 8 лет освоил.iMisanthrope
26.03.2018 11:29Спасибо! А интегрировать с чем-то сторонним, с MQTT, например — реально?
achekalin
24.03.2018 12:40Вы бы делали наборы такие на продажу. Не все захотят сами, а кто и не сумеет, но кормить Лего многих напрягает, когда понятно, что деньги за понимание идут.
foxin
24.03.2018 14:38как автор выше написал — это не просто, все же производство — не домашнее мыловарение.
к тому же есть sbrick, который достаточно демократичен по цене (особенно для не-росскийских зарплат).
A__D
24.03.2018 20:55Ахахаха… насмешили. Зарегистрироваться на сайте Ameba — это уже непосильный труд и всё, можно выбрасывать модуль. Профессиональный подход! Браво)
ЗЫ. А если по делу, то есть раздел на этом форуме esp8266.ru/forum — там много всего интересного и полезного для SoC RTL8710 и других этой и следующей линейки.
sim-dev
Ну, как всегда: игрушку купили ребенку, а папа завис надолго…