Часть 1 >> Часть 2 >> Вы находитесь здесь


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


Прошёл год с начала моего фанового проекта. Получилось! Та самая красивая железка выглядит вот так:
Моя прелесссть


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


А для хорошей каши из топора нужна крупа.


WiFi Slot



Все знают про ESP8266. У этой борды несколько отличий.


  1. К ней подключаются Troyka-модули. И их разных очень много.
  2. Таких модулей туда можно поставить 4.
  3. У неё 8 каналов АЦП, с измерением диапазона от 0 до 3.3 В. А для голой ESP8266 это очень не характерно.
  4. Здесь есть две шины питания: силовая 5В, цифроаналоговая 3,3 В.
  5. Одно в другое превращается через DC/DC. Меня лично задолбали эти кипятильники-регуляторы. Привет высокий КПД.
  6. А это значит, что можно драйвить моторы прям с неё. И как-нибудь я покажу как.
  7. Она поддерживает Slot Connector. А это круто.

Короче, я могу воткнуть в неё 4 потенциометра, и это будет выглядеть шикарно. Ведь ради крутого лука всё и затевалось.


i2cio


А вот и мой любимый STM32F030F4P6.




На картинке две платы с одной и той же прошивкой i2cio. Это расширитель портов ввода/вывода.
9 управляющих пинов этой штуки умеют:


  1. 12-битный АЦП
  2. 16-битный ШИМ, с очень круто регулируемой частотой. Хоть сервы туда вешай (DC/DC помогает и тут), хоть моторы постоянного тока крути, хоть звук играй.
    Так же эти 9 плюс ещё один могут цифровой ввод/вывод.

Дополнительно Slot Expander поддерживает Troyka-разъёмы и разделение питания на силовую и аналоговую части.


Аааа… Забыл. Таких расширителей можно к железке подключить чуть больше 100 штук. И они все рассортируются по I2C-адресам автоматом, предоставляя плоскую адресацию пинов. То есть вы сможете написать


i2cio.digitalWrite(852, HIGH);
int tooMuchForAnalogPinNumber_areYouReallyShureQuestion = i2cio.analogRead(942);

И при этом всё получится.
Ну и стоит камень 33 рубля. И можно сделать с ним, например, ездуна по линии с самым большим в мире количеством датчиков оттенка серого. С 12 битным АЦП и 16-битной регулировкой чувствительности. Не меняя прошивку.


Заголовок спойлера

Что я обязательно и покажу в следующих сериях.


Едем дальше.


Экшн


Друг попросил меня сделать ему пульт для Traktor — любимой программы дискжокеев. Я подумал, что если у меня не получится сделать это быстро и красиво, то ерунда у меня получилась, а не красивая железка.


Скручиваем всё вместе



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


Для этого мне понадобится материнская платка с мозгами esp8266 (слева). Её отличие от остальных только в том, что она квадратная, имеет 8 входов АЦП и питается от 5 В через DC/DC преобразователь. А ещё к ней можно подключить такую же квадратную плату расширения на моём любимом stm32f030f4p6 (справа) через красивую железку (центр).


Добавим кучу потенциометров


Ещё одна особенность этих железок — в них очень просто вставить стандартные модули. Модулей у меня этих много разных. Я взял кучу потенциометров. Потому что все любят кучу потенциометров(с).



Больше потенциометров богу потенциометров!



Соль


Самый долгий пункт сборки. Если захочется сделать всё в точности как я, понадобится сделать следующее:


  1. Купить в Леруа деревянный уголок со стороной 2 см
  2. Взять пилу, и попытаться отпилить его под 45 градусов
  3. Понять, что это не так то просто. Начать бегать повсюду и искать стусло.
  4. Скрутить стусло из советского металлического конструктора.
  5. Упилить почти весь уголок в брак, потому что не дано тебе, Василий, делать что-то красивое руками.
  6. Купить, наконец, стусло.
  7. GOTO 5. Потому что не дано тебе, Василий. Нечего и пытаться.

Вот что получилось:



Ерунда, переделать


Друг говорит: «Это что это, пульт для трактора, да? Не похоже что-то».


Хороша работа. Начинай сначала.


Берём ещё 4 платы расширения, прикручиваем. Берём кучу модульков, и тыкаем куда попало.


Получилось вот это:


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



Ох, не дано тебе, Василий, не дано...


Демонстрация работы


В итоге получился беспроводной пульт для трактора. Он управляет трактором по WiFi через Open Sound Control.



Исходный код


Исходный код на gitHub. Залил целиком рабочую папку, чтобы не искать библиотеки по всему интернету.


А как вообще это работает?


