Чуть меньше полугода назад сделал сыну на день рождения подарок — конструктор Xiaomi MITU. Неожиданно для меня ребенок на неделю завис в этом конструкторе. Когда были испробованы первые модели и их управление с планшета, возник закономерный вопрос — «А как для него писать программы?»

image

И тут меня ждало жестокое разочарование — это творение сумрачного китайского гения содержало систему программирования, вполне доступную для рептилоидов с планеты Нубиру, но вряд ли пригодную для ребенка 6ти лет. Плюс внезапно оказалось, что совместимых с Миту датчиков вполне можно и не дождаться.

Но если ребенок просит — папа не может отказать. Начал исследовать варианты, разумеется смотрю на Лего, для начала на NXT/EV3. Сразу слегка разочаровывает цена, как на компьютер, так и на моторы/кнопки, потом начинаю смотреть на их последний писк Wedo — и там вообще все уныло.

Ок, есть же альтернативные версии, нахожу интересный проект Sbrick — цена более-менее вменяемая, совместимые моторы можно брать на Ali, но программирования там негусто.

Были так же всякие шилды на Биглбоны и Ардуины, но ничего достойного внимания не попалось.
Ну что ж, впереди были долгие зимние вечера, берем напильник и начинаем пилить.

Для первой версии взял разрекламированную ESP32, да еще и с OLED на борту. Красота.

image

К ней в компанию был куплен шилд с драйверами моторов и PCA9685:

image

Моего энтузиазма хватило где-то на неделю. Т.е. и на экране что-то показывает, и мотор крутится, но чем-то задним чувствую — не тот чип. Возможно, где-то для него и найдется ниша, но очень узкоспециальная, слишком уж он несбалансированный и какой-то китайский.

Ставлю на ESP32 жирный крест, беру следующего поциента. Волею случая это оказался RTL8710, купленный незадолго до этого на Али под предлогом «О, забавный! И недорого!».

Но тут даже много времени тратить не пришлось :)

image

C чистой совестью чип отправляется на свалку. И здесь вступление заканчивается и мы переходим к собственно проекту. Ибо следующим у меня на столе оказался NRF52. И не случайно — хорошо сбалансированный АРМ, с добротным СДК и толковой технической поддержкой. Собираю первый наколеночный вариант:

image

Для начала только светодиодики и блютуз профили. Отлаживаю самые базовые вещи и понимаю, что вот оно! Это именно тот чип, который мне нужен. Теперь уже можно добавить проекту немножко мускулов:

image

Ну тут уже есть и спикер, и драйвера, и акселерометр, и коннекторы для периферии. В качестве коннкторов изначально рассматривал вариант USB-C, как на Миту, но смутила сложность изготовления соединительных кабелей. Поэтому не стал изобретать велосипед, а просто поставил почти совместимые с Лего RJ-12. Их легко обжать, они дешевые и вполне надежные, как для детских шаловливых ручек.

Ну и в обычных леговских детальках разъем меняется за 3 минуты:

image

Тут уже пишется более-менее толковый софт, можно с телефона через блютуз конфигурировать и управлять железкой.

Параллельно создается проект на CircuitMaker (это тот же самый Альтиум, только бесплатный), где рисуется схема и плата.

На Али покупаются делатьки, на Сиидстудио — изготовление платы, и пока они неспешно плывут морями-океанами, продолжаем писать фирмварь.

Наконец приехали платы и часть деталей:

image

Заливаем фирмварь, радуемся миганию светодиодика. Наступила пора для следующей части. Рисуем модельку батарейного отсека и печатаем ее на 3Д-принтере:

image
Причем в отличие от китайских холдеров, в этот можно вставить аккумуляторы как с защитой, так и без:
image

Совершенно внезапно для меня оказывается, что первая же версия платы оказалась без глобальных косяков, все детали влазят, нигде никакая перемычка не забыта, мелкие апдейты по ходу не в счет:

image

Опять откладываем паяльник и берем 3Д-принтер. После десятка неудачных моделей таки получается приличный корпус:

