ArduBlock - Ремонт платы Arduino UNO
Обучение детей программированию, какой инструмент выбрать?
Для детей, изучающих программирование, существует несколько отличных сред, включая визуальные среды для начинающих и текстовые языки для более продвинутых. Scratch, Tynker, Swift Playgrounds подходят для начального уровня. Для детей постарше, Python является популярным выбором из-за простоты синтаксиса.
Давайте теперь рассмотрим подробнее универсальные среды программирования:
Scratch: один из самых популярных инструментов для обучения детей программированию. Он использует блоки, которые можно перетаскивать, чтобы создавать игры и анимацию. Scratch имеет простой и понятный интерфейс, что делает его отличным выбором для детей младшего возраста.
ScratchJr: специально разработан для детей от 5 до 7 лет, предлагая визуальное программирование в игровой форме.
Tynker: образовательная платформа программирования, такая как Scratch, которая помогает детям освоить навыки программирования, включая игровой дизайн, веб-дизайн, анимацию и робототехнику. Он включает в себя курсы по моддингу Minecraft, игровому дизайну Minecraft, творческому программированию, Python и CSS, предлагает 65+ курсов и 5000+ активностей, что позволяет детям изучать программирование через игры и интерактивные проекты.
Swift Playgrounds: разработан компанией Apple, и позволяет изучать Swift (язык программирования) на iPad, обучая детей основам программирования через интерактивные уроки.
Python: мультипарадигменный высокоуровневый язык программирования общего назначения с динамической строгой типизацией и автоматическим управлением памятью, ориентированный на повышение производительности разработчика, читаемости кода и его качества, а также на обеспечение переносимости написанных на нём программ. Известен своим простым синтаксисом и широким спектром применений, включая веб-разработку, анализ данных и искусственный интеллект. Python может быть отличным выбором для детей, которые уже освоили визуальное программирование.
Ниже предлагаем рассмотреть среды программирования с роботехническими комплексами, которые работают совместно с оборудованием своего производства
LEGO WeDo 2.0.: используют scratch, дети уже в начальной школе смогут погрузиться в мир программирования. Благодаря кубикам LEGO, простому в использовании программному обеспечению и захватывающим STEM проектам учителя получают в своё распоряжение всё необходимое для обучения детей основам программирования.
LEGO MINDSTORMS EV3: графический интерфейс с блоками, которые соединяются в цепочки для создания программ, используют так же scratch
LEGO Education SPIKE Prime: Набор LEGO Education SPIKE Prime является практико-ориентированным образовательным решением, которое идеально подходит для STEAM-обучения. С помощью конструктора ученики 7-11 лет могут освоить предметы технического и естественно-научного цикла. У учеников, регулярно выполняющих увлекательные проектные задания, развиваются навыки критического мышления, способность работать в команде и быстро принимать решения. Конструктор LEGO Education SPIKE™ Prime предоставляет учащимся безграничные возможности для творчества.
VEX используют VXCode, есть несколько разных версий для разных навыков в программировании - только блоки, блоки и код на C++/Python. Есть версия с виртуальной симуляцией. Среда блочного программирования типовая - блоки с командами собираются в цепочку.
ZMROBO, робототехнический комплекс, блоки или иконки собираются в цепочку.
Еще есть TRIK Studio — среда программирования, позволяющая решать задачи как с помощью последовательности картинок, так и сложного текстового языка. Бесплатная среда программирования роботов с интерактивным режимом имитационного моделирования.
РОББО, используют scratch, в главных ролях у которого - робот (или другой персонаж). Можно моргать светодиодами, работать с переменными, доступны математические операции, работа с датчиками, звуками. Доступна онлайн версия, есть для скачивания.
Роботрек IDE - среда разработки, основанная на Arduino IDE и дополненная визуальной средой программирования для составления программ из блоков без необходимости писать и редактировать код. Визуальная среда разработана на основе проекта Ardublock и предоставляет собой плагин для Arduino IDE, генерирует код на языке программирования C из визуальной программы. При этом структура визуальной программы практически всегда соответствует структуре текстовой программы, что позволяет переходить от визуального программирования к текстовому с наименьшими усилиями. Доступно для скачивания на Windows.
IoTik Studio: графическая среда программирования для контроллера IoTik. Ее основная особенность - возможность быстро и просто создавать программы с помощью визуальных блоков. Никаких подробностей, доступна для скачивания.
Omegabot IDE: в основу визуальной среды разработки положена всемирно известная и популярная среда Scratch, которая обеспечивает плавный переход из визуальной программы на язык программирования С++ и Python. При этом практически полное соответствие структуры системы блоков текстовому коду облегчает освоение программы. Доступна для скачивания. Является дополнением к arduinoIDE v1.8.x
Ardublock: это платформа блочного кодирования для платформ Arduino, ESP, STM, MIK, BIT, доступна поддержка плат ELBEAR
Еще одна среда программирования - BearLogica
BearLogica — это интуитивно понятная русскоязычная визуальная среда программирования, разработанная компанией Элрон, как часть экосистемы для работы с отечественными микроконтроллерами. Приложение предназначено для программирования микроконтроллерных плат ELBEAR, разработанных в Элрон на базе российского чипа MIK32 Амур, выпускаемого компанией «Микрон».
Среда построена на основе Blockly — визуального фреймворка от Google, позволяющего собирать логически связанные программы с помощью графических блоков. Такой подход особенно удобен для начинающих пользователей, школьников, студентов и педагогов, а также инженеров, которым важно быстро протестировать идеи без погружения в синтаксис языка.
Приложение позволяет:
Собирать программу из графических блоков без необходимости писать код вручную.
Генерировать из этих блоков код на языке C/C++, совместимый с Arduino IDE.
Загружать полученный код напрямую на платы ELBEAR через стандартный USB-интерфейс.
Доступна поддержка плат ELBEAR ACE-UNO, ELBEAR ACE-NANO.
На данный момент приложение доступно для использования на операционной системе Windows.
Основное окно программы
Главное окно BearLogica включает в себя:
Панель управления (1) — кнопки сохранения, выбора платы и COM-порта, проверки и загрузки прошивки.
Панель блоков (2) — содержит категории доступных блоков и конструкций.
Рабочую область (3) — пространство для сборки логики программы.
Окно редактора кода (4) — окно с кодом на C/C++, содержимое которого автоматически генерируется при добавлении нового блока в рабочую область.
Окно состояния (5) — отображает статус проверки и загрузки собранной программы при нажатии соответствующих кнопок.
Поддерживаемые категории блоков
BearLogica предоставляет пользователю набор блоков, разделённых на категории (список можно расширять при необходимости):
Основные конструкции — циклы, условия, математические и логические операции;
Работа с переменными и организация кода в функции;
Задержки;
Цифровой и аналоговый ввод/вывод
Расширенные функции выводов – генерация звука, побитовый сдвиг на вход/выход.
Интерфейсы связи – поддерживается работа UART, I2C, SPI.
Работа с датчиками, сервоприводами и шаговыми двигателями, часами реального времени.
Ниже представлен пример простой программы, реализующей мигание светодиодом с заданной частотой.
Пример воплощён на реальной аппаратной платформе — плате ELBEAR ACE-UNO. На фотографии видно подключённый светодиод, мигающий согласно логике из программы. Плата подключается к ПК через USB Type-C и работает без внешнего программатора.