Красивая железка — это просто коннектор, который при помощи четырёх болтов умеет передавать два сигнала и питание. Два сигнала — это I2C. Материнская плата умеет разбрасывать все платы расширения по последовательно идущим I2C-адресам и, впоследствии, что-то с ними делать. Например, считывать 12-битный аналоговый сигнал с (почти) каждой ножки расширителя. Или управлять 16-битным ШИМ на каждой ножке расширителя. Ну или просто использовать эти ножки как цифровой вход/выход. Можно использовать эти расширители, если вам просто не хватило ног на вашем любимом микроконтроллере.


Прошивка stm32f030f4p6, установленного на плате расширения лежит здесь.


Библиотека для работы с расширителями портов в Arduino IDE лежит здесь.


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

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


  1. jimmyjonezz
    19.09.2018 23:50
    +1

    Аккуратно сверлим отверстие… Я сказал: «Аккуратно!».
    На самом деле очень интересно, я прям балдею от таких щтук, и горю от зависти.


    1. Scrayer
      20.09.2018 09:21

      эпоксидка стерпит все, в том числе и такие «отверстия»


  1. sshmakov
    19.09.2018 23:52
    +1

    Простенько так, непритязательно, со вкусом и как же это круто!..


  1. sshmakov
    19.09.2018 23:56
    +2

    Кстати, по поводу «не дано» — в том же Мерлене специально обученный человек нарежет багет под 45.


    1. safari2012
      20.09.2018 09:34

      Это уже будет не тру diy :)


      1. radsrv
        20.09.2018 10:01
        +1

        DIY будет всегда тру если продукт ты не вытаскиваешь из коробки с фирменными лейбами, а на каком-то этапе лепишь сам свою фирменную лейбу или характерный элемент.


        1. DarkWanderer
          20.09.2018 16:34

          Вы не в белорусском Интеграле работали?


    1. naviastro
      20.09.2018 10:55

      Хех)) Мерлене как-то заказывал нарезку… двухюнитового серверного корпуса)) По стоимости, вместе с материалами, вышло около 700 руб.! Опыт пока считаю положительным, уж очень оперативно и дёшево решилась проблема.


      1. Barafu_Albino_Cheetah
        20.09.2018 11:02

        Можно, пожалуйста, больше подробностей богу подробностей? У меня сейчас такая же задача — в домашнюю файлопомойку на старых винтах эти самые винты больше не помещаются…


        1. naviastro
          20.09.2018 11:56
          +1

          Всё просто: выбираете листовой материал (фанера, ДСП или пластик) и толщину под себя, рисуете схему раскроя, приезжаете в магаз, берёте лист материала и отдаёте на раскрой. Стоимость одного реза была 12 руб., если правильно помню. Собирать всё вместе — алюминиевый уголок, эпоксидка, шурупы и т.д., как больше нравится. Но этим стоит заниматься, если важно иметь одновременно определённый форм-фактор и специфичную внутреннюю компоновку. Мне, например, не подходили готовые корпуса, а на заказ — долго и дорого. Самое трудоёмкое — сборка и размещение компонентов внутри.

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


  1. ionicman
    20.09.2018 00:06

    Круто!

    Зная как потом быстро сдохнут перменники при кручении — вдвойне круто :D

    Зная сколько стоят те переменники, которые сдохнут не быстро…

    Но — их можно заменить энкодерами, и вопрос знатокам — а есть ли в природе поперечные энкодеры? Ну чтобы и ползунки заменить?

    В — Вечность…


    1. Celtis
      20.09.2018 00:32

      Можно заменить подвижной зубчатой планкой/ремнем и шестерней на ось энкодера.


    1. acos Автор
      20.09.2018 08:53

      Есть модули-энкодеры. И даже есть модули-энкодеры с rgb-подсветкой ручки. Вот такие https://www.instagram.com/p/BmoJV2vg5WI/?utm_source=ig_share_sheet&igshid=1cdn00mj8plge


      Посоветуйте, пожалуйста, потенциометры. Был бы рад ссылке на гарантированно хорошие.


      1. Barafu_Albino_Cheetah
        20.09.2018 14:48
        -2

        Вот эти гарантированно хорошие, и с низким разбросом в партии.


        1. sebres
          20.09.2018 15:36

          не смешите мои тапочки — эти потики (с RL в 25 килоциклов) захрипят в таком пульте за месяц-два (ну может полгода от силы).


      1. sebres
        20.09.2018 15:21
        +1

        Т.к. сегодня ничего вечного не делают, «гарантированно» хорошие будут с Rotational Life >= требуемого, если часто вертится то как минимум 1М циклов (цикл = поворот туды-сюды)…

        1М /  365 ~> 2700 * 2 ~ 5400 (поворотов ежедневно в течении 1 года)
        1М / 3650 ~>  270 * 2 ~  540 (поворотов ежедневно в течении 10-ти лет)
        
        Т.е. смотрим в даташит… Ну например у тех же Vishay, 534-е модели миллионники (см. www.vishay.com/docs/57065/533534.pdf)


        1. acos Автор
          20.09.2018 15:56

          Монтаж на провод а не в плату, это минус. Но спасибо что тыкали куда смотреть


          1. sebres
            20.09.2018 16:34

            А печатные трудно найти путёвые (MRL>=100K), ну или я не встречал, покрайней мере из более менее бюджетных… (если вдруг встретите — поделитесь марк-ой, плз).
            Вырианты более 30$ за потик согласитесь не очень интересны… (особливо когда оно — «куча потенциометров»).
            Притом что на провод MRL~1M найти уже от 5$ (ну 10$) вполне реально.


            1. acos Автор
              20.09.2018 17:12

              Печаль. Я не могу выходить за стандартный


            1. acos Автор
              20.09.2018 23:43

              Я тут подумал, что если взять стерео потенциометр линейный и читать его оба канала. Обрабатывать это МК, и тогда когда они начнут дребезжать, вероятность получить дребезг в одном и том же месте на обоих каналах гораздо ниже. Таким образом не очень дорогой потенциометр прослужит


              1. sebres
                21.09.2018 16:03

                Мысль вроде бы здравая (там и обрабатывать МК не сильно нужно, просто брать сигнал с большим из двух сопротивлением, т.е. (xL > xR ? xL : xR) ну или в случае АЦП обратный), но…
                … или "крадёте" входы МК или "городить огород" с сумматорами (с компенсируемым делителем) и иже, да и получится как бы то, что называется и "из дерьма — конфетку"...


                Я не могу выходить за стандартный

                за стандартный что, простите?


  1. kinall
    20.09.2018 00:26

    Извините, что не по теме, но в чём сделаны вторая и третья картинки?


    1. Alex_ME
      20.09.2018 01:07
      +1

      Картинки с сайта Амперки


    1. acos Автор
      20.09.2018 13:13

      Inkscape


      1. kinall
        21.09.2018 12:15

        Спасибо!


  1. 152251
    20.09.2018 03:13

    Ньюмарк 4track стоит не так дорого. За идею лайк.


    1. anprs
      20.09.2018 06:57

      40 000+ руб.
      Что-то мне подсказывает, что описанный в статье девайс — на порядок дешевле


      1. alsmit
        20.09.2018 23:11

        Ради интереса зашел на сайт указанный на платах из поста. Чисто за платы выходит 9300 р. + стоимость ручек для энкодеров + стоимость модуля с батарейкой (на сайте не нашел) + стоимость деревянного уголка. Выходит 11-12 тысяч.


      1. 152251
        22.09.2018 05:14

        Но функционал то круче, у брата 4track, он его за 38к новый купил в Питере.


  1. fndrey357
    20.09.2018 06:31

    Вот оно наше все — на дырке (не поворачивается назвать отверстием) по USB а деревяшке…

    А по питанию все равно проводочки будут…


    1. acos Автор
      20.09.2018 07:44

      В последнем варианте аккумулятор (центр, снизу зелёная )


  1. eps
    20.09.2018 10:14

    О, ещё один нестандартный разъём для I?C.


    Когда, наконец, все уже договорятся о каком-нибудь стандартном разъёме со стандартной распиновкой?


    1. acos Автор
      20.09.2018 10:39

      У спаркфана хороший qiic. Для нашего есть переходники на кучу вариантов. Ещё не в продакшене правда)


      1. a5b
        22.09.2018 09:47

        "Qwiic Connect System" — SM04B-SRSS + SHR04V-S-B
        https://cdn.sparkfun.com/assets/parts/1/2/2/8/9/Qwiic_Connector_Datasheet.pdf
        Black = GND
        Red = 3.3V
        Blue = SDA
        Yellow = SCL


    1. nafikovr
      22.09.2018 10:52

      у i2c не должно быть разъема. интерфейс изначально подразумевал использование в пределах одного устройства. Все побочные интерфейсы с иной целью использования имеют свои имена, назначения и стандарты. но, как правило, используются как дополнительные и потому своего разъема не имеют, а пропущены через имеющийся в основном интерфейсе. например SMBus, DDC и прочие.


  1. triton
    20.09.2018 10:15

    По поводу корпуса и сверления — делаем макет в кореле/автокаде/инкскейпе сразу с нужными гравировками и отверстиями. Отдаем в работу (на станке лазерной резки), оплачиваем, через пару дней получаем готовые детали корпуса.
    Один минус — надо уметь работать с векторной графикой.


    1. triton
      20.09.2018 10:22

      P.S. Если корпус резать из фанеры без сложной гравировки, то все удовольствие рублей 200 будет стоить.


  1. Alexeyslav
    20.09.2018 10:20

    Болтами соединяются только сигнальные шины, а как же питание? отдельно проводами?


    1. acos Автор
      20.09.2018 10:37

      Болтами передаётся сразу всё. 4


      1. Alexeyslav
        20.09.2018 11:35

        так там два болта на одной плате, два болта на другой плате итого всего 2 вывода, а надо 4. КАК? по фото плат видны только сигнальные пины, а как передаётся питание — великая загадка.


        1. smilyfox
          20.09.2018 13:06
          +1

          Переходник двухсторонний, поэтому выводов 4. У основной платы сверху sda и scl, снизу питание. Болтами соединяется питание, а контакт sda и scl обеспечивается просто механическим прижимом. Вообще довольно неоднозначное решение в плане надежности.


          1. acos Автор
            20.09.2018 13:19

            Покрытие золотом снимает много проблем надёжности здесь. С лужеными контактами проблемы были. С золотом всё. Механическая прочность и контакт хорошие.


            1. smilyfox
              21.09.2018 10:12

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


          1. acos Автор
            20.09.2018 13:22

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


          1. Alexeyslav
            20.09.2018 13:47

            Тогда болты надо изолировать иначе они могут замкнуть сигнальные линии.


            1. acos Автор
              20.09.2018 13:50

              Нет. Этого не произойдет. Там текстолит отлично всё изолирует


              1. Alexeyslav
                20.09.2018 14:13

                Тогда ещё один интересный вопрос, а как металлизация контактного отверстия выступает выше маски чтобы обеспечить контакт в стык? или скручивается так что маска проминается до контактных площадок… не, наверняка не так. Или там специальные шайбы установлены?


                1. acos Автор
                  20.09.2018 14:35

                  Просто вокруг пятака нет меди. Поэтому маска ниже меди получается. Она на текстолите и она тоньше медного слоя


                  1. Alexeyslav
                    20.09.2018 17:16

                    Как она тогда скрывает остальные дорожки?


                    1. nafikovr
                      21.09.2018 00:53

                      Макетировал клавиатуру с металлическими мембранами под пленкой. Проклял маску, которая мешала мембране контачить с площадкой...


        1. Nibi
          20.09.2018 23:11
          +1

          Кажется я знаю. микро-платка переходная — она 2-сторонняя. 2 2-сторонних платы соприкасаются друг с другом и внутри 1 пара контактов, а внешняя пара соединяется через винт с гайкой.
          Т.е. вокруг винта 2 контактных площадки, одна на top, а другая на bottom слое.


  1. 8street
    20.09.2018 10:50

    Можно пару слов, как трактор понял, что это его железка? И еще вопрос, сколько задержка между девайсом и хостом?


    1. acos Автор
      20.09.2018 12:13

      Трактор из коробки умеет opensoundcontrol. Достаточно слать на 10000 порт udp-пакеты с osc-сообщениями и всё.


  1. gopotyr
    20.09.2018 13:11
    +1

    Ну, коль скоро все любят кучу потенциометров, то еще одно применение оных: Potentiometer — Menu selector


    1. acos Автор
      20.09.2018 13:29

  1. tolegs
    20.09.2018 14:04

    Позволю совет. Василий, у «матрёшек» есть очень точный дальномер на VL6180. Выдерни один потенциометр, а на его место дальномер и настрой его в тракторе на эффекты. И так ладонью перед датчиком глубину какого нибудь reverb-а менять. Я пробовал, очень эффектно.

    И ещё вот эти #!!! % * & -> перед аккуратным usb-отверстием лачком что ли покрыть.


    1. acos Автор
      20.09.2018 14:48

      Спасибо за совет, и рад, что вы обратили на это внимание. Прикол в том, что можно любой датчик туда воткнуть. Хоть датчик паров алкоголя. Можно считывать дыхание диджея и его алкогольный ppm превращать в bpm. Короче Чад и угар кутежа. Любой датчик амперки


  1. 3d20
    20.09.2018 19:18

    Почему не использовали 3D-печать для корпуса? В САПРе типа «Компас» такой набрасывается за минуту, с разъемом USB — за 5. Некоторое время медитации и ничего на корпусе писать не надо.


  1. Jenix
    20.09.2018 22:33
    -1

    Автор похоже не писатель — я так и не понял, что это и откуда. И зачем Трактор? Короче, Уасилий, непонятно, но за мсп430 плюс тебе…