image

С обратной стороны у него все готово для подсоединения к обычному Лего, уши по бокам совпадают по размерам с Lego Technic:

image

Моторы использую обычные китайские, лего-совместимые, а вот всякие дополнительные плюшки делаю отдельно. Например, из китайского HC-SR04 за доллар получился отличный Range srnsor:

image

C печатным корпусом и разъемом его стоимость получается меньше 3х долларов, при том что аналогичный леговский стоит $57:

image

Итого на сегодня есть коробочка, умеющая с помошью джаваскрипта рулить моторами и датчиками (внутри крутится слегка кастрированный Espruino в качестве сабмодуля), коробочка умеет апдейтить свою фирмварь через блютуз, схемы, платы, сорцы, 3д-модели — все выложено в открытом виде на гитхабе.

К сожалению, у меня осталась одна незакрытая задача. Я все-таки больше по железу, и когда понадобилось написать софтинку для Андроида, то я несколько подуныл.

В плане взять обычный код Blockly и к нему добавить аплоад через блютуз. И если есть желающие присоединиться или сделать себе такую же игрушку — велкам.

Гитхаб
Схемы
Группа в фейсбуке
Надеюсь, такая железка пригодится не только моему малышу.

Комментарии (26)


  1. sim-dev
    23.03.2018 15:42
    +8

    Ну, как всегда: игрушку купили ребенку, а папа завис надолго…


  1. foxin
    23.03.2018 15:45

    Интересно.
    Можно ли компактнее?
    Как выглядит интерфейс? Может лучше веб-версию пилить?
    Какие еще есть датчики?


    1. Delsian Автор
      23.03.2018 16:00

      Компактнее можно, но сейчас 90% объема — это аккумуляторы и коннекторы. Т.е. или меньше автономность, или крохотные (неудобные для ребенка) разъемы.
      Интерфейс описан на гитхабе, BLE сервис, понимающий много чего. Внутри коробочки — джаваскрипт, заливать можно тоже через BLE
      Веб-версию не хочу, надо, чтобы ребенок мог с неподключенного к интернету планшета рулить.
      Датчиков пока только кнопка и ультразвук, но подходе цвет и поворот, плюс встроенный акселерометр/гироскоп
      Будут еще сервы, актуаторы, шаговики и т.п.


      1. Tortortor
        23.03.2018 16:21
        +1

        веб-версия != интернет


        1. Free_ze
          23.03.2018 16:27

          Какой смысл в таких извращениях?


          1. Tortortor
            23.03.2018 18:16
            +1

            смотря что называть извращением.
            например, для технаря ставить знак равенства между вай-фаем и интернетом — это невежество или извращение?


            1. SADKO
              23.03.2018 20:42

              Да причём здесь, автор по всей видимости имел ввиду расклад при котором контроллер поднимает точку доступа, которую ищет приложение, что бы это всё работало где угодно, без завязки на какой-то конкретный маршрутизатор…
              … конечно, вместо приложения иногда бывает проще поднять сервер на контроллере, и я так часто делаю и делал если ресурсы позволяли, но есть одна деталь, иногда детям хочется управлять поделкой в реальном времени, и тут начинаются лаги, так что иногда приложения рулят, а нативные приложения рулят ещё больше


  1. rbobot
    23.03.2018 16:05

    Ябкупил. Может сделать серию?


    1. Delsian Автор
      23.03.2018 16:08

      Если найдется энтузиаст, готовый вывести это, например, на кикстартер — я буду всецело его поддерживать. Даже не обижусь, если кто-то сумеет на этом заработать больше денег, чем я :)


    1. Delsian Автор
      23.03.2018 16:13
      +1

      А продавать отдельные блоки мне невыгодно. Пайка одной платы вручную занимает где-то 5-6 часов, печать корпуса еще 4 часа.
      Деталей там суммарно на 11 долларов, еще минимум 8 долларов за хорошие аккумуляторы, печатная плата стоит 50 центов ($4.99 за 10 штук на сиидстудио)
      А продавать в виде конструктора — так маловато найдется умельцев, вручную запаивающих TQFP48 :)


  1. SADKO
    23.03.2018 17:57

    ЧТо-то я не догоняю, на сколько миту совместим с лего?


    1. Delsian Автор
      23.03.2018 18:15

      По деталькам совпадает идеально, качество пластика отличное. Размер моторов вроде бы совпадает, но точки крепления отличаются. По коннекторам несовместим абсолютно, даже количество проводов к мотору разное. В принципе, техниксовские чертежи несложно адаптировать под Миту


  1. crmMaster
    23.03.2018 18:33
    +10

    Как сэкономить на лего?
    1. 10 лет копаем STM по 8 часов в день
    2. Покупаем 3д принтер стоимостью в пару тысяч.

    n. Лего теперь стоит 3 бакса вместо 57!


  1. nochkin
    23.03.2018 19:33
    +1

    Хорошее начало. Интересно почему ESP не пошло. Я как раз нечто похожее на ESP делаю и вроде как проблем нет, хотя проект не закончен ещё.


    1. Delsian Автор
      23.03.2018 19:47
      -1

      ESP32 хорош для карманных поделок в ардуино-стиле. Чуть потребуется что-то серьезное — начинается: кривые либы, код либ вместо флеша жрет рам, отсюда фрагментация, жрет как андроид и т.п.


      1. nochkin
        24.03.2018 07:34

        Код либ ведь не зависит от МК так сильно. Использовал esp-open-rtos (esp8266), пробовал esp-idf (esp32) — не было такого, что вообще кошмар как в комментарии. Да и либы часто есть разные на одно и тоже, что можно выбрать.

        Кривой код есть везде, конечно, но это не вина МК. Или я что-то не видел ещё? Не могу сказать, что у меня огромный опыт и я просто могу чего-то не знать, потому и спрашиваю.


  1. 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 заходит на ура.


    1. SADKO
      23.03.2018 20:28
      +1

      А вот это отличная новость, получить всё что нужно из коробки…


    1. poznawatel
      24.03.2018 07:51

      можно с Python-ом и без операционной системы: store.micropython.org/product/HOUSING-OS-1


  1. iMisanthrope
    24.03.2018 11:34

    Если можно, в двух словах, насколько убог MiTU? С детства осталось немало Лего и иметь возможность собирать «умные» поделки была бы не лишней, но цена на оригинальный EV3 ставит крест на затее. А вот MiTU вполне вменяем по деньгам, но уже не раз слышу, что с программной частью все грустно.
    Как я понимаю, там какой-нибудь псевдо ЯП, и что-то серьезнее самобалансирующего робота сделать не получится?


    1. VIPDC
      26.03.2018 10:53

      В принципе базовое программирование норм. Основные операторы в наличии.
      Есть голосове управление на английском, мой сын 8 лет освоил.


      1. iMisanthrope
        26.03.2018 11:29

        Спасибо! А интегрировать с чем-то сторонним, с MQTT, например — реально?


  1. achekalin
    24.03.2018 12:40

    Вы бы делали наборы такие на продажу. Не все захотят сами, а кто и не сумеет, но кормить Лего многих напрягает, когда понятно, что деньги за понимание идут.


    1. foxin
      24.03.2018 14:38

      как автор выше написал — это не просто, все же производство — не домашнее мыловарение.

      к тому же есть sbrick, который достаточно демократичен по цене (особенно для не-росскийских зарплат).


  1. jaiprakash
    24.03.2018 16:42

    А что не так с RTL8710, кроме того что нужно писать на С?


  1. A__D
    24.03.2018 20:55

    Ахахаха… насмешили. Зарегистрироваться на сайте Ameba — это уже непосильный труд и всё, можно выбрасывать модуль. Профессиональный подход! Браво)

    ЗЫ. А если по делу, то есть раздел на этом форуме esp8266.ru/forum — там много всего интересного и полезного для SoC RTL8710 и других этой и следующей линейки.