Подробнее о BearLogica и других наших продуктах на нашем сайте://elron.tech/elbear-based-projects/#bearlogica
Приглашаем так же в нашу группу: https://t.me/bearlogica
Carrier Board для популярной Arduino Nano
Мы разрабатываем плату расширения Arduino и, в ближайшем будущем, Raspberry Pi Pico для автоматизации малого бизнеса. Плату можно использовать для управления освещением, вентиляцией, насосами, интегрировать датчики и исполнительные механизмы без сложной настройки.
Поддерживает Arduino IDE, в будущем Raspberry Pi Pico (MicroPython/C++).
Чтобы принять правильное решение и сделать его максимально полезным, ответьте на следующие вопросы в теме:
Какие проекты вы реализовали на подобных платах?
Использовали ли вы Raspberry Pi Pico или Arduino для автоматизации?
Сталкивались ли вы с какими-либо проблемами? Если да, то с какими и как вы их решали?
Буду очень благодарна за ваши ответы!
Такая работа
Между постами о развитии России, иногда хочется поделиться личными достижениями, ведь все же мое главное дело сейчас не "Сделано у нас", и 90% своего времени я трачу на задачи связанные со службой. И порой иногда удается сделать что-то, о чем хочется рассказать, и что скоро будет наводить ужас на врага.
Вообще, началось всё с довольно тривиальной задачи. Я давно хочу начать делать FPV дроны для сбросов. Но не для этих пукалок ВОГов, а для нормальных таких сбросов, по взрослому. И тут нам волонтеры подогнали 4 крупных FPV дрона. И делов-то - приладить туда камеру поворотную, чтобы вниз могла смотреть, и сброс на сервоприводе. Пустяки.
Кратко расскажу как это вообще делается в принципе. Обычно у полетного контроллера (FC) есть 8 выводов для моторов, из них 4 занято, но целых 4 свободно, и на них можно повесить сервоприводы, переназначив туда пины контроллера. Тогда они начинают работать как ШИМ (Широтно-импульсная модуляция - регулирование основанное на подаче на электродвигатель импульсов напряжения с фиксированной амплитудой, но различной длительностью). Первым делом я так и сделал. Но оказалось не всё так просто.
Я хотел повесить это дело на трехпозиционный переключатель на пульте. У нас итак дефицит всяких кнопочек на пульте, и логично выглядело: шелк тумблер вниз - камера смотрит вниз - прицелились - щелк еще раз тумблер вниз - пошел сброс. Но это так не работает.
Во-первых, как оказалось, так реализовать нельзя, чтобы клац тумблером - работал один серво, клац второй раз - работает второй серво. Нифига, первый тоже работает при этом. Если два серво привязать к одному переключателю (в терминах FC это AUX), то на оба положения AUX реагируют оба серво.
Во-вторых, нельзя поменять направление серво. В моем случае получилось так, на верхнее положение мой сброс открыт, на нижнее он закрыт. А мне надо наоборот. И выход - физически переделать сброс, перевернув сервопривод. Там, кстати, на Гитхабе целое обсуждение этого поведения Betaflight, и в новой версии 4.6 они даже что-то исправили, но она пока не вышла. Да и делать это надо через smix reverce, а для этого... короче это не подходит, и все равно не решает проблему 1.
В-третьих, после долгих манипуляций FC просто сгорел нахрен. Вместе с ESC.
Я достал из своих запасов контроллер Mamba F405 MK2 - довольно популярный и качественный FC. Все припаял, захожу в CLI, ввожу resource и вижу... что у него только 4 пина под моторы, а не 8 как обычно. Свободных нет.
Да где наша не пропадала, там есть 2 LED, подцепимся к ним... но это не работает, так как эти пины не связаны с таймером, и на них ШИМ не заводится.
Короче, оказалось что у Mamba вообще нет ни одного ШИМ выхода, серво там цеплять вообще не к чему. Точнее там есть CAM_CONTROL, но физически площадку на плате я так и не нашел, в распиновке она не указана. Да и один ШИМ не спасет отца русской демократии.
Вообще, я из-за невозможности реализовать это на одном AUX был готов уже сделать это на двух, один управляет камерой, другой сбросом. Но тут совсем облом, тут просто некуда прицепить серво. Тупик? Нет, конечно можно взять другой контроллер. Но ёпт, опять все 12 проводов моторов перепаивать? В ЛЛ мне выпишут анафему.
Короче, тут я вспомнил про Arduino. Это решало вообще все вопросы. Во-первых, ШИМ там 6 штук (ну то есть можно подключить 6 сервоприводов). Во-вторых, программно можно их заставить делать что угодно, работать как угодно и в любую сторону. И легко повесить их на один AUX.
Вопрос в том, как из FC прочитать значение AUX из Arduino, чтобы узнать положение переключателя. И это оказалось довольно несложно. Я давно задумывался, что означает переключатель в первом столбце на вкладе "Порты" в Betafliht. Что за "Конфигурация и MSP" такая.
Оказалось, что он нужен для того, чтобы на этом UART включить протокол MSP (MultiWii Serial Protocol). Он позволяет общаться с FC извне, многое о нем узнавать, и даже им управлять через стандартный порт UART.
У MSP есть команда MSP_RC (105) которая возвращает значения AUX. Его надо распарсить, и вытащить из него в моём случае значение AUX5. И дальше простая логика:
AUX5 = 1000...1400 - камера прямо - сброс закрыт
AUX5 = 1400...1800 - камера вниз - сброс закрыт
AUX5 = 1800...2000 - камера вниз - сброс отрыт
Добавил контроль чексуммы, так как иногда приходит в ответ мусор. И сброс может, упс, и открыться просто так, хотя ты ничего не нажимал. Потом добавил еще проверку - сброс открывается только если пришло два одинаковых ответа подряд. Потом моя паранойя заставила добавить еще проверку, что перед открытием сброса была опущена камера - просто быстро клацнуть вниз переключателем - сброс не сработает.
Ну и, мне это всё так понравилось, что я еще и добавил вывод положений серво на экран в очки через OSD.
Применение Arduino открывает очень широкие возможности! Можно организовать любую логику работы нескольких серво, и даже можно реализовать управление дроном - через MSP можно управлять стиками, а значит наводить птичку. Понятно, что Arduino не потянет компьютерное зрение и распознавание целей, но для этого можно использовать уже что-то более мощное, Raspberry Pi, например, главное принцип, который мне теперь понятен.
А еще я на дроне реализовал переключение каналов видео-передатчика 1.2ГГц c пульта по нажатию кнопки, при том, что программное управление у этого видеопередатчика (через протоколы Trump или SmartAudio) не предусмотрено. Но это уже другая история.
Станок намоточный РНС-3.1
Всем привет! Небольшой обзор станка для намотки трансформаторов и дросселей моей разработки. Если Вам данный станок будет интересен, пишите в комментариях, я подробно опишу, как его сделать!
Привод у станка - ручной. Присутствует передаточный механизм, который повышает обороты в 3 раза. Но есть возможность использовать передачу 1:1, для более точной намотки. Также, основную ось можно крутить шуруповертом, для более быстрой намотки. Конечно, можно крутить и нижнюю ось, но мотать трансформаторы на более чем 2000 оборотов в минуту несколько неудобно.
Основная ось имеет общую длину 300мм. Изготовлена из шпильки м8. На ней располагаются: "блинчик" с магнитом, который необходим для подсчета витков; зажимы для катушек, между которыми эта катушка зажимается. Вспомогательная ось (та, на которой расположена большая шестерня) представлена болтом м8(он вроде как был м8*70, но впоследствии был укорочен). На шпильке и болте есть лыски, которые предназначены для крепления шестерен.
Счетчик витков - электронный, питается от зарядки для телефонов. Сама электроника представлена платой с микроконтроллером esp8266, oled дисплеем ssd1306 128*64 пикселя и датчиком холла SS41F. Благодаря датчику холла и магниту ведется подсчет витков, количество который выводится на дисплей.
На данный момент параллельно изготавливаю и разрабатываю станок с горизонтальным расположением осей (РНС-3.1Б), станок РНС-3.9(у него будет 3 скорости, в отличии от рнс-3.1, у которого их 2. В версии 3.9 будут: 1:1, 1:3, 1:9), станок РНС-4 ( у него будет другой корпус), а также подшипниковый узел.
А на этом у меня все. Всем до скорого!