Хабрахабр

Хотел красивую железку. Получилось

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

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

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

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

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

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

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

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

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


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

  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 — любимой программы дискжокеев.

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

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

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

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

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

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

Соль

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

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

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

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

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

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

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

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

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

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

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

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

Исходный код

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

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть