
Arduino & Pi
ЧПУ плоттер в виде принтера на Arduino своими руками
Я расскажу о том как я сделал ЧПУ плоттер своими руками.
Он работает на Arduino.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
Энкодер на STM32 (arduino, platformio)
Использование энкодера вместе с STM32 с прерываниями.
Код лежит тут https://ideone.com/9oMlVS (сильно не пинайте, в первые использую подобный сервис).
Кусочек в прерываниях где-то увидел, не могу вспомнить где, но он сюда подошел.
Готовых решений в интернете не нашел, а из готовых библиотек ни одна не заработала как я хотел.
Оформлять в библиотеку не стал, просто есть как есть.
Термометр-котик
Давно тешил себя мыслью найти термометр, данные с которого будут доступны в веб-панели.
Вопрос стал еще более актуальным после удачной покупки дешевого Б/у кондиционера и желанием прикрутить к нему самопальный климат-контроль (управление любыми устройствами дома через интернет давно налажено)
Проблема заключалась в том, что цена на готовые устройства неприятно кусается, а те, что в обиходе (вроде решений от Xiaomi) не позволяют "просто так" забрать данные каким-либо открытым протоколом
Вдохновившись этой статьей понял, что пора начинать работать с Arduino.
Прошивка из статьи у меня работать почему-то не захотела, решил попробовать написать что-то своё.
Купил всё что надо на одном известном красненьком китайском сайте и достал с полки паяльник.
Спаял, работает! Однако, остро встал вопрос того, куда бы всё это дело спрятать. Распаечная коробка - громоздко и некрасиво, засунуть в спичечный коробок или пачку из под сигарет можно, но тоже как-то неэстетично. И вот, прогуливаясь по магазину фиксированных цен я увидел его. Котик-ночник из ПВХ, за 150 рублей. Не так компактно, зато красиво.
Вот так выглядит криво пропаенная плата
Да, можно было купить NodeMCU с уже готовыми "рогами" и припаяться к ним, но они торчат и мешают, а мне всё это дел надо уложить в корпус котика
Отрезаем котику ненужные детали в виде светодиодного модуля ночника с батарейками и днища
Аккуратно впихиваем плату и датчик внутрь
Выводим коту на голову антенну для связи с пришельцами (на самом деле это корпус датчика)
Делаем отверстие для ввода кабеля питания, соединяем всё между собой, приделываем днище на место, заливаем щели клеем и вуаля! Термометр-котик весьма сомнительного вида готов!
Теперь данные о температуре можно легко посмотреть через импровизированную веб-страничку
В моем случае - еще и сбор данных в Zabbix (система мониторинга) с отрисовкой графиков
На всё про всё потрачено часов 10 (из них 8 на разработку и 2 на сборку-отладку)
Добавлю ссылку на github - там есть исходные коды для платы (есть еще вариация с датчиком DHT11/22, который менее точен, но поддерживает еще и влажность), шаблоны для заббикса и еще немного полезной фигни.
Esp8266 нужен совет
Прошу совета у ардуинщиков и еспешников.
Второй год занимаюсь с соседскими детьми Ардуинками частным образом. Дети от 6 до 9 класса. Ребята уже соображают лучше меня.
В основном собирают метеоприборы, но есть и другое. Работаем с уно, нано, мега. В прошлом году закупил esp32 и esp8266. Несколько esp32 использовали для светодиодных матриц 2812b. Другие для сбора данных с датчиков bme280, 1750, uv и других. Через телефон или на дисплей. Короче все работало по sda и scl.
Этим летом разобрали большинство собранных устройств, начали собирать другие. И вот тут столкнулись с проблемой.
Релюшки управляемые нулем и единицей отказываются переключаться от esp8266 и d1 mini. От есп32, меги, уно, нано работают.
Для проверки подключили адресные матрицы. Результат ноль. Сажали рабочии светодиоды через резисторы на землю - не управляются.
Даже самый примитивный код типа:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
не работает. На еsp8266 нумерация gpio не совпадает с d или пином. Проверяли разные номера. Подключали к разным пинам. Например, ставили пин 4, цепляли рабочий светодиод ко всем выводам, кроме питания и земли поочередно. Ставили принтлайн, в мониторе порта показывается переключение.
Несколько детей и я ищем решение по тематическим форумам. Везде указывают на несоответствие gpio нумерации и нумерации пинов. Например gpio2 это пин 4.
Контроллеры и датчики через i2c работают отлично. А вот на пинах пусто.
Проблема еще в том, что сейчас нано, уно подорожали сильно. Закупил для ребят с Али больше 10 esp8266 версии 340 (у меня 2101).
Ребята получат контроллеры, которыми не смогут выдавать сигналы на пины.
Куда копать, как заставить esp8266 менять состояние пинов? Вернеее не так. Как определить какой именно номер d будет переключаться по команде на пин 2?
Плату в АрдуиноИДЕ версии 1.8.5 я выбираю правильно. Порт и скорост так же.
Управление шаговым двигателем на Arduino через bluetooth
Сегодня поговорим о том, как можно сделать управление шаговым двигателем на Arduino через bluetooth.
Надеюсь моя информация будет полезной.
Спасибо! Всем добра!
RP2040 - разбираем даташиты. Часть 2.2: Карта адресов
Содержание:
Часть 2.1.2: Доступ к атомарному регистру
Часть 2.1.5: Список регистровКарта адресов для устройства разбита на разделы, как показано в Таблице 15. Подробности показаны в следующих разделах. При обращении к несопоставленным диапазонам адресов возникает ошибка шины.
2.2.1 Сводка
2.2.2 Подробности
ПЗУ:
Память с функцией "выполнения на месте":
Объединённые модули статической памяти с произвольным доступом 0-3 (SRAM0-3):
Всегда раздельные модули статической памяти с произвольным доступом 4-5 (SRAM 4-5):
Раздельные псевдонимы модулей статической памяти с произвольным доступом 0-3 (SRAM0-3):
Периферия APB:
Периферия AHB-Lite:
Универсальная последовательная шина имеет в своей основе двухпортовую память с параллельным интерфейсом доступа и следующими регистрами:
Остальные периферийные устройства AHB-Lite:
Периферия IOPORT:
Внутренняя периферия Cortex-M0+:























