Comments 77
... нужно было настроить тактовую частоту, сконфигурировать регистры направления портов (DDR), работать с регистрами данных портов (PORT)...
До AVR был ещё 8051 - ничего настраивать не надо, можно сразу дергать регистр порта. Другое дело что все "настройки ног ввода-вывода" по сути выполнял разработчик внешней схемотехникой.
Как бы я скептически не относился к ардуиноподобным проектам - но ардуина давно устарела. Используйте ESP. Ровно то же самое, даже среда разработки та же самая, код тот же самый почти, но - сетевой интерфейс из коробки, огромная частота работы и память.
Не ну хотя такие ардуинщики и есп ардуиной называют, у них все очень просто и легко.
Взять хотя бы вот эту картинку вторую сверху в посте. Нафига вам вообще эта ардуина? Пошел купил готовое устройство и всего делов.
Может ли Esp выдавать сигналы в жестком реальном времени ? - например управление недорогими сервомашинками требует строгой длины импульсов. Малинка, например, не может и для этого её обычно комбинируют с той же адруинкой.
Я думал для этого используют микросхемы-таймеры
в есп32 есть аппаратный шим
На ESP32 по умолчанию запускается RTOS (Real Time OS), название само говорит за себя. С одной стороны работает в реальном времени, с другой стороны это операционная система облегчающая работу с двумя ядрами.
Есть платы на ESP32 для построения станков с ЧПУ и 3D принтеров (там все должно работать в реальном времени,т.е. с точными временными интервалами по нескольким осям), например MKS TinyBee.
Ардуино, меня вполне устраивает, но желательно в виде VS Code + PlatformIO. С этими инструментами можно делать вполне серьезные вещи, в том числе и CNC станки и 3D принтеры.
Так например, в последнем моем проекте я соблазнился на цену ардуинки (за 600р ардуина + шилд для драйверов шаговых двигателе + 4 драйвера двигателей).
Но, в этой конфигурации попадаешь в ловушку невозможности выдать ШИМ сигнал на драйвера двигателей, т.к. выходы микроконтроллера с ШИМ используются на шилде для других целей. Пришлось делать через прерывания.
А основная претензия к Ардуино - это их родная IDE. Это слезы. Помигать светодиодиком можно, но вот отладка - это боль, только через "print()"
Я наверное из старой школы, но предпочитаю отладку через print() всегда. И в работе отладка через print() используется каждый день, а gdb - довольно редко.
Но Arduino IDE убога не только из-за отладки но и из-за редактора кода даже без подсветки синтаксиса. С моей точки зрения киллер фича Arduino это загрузчик через UART интегиррованный в их недо IDE. Купил плату, подключил UART или USB и начал писать код, прошивать и отлаживать плату. И не надо фиремнных программаторов за сотни долларов, или нефирменных но требующих внимания и понимания. Низкий порог входа и никаких сложностей с прошивкой. И с установкой "IDE" тоже никаких сложностей.
Что интересно, под тот-же Zephyr писать не сложнее чем под ардуину, и плата шьется одной командой, и gdb запускается одной командой, но такого широкого распространения они не получили.
Думаю, практически любой, кто пробовал родную ардуиновскую "IDE" согласиться c Вами, что это "недо IDE". Но, создатели ардуино и не стремились сделать IDE, они делали "редактор скетчей", и думаю точно попали в цель - снизить порог входа.
Даже я (с опытом работы и с ARM, и с ESP) попался в эту ловушку - паять не надо (для меня это не составляет технической проблемы), но я решил, что сэкономлю время. Разбираться в даташитах не надо (это теоретически для меня не проблема, просто ATMega я давно не программировал и все позабыл), но опять же я подумал, что сэкономлю время. Мельком посмотрел характеристики на станице маркетплейса - 3 таймера, ШИМ. Ну, думаю, пойдет.
В итоге пришлось разбираться с даташитом. 2 таймера 8-ми битные (с этим для моей задачи можно согласиться если совсем закрыть глаза на результат). Плата шилда для драйверов двигателе распаяна так, что ШИМ сигнал на двигатели не идет. Стандартная библиотека ардуино, для управления двигателями совершенно не подходит для ПИД управления скоростью вращения.
В итоге пришлось самому мастерить "велосипед" с управлением по прерываниям (хотел сэкономить время на пайке, а в итоге потратил время на программирование и получил кривой результат), пришлось читать даташиты, на xто тоже было потрачено время.
Итого. Мое мнение, Ардуино (плату) нужно использовать для того, для чего ее проектировали - для входа в микроконтроллеры. Далее когда страх пройдет, нужно смотреть внимательно (а не как я по быстрому со страницы маркетплейса), что там есть в этой ардуинке и куда это можно подключить.
Сам фреймворк вырос за пределы изначальной цели разработчиков и теперь зачастую от фрейморка остались там только setup() и loop() и файлы определений.
Мельком посмотрел характеристики на станице маркетплейса - 3 таймера, ШИМ.
Ну сами же говорите - нужно внимательно читать... Да и непонятен выбор платы на атмеге - есп сейчас не дороже, отладочные платы а-ля беспаечные шилды тоже есть.
Ну и ардурина - это не столько фирмовая плата (или клон) на атмеге, сколько IDE (при всех претензиях к ней) и сообщество с кучей готовых велосипедов (пусть даже колеса у них разной формы, и в разных плоскостях)
Да и непонятен выбор платы на атмеге - есп сейчас не дороже, отладочные платы а-ля беспаечные шилды тоже есть.
Я повелся на то, что паять вообще не надо. Макретплейс привезет завтра и у меня сразу будет контроллер, шилд для драйверов и 4 драйвера A4988. Для моей задачи выглядело красиво. Мощности контроллера думаю хватит "за глаза", ШИМ есть, таймером буду отмерять периоды для ПИД регулятора, давно слышал, что библиотеки для управления двигателями под Ардуино есть (я же предполагал, что библиотеки вменяемые, а не для сервомашинки). Думал, что шилд вменяемый - выводы ШИМ должны быть заведены на вход STEP драйверов двигателя. Эти умственные упражнения заняли не более 5 минут, пока листал страницы маркетплейса. Ну вот думаю, экономия времени налицо и что в итоге - два двигателя на прерываниях с двух таймеров, на третьем весит системный таймер, использовать под третий двигатель я его не могу, т.к. он нужен для ПИД. Третий двигатель "тупо в цикле" ждет когда таймер скажет "время прошло - пора". Благо скорость третьего двигателя позволяет так делать.
Да, платы и STM32, и ESP32 есть недорогие, но для недорогих таких плат не видел готовых шилдов для драйверов двигателей. И главное, думал, сэкономлю на времени - рабочее время тоже деньги.
Теперь - однозначно решил, что в следующий (если будет подобная задача) раз буду делать на STM32 или на RP2040. Ардуино (как железо) упрощает мигание светодиодиком, но создает кучу неразрешимых проблем. Даже на чистой ATMega328 я потратил бы меньше времени (день на разводку платы и день на распайку), чем три-четыре дня "раскуривал велосипед" с программированием ПИД регулятора (когда для выше озвученных контроллеров есть нормальные библиотеки). Причем он получился такой, что стыдно показать другим, благо кое-как работает. Ну и ладно - "с лица кода воду не пить"
Мне кажется, этот первый опыт только больше травмирует новичков. Ну почему - кажется. Так и есть. Попробуйте после скетчей и библиотек слезть вниз тупо порулить регистрами (внешние последовательные защелки). Вручную. О, да, они скажут - да давно библиотеки придуманы. Это полуправда и обман. Светодиодиком мигать, экран подключить - все легко и просто. Шаг влево шаг вправо - и вот мы имеем модульных болванчиков, которые меняют только блоки, а в логику низкоуровневой работы - лезть в реактор? Да ну вас нафиг, мы музыканты! (.jpeg мем)
Мне кажется, этот первый опыт только больше травмирует новичков
Возможно, Вы правы. Но, все же возможность "пощелкать" регистрами остается прямо в скетче. Никто ж не запрещает смешивать, как библиотечные функции, так и код на регистрах. А если новичок имеет желание потрогать "железо", так это самое то - почитал в интернете, как это сделать (с тем же светодиодом) и вперед. А если ума хватит слезть с Ардуиновской "IDE" и посмотреть как это же выглядит в нормальной IDE (главное, чтоб можно было переходить в файлы библиотеки) и подсмотреть там как организованы функции и как они используют регистры, то вполне допускаю плавный переход от "щенячьей радости" от мигания светодиодиком в Ардуино к бессонным "танцам с бубном" на настоящем "bare metal"
На мой взгляд, ничего особо страшного. Если новичок имеет желание лезть вглубь - у него есть инструмент (дуйня же не обязывает использовать только библиотеки. тем более, в некоторые библиотеки можно "подглядывать, как оно устроено"...). Ну многие же перелазили с ЯВУ на ассемблеры, или выбирали между контроллером и логикой...
Может.
Есть Pico малинка, она и дешевле и мощнее Arduino, ещё и двухядерная.
Ну так кто мешает вам её брать и использовать? Мощнее ардуино сейчас почти все микроконтроллеры! А в итоге, в 90% проектов применяется максимально простое решение с кодом на С++, с минимальным объёмом памяти и оптимизации. И нет необходимости в этих малинах, esp32 и прочих мастодонтах. Вы сами то понимаете, как использовать её двухядерность? Понимаете как она работает, эта малинка? Чем её программировать, что и как к ней подключать? Если это просто "умный" комментарий, то лучше оставьте его при себе.
Так я и использую, можно хоть на C++, хоть на Rust прошивки писать, или даже на Micro Python, заливать прошивки ещё проще, загрузчик открывает диск в операционке, куда просто копируешь uf2 файл, для обновления прошивки не нужны дополнительные программы. Программировать можно даже в той же Arduino IDE, и через неё заливать прошивки точно так же, как и в Arduino.
Двухядерность полезная вещь, можно в Pico W одно ядро занять сетевыми подключениями, а второе будет управлять PIO, или вот как в Мурмуляторе одно занимается эмуляцией разных платформ, а второе выводит изображение на монитор.
На Aliexpress посмотрите сколько уже готовых плат продают с rp2040 или rp2350, уже с тачэкранами, или с различными сетевыми интерфейсами, с зарядкой аккумулятора, есть даже в формате классической Arduino платы.
Кстати, есть Arduino UNO R4 WiFi. Для WiFi на плате установлен модуль ESP32-S3. При этом применяется куда более производительный (по сравнению с классической UNO) 32-бит МК Renesas RA4M1, который по прежнему имеет питание 5В, что бывает важно в Ардуино проектах.
А в чем смысл говорить о том, что Esp лучше? В чем лучше? Это просто 2 разных микроконтроллера. Они могут работать независимо и понятие лучше здесь не применимо. Если мне просто нужно разрулить с десяток сигналов на простой логике, без Wi-Fi, без bluetooth без геммороя, то я возьму ардуино. Если мне нужно устройство, беспроводное, то я возьму Esp32. Ардуино не устарела, потому как состоит из одного микроконтроллера, а это самая простая архитектура! До сих пор на Atmega 8-32 делают готовые устройства и они выпускаются по сей день. А если вы мыслите потребительски (пошёл готовое взял и всё) то что вы делаете в этой теме? Зачем ваши комментарии в теме про ардуино?
Вы про атмегу ардуинщиков спросите. Половину из них сделают круглые глаза - какая атмега? это ардуино! Четверть из них скажет - ну конечно, атмега, зато библиотеки стандартные. Одна восьмая ответит, что им знаком контроллер с детства и он им очень нравится. А остальные скажут - да это просто атмега на шилде, сношу ардуинский загрузчик и пишу напрямую из CVAVR. Про ассемблер главное не спрашивать. Могут побить.
AVR микроконтроллеры, и особенно АТмега в последние лет 10 довольно дорогая в абсолютных цифрах. И архидорогая относительно своей производительности. Так что ставить ее м проект можно только по привычке. Возможно многие любят AVR потому что с них начинали и к ним привыкли. Мой первый проект был на AT90S2313 и я тогда еще учился в школе.
Есть такое дело, и дорожать они начали не вчера а в 12 году еще. Но тем не менее удобная и предсказуемая архитектура это очень круто для проектов, которые нужно вот просто сделать а не RnD проводить. При всех ваших описанных недостатках. Но по АВР документации куда больше чем по стм32, есп или стм8 господи прости. Не к ночи будут помянуты Padauk, о демон из ада! Всякие 430 - тоже в пролете.
Нет ну вебсервер или контроллер робота на есп - милое дело.На атмеге такое - это попытка написать аналог винды под 286. Но есп закрытая штука, и регистрами напрямую не порулить. Вот когда это надо - причем в реалтайме - атмеги и тини вполне себе заходят. А сколько оно там стоит - это дело десятое. Что для DIY 2-5 МК, что для промышленника где МК это 0.000001 цены продукта. Это в электронные вейпы их сувать дорого...
Я не могу отзыватья плохо об AVR, он мне привычен. Можно по разному понимать что значит "документации много", но по AVR она привычна. И у нее достоинство - на каждый чип свой док, а не куча доков по кусочкам платформы. Но так или иначе, нужно отдавать себе отчет, что это старый контроллер. Есть контроллеры быстрее, дешевле, 32-разрядные из коробки, и с более совершенной переферией. Иногда стоит освоить новое семейство чтобы расширить горизонты а не держаться за старое.
А сколько оно там стоит - это дело десятое. Что для DIY 2-5 МК, что для промышленника где МК это 0.000001 цены продукта.
Тут непростой вопрос. Если нужно просто написать очень простой код под очень простое устройство, и это несерийная штука типа DIY, то AVR может подойти потому что он привычен, пусть он и дороже китайца. А в промышленности весь вопрос в том, что делаем. Если все устройство в сборе стоит менее $100, то цена контроллера имеет значенние.
Все просто - до нее по-сути не было ничего доступного.
Да, были какие-то разножопые платки с процами, но без какой-либо софтовой поддержки вообще. Вникать долго, кодить сложно, все разное и неповторимое. Я "вырос" именно в те смутные времена и видимо по этому ардуинка мне не зашла. Когда она взлетела я уже начал забывать про 8-битники и во всю ARM штудировал.
Все просто - до нее по-сути не было ничего доступного.
Вы тут привираете. Для того чтобы завести голый ATMega/ATTiny нужна была только монтажная плата и параллельный порт (программатор 5 проводков). И с 1998 по 2008 этого хватало с головой. Это время можно сравнить с золотым десятилетием дизайна сотовых телефонов, где каждый мог выставить свое видение макетной платы и найти десятки если не сотни сторонников. Ардуина же победила другим. Они сделали программно-аппаратную платформу, где одна плата идеально подходила к другой, а код написанный для одного чипа - работал на другом без исправлений. Это сделало arduino идеальной платформой для "домохозяек", подключаешь usb шнур и все, ты сеньор помидор. Это оставило многих неудел, потому что для того чтобы "проветривать теплицу" тебе больше не надо нанимать шишколобого парня, просто купи нужное количество плат и загрузи туда скретч который кто-то до тебя уже написал.
А вы с чего начинали?
Начинал со сборки Микро-80 на восьмибитном проце в институте. Но не успели доделать .
Потом сам собрал Радио86РК, Орион, потом кучу синклеров и АОН на Z80. Делал ПО для тестирования логических схем.
А когда увидел PIC контроллеры - то сразу влюбился в них . Писал, да и сейчас пишу на ASM для восьмибитных. Для PIC32 пишу на Си. Есть статьи на хабре. В основном это устройства с ЛАН интерфейсом , сопряжение и конвертеры протоколов.
А когда появилось Ардуино - то не было никакого интереса с ней возиться, потому что на PIC уже было столько наработок как кода так и схемотехнических решений, да и коробки PIC контроллеров разных мастей. От Ардуино использую иногда только интерфейсные платы, процессорную плату не использовал никогда.
А когда увидел PIC контроллеры - то сразу влюбился в них
Переключаемые банки памяти - кошмарные воспоминания.
Ничуть не сложнее чем писать для тоже синклера на Z80 с расширенной памятью , хотя бы до 128к на низком уровне.
Потом редактор ASM всегда подсказывает, а не забыл ли переключить страницу. Макросы в помощь - и никаких особых проблем. До 2000х особо конкурентов PICам не было ни по документации , ни качеству сопроводительной информации , ни по функционалу самих контроллеров. Поэтому было легко работать.
Если есть бекграунд, то конечно это всё такое себе. А вот новичку ардуинка самая то. Сделал себе многое по УД на ардуинах, совершенно не имея опыта с "железяками". Свет, отопление (теплый пол), много всякой мелочёвки. Лет 10 уже работает. Сейсас бы уже не парился и собрал бы многое на зигби или чём то ещё более "промышленном". А вот 10 лет назад ардуинки для новичков были вне конкуренции и по цене и по возможностям колхозить.
Выходит, пока все спорят, Arduino тихо учит нас тому, что потом называют "настоящей embedded-разработкой".
НЕ учит. Чтобы понять это посмотрите форумы ардуино и станет понятно - учат или нет.
Не забывайте про недавнюю смену владельца Ардуино. Сложно сказать, к чему это приведёт в дальнейшем. Но для начала они видимо присоединились к санкциям, и сайт Arduino.cc для нас теперь доступен только через три буквы. Вот такая невесёлая популяризация.
По данным официального сайта Arduino, с момента запуска платформы было продано более 50 миллионов плат и клонов. А сообщество насчитывает десятки миллионов активных пользователей по всему миру.
Что-то очень мало.
Микроконтроллеров делают разных по 35 миллиардов в год.
Я бы задумался об обратном как раз. Почему Arduino занимает так мало места в embedded.
Почему так и не вышла за рамки DIY. Почему такая слабая инфраструктура отладки.
Почему embedded до сих пор такая сложная область разработки.
А видел любителей аrduino, которые при огромном желании так и не поднялись до разработки промышленных решений.
А не являетя ли Arduino ловушкой? Обещанием быстрого успеха. Как курсы по IT. Они же эти обещания так легко продаются. А потом фрустрация и выгорание.
Думаю это потому что во взрослом embedded уже никто не заинтересован, чтобы у вас быстро включалась лампочка и закрутился моторчик. Чем больше потратите сил на освоение, тем больше заработают на вас. И в консолидации технологий ни у кого нет интереса.
Может ИИ порвет эту порочную схему.
"А видел любителей аrduino, которые при огромном желании так и не поднялись до разработки промышленных решений."
Переход от Arduino к промышленным решениям обычно идет через разработку своего железа, а это непросто.
Ну и Arduino всегда позиционировалась, как средство прототипирования, а не средство заработка.
А на чем базируется ардуино? Это просто МК Atmega 328 (ну или подобное мощнее или с большим количеством пинов ввода/вывода). На самом деле, разработка своих решений это не сложно, просто не каждый кто работает только с ардуино может выйти за рамки плат прототипирования. А если это электронщик, грамотный, то он понимает, как это устроено и для него нет границ для разработки своего железа, хоть для дома, хоть для предприятия. Несомненно, для предприятия просто не примут контроллер на Atmega, но это не значит что он там не сможет работать.
а не средство заработка.
Для кого как. Для некоторых это неплохой заработок на студентах. Ведь сам студент ТС пишет
Когда мы получили задание в вузе написать драйвер датчика по I2C, случилась интересная вещь: из 25 человек в группе только 3 справились за отведенное время.
Плохо ли, хорошо ли Ардуино, но большинство 3д принтеров работают на ардуине. И нормально работают. Универсальная прошивка Marlin написана на нём.
С дижитал райтами? Думаю, от ардуинки там только железо. А код написан на православном Си.
Марлин до сих пор жив? Думал уже лет 10 все принтеры делают на Klipper.
Большинство 3D принтеров уже давно работают на STM32. В декабре 2018 года Marlin научился обновлять прошивку STM32 микроконтроллеров с SD карточки (компилировать прошивку со смещением от начала флеша и опциональным шифрованием), после чего китайцы начали массовый выпуск плат на STM32, т.к. они быстрее и дешевле AVR.
AVR Mega2560 в Marlin всё еще поддерживается, но ограниченно. Чаcть функционала на AVR недоступна из-за нехватки ресурсов микроконтроллера.
Raspberry Pi Pico (или W): да, конечно. я подтверждаю👍👍👍.
По данным официального сайта Arduino, с момента запуска платформы было продано более 50 миллионов плат и клонов. А сообщество насчитывает десятки миллионов активных пользователей по всему миру.
А вы студентов спросите зачем они покупают Ардуино наборы.
Ответ вас может сильно удивить
Ардуино собрала бинго: отличные читаемые даташиты, простая среда разработки, 5В логические уровни, полная неразборчивость по питанию, мощные транзисторы на ногах, ... - тысячи их! Это был совершенно новый уровень радиоконструкторов, порог входа упал почти в ноль... А так-то до нее был тот же Ti Launchpad за три бакса с доставкой, и вроде среда разработки была хорошая, и чип очень интересный - но нет, это была именно "взрослая" девборда, пусть и крохотная, а не конструктор.
Надо сравнивать не с Raspberry Pi, а с Raspberry Pi Pico, и здесь уже сравнение не в пользу Arduino. Раньше использовал Pro Micro для своих USB клавиатур, сейчас перехожу на Pico, под который есть Micro Python, можно прошивки на Rust писать, есть даже проект Мурмулятор, использующий оба ядра микроконтроллера. Время Ардуино похоже прошло.
Так вы на целевые проекты смотрите а говорите в целом про архитектуру. И программный код на Pyton (который кстати в тысячу раз медленнее работает на МК) и Rust. А в чем тогда смысл? Низкоуровневые МК нужно уметь программировать правильно, оптимизированным и корректный кодом, а не python-ом. Вы берете более мощный мк, менее производительный язык программирования, дополнительные настройки и делаете проект, который по производительности не быстрее чем на Arduino... Как мне это знакомо! Это софтверный подход, а не подход электроника и автоматика. Я на паре десятков ардуино смогу сделать автоматизацию предприятия, которая будет работать и очень корректно. А вот вам будет сложно на pico малине осуществить тоже самое. Это разные мк под разные задачи. И ещё, имейте ввиду, что Arduino это не только Atmega 328. В линейке ещё очень много мощных мк. И если вы не понимаете суть их и просто сравниваете их по скорости, производительности и мощности, без других факторов, то вам стоит разобраться с их назначением и только потом вещать свое мнение.
Я уже применяю Pico для автоматизации, код на C++ пока что, сейчас переходим на Rust. Если портов не хватает, расширяем такими же платами, с передачей данных по i2c, а через RS485 можно устанавливать контроллеры хоть где, и в большом количестве, и всё это копеечное, на Ардуино даже не стал бы такое делать, хотя тоже можно, конечно. На том же Rust не напишите под 8-битные контроллеры прошивку, а значит разработка будет дольше, будете потом все ошибки ловить во время работы программы в микроконтроллере, а не на этапе компиляции.
Делали бы еще Raspberry Pi Pico не только платами, но и мини-модулями (как ESP32) для легкой пайки на свои платы-самоделки.
RP2040-Zero, RP2040-Tiny, XIAO-RP2040 очень и очень компактные
Посмотрите, что на Aliexpress продают уже готовое с rp2040 и rp2350, чего только нет, в том числе и готовые устройства с тачэкранами разного размера, сетевыми интерфейсами, видеовыходом.
А что у вас за клавиатуры? Кастомы для себя или на продажу? Вы про них где нибудь писали?
Для себя делаю, сейчас работаю на 32-кнопочной полуаккордовой клавиатуре, скоро буду переходить на 20-кнопочную с лёгкими двуручными аккордами (http://ibnteo.klava.org/parakeys/), на которой можно любое клавиатурное сочетание одной рукой набирать, там ещё кое-что доработал, ещё не опубликовал, в процессе, будет самая компактная клавиатура (не считая чисто аккордовых, где большая нагрузка на пальцы), при этом очень удобная для ввода не только текста, но и программного кода, работа в любом текстовом редакторе, управление мышью, окнами.
Avr studio уже вроде был почти нормальным в то время.
еще был вполне удобный CVAVR (платный, но когда это мешало)
Несмотря на все плюсы, у ардуины две основные беды:
- IDE - даже сейчас это лишние буквы в названии Arduino IDE
- отладка. Сейчас вроде что-то уже появилось, но ардуино-подход к разработке - это не про нормальную отладку.
И как обычно в комментах "специалисты", для большинства которых arduino === arduino uno r3. То что официальных плат чуть больше чем много - мало кто интересуется.
А так-то мало кто помнит, что первые ардуины вообще на мега8 были )
А по факту, для большинства новичков слово ардуино - это вообще про любую девборду на популярном МК и поддерживаемым одноименным фреймворком.
Arduino - хорошо для прототипирования, для обучения, проверять концепт устройства. Но когда потом кодишь под голый чип, начинаешь оптимизировать и уменьшать объём прошивки.
Да не для чего он не хорош кроме самых примитивных функций.
Включить-выключить что-то по времени и вывести в порт - все!
Ну может быть еще измерить и только после этого включить-выключить.
Достаточно посмотреть на API Arduino
Какие принтеры? Какие умные дома?
Там в помине нет таких функций. Там даже крутить BLDC моторчик нет функций. Уже не говорю про чтобы крутить по траектории.
Другое дело что это API Arduino может лежать поверх mbed
А вот там уже все серьезней.
Но зачем нужен API Arduino если освоен mbed понять трудно.
С другой стороны SDK под IDE Arduino с базовым Arduino API теперь Claude Sonnet или Opus может слепить за день для любой платы.
Но опять вопрос. Если есть Claude Sonnet, то зачем ограничивать себя Arduino API?
Сам можеш разработать себе API по вкусу.
А ардуино - это не только IDE. Это унифицированное железо, очень разнообразное, и при этом не требующее отдельных программаторов. При желании atmega328p тянет вполне серьёзные задачи управления.
Нет у Arduino никакой спецификации железа. Есть спецификация на SDK, которое совмстимо с IDE или CLI. А дальше хоть на улитках делайте.
Хотя да забыл , есть некая спецификация посадочного места модулей Arduino. Но это не то.
Ардуино - это отлично для входа в тему, но сильно не хватает большими буквами везде написанного объяснения, что не надо лифты делать с управлением на макетках (в смысле, без нормальной защиты и т.п.).
Как ни странно, но именно для подъемников и простейших лифтов Arduino вполне годится.
Там как раз времени на реакцию есть с запасом. Реакция самая примитивная - включить/выключить.
А безопасность в лифтах заключается лишь в том чтобы остановиться при любой проблеме и стоять. Умрете ли вы там от голода ожидая техников или получите инфаркт пока откроются двери в наставлении по безопасности не прописано. Поэтому безопасность там делается элементарно на обходе последовательной цепью всех концевиков и заходом на контакторы расцепления питания тормозов и мотора. Все! И Arduino никакого отношения к этому не имеет. Максимум лампочку может зажечь красную.
Лифт - очень опасная вещь, в которой много может пойти не так. Начинающие собирают всякие схемы, которые похожи на настоящие, что даёт опасное чувство всесилия.
Только зачастую некому им объяснить, как должны выглядеть цепи безопасности. В частности, как должна быть разработана схема, чтобы никого не раздавило при пропадании контакта, питания и тому подобного. Как должно быть защищено от пыли, влаги, вибрации...
Да все просто. Любое обучение лучше всего идет от простого к сложному. Ардуино позволяет довольно просто и легко начать, не нужно ломать голову с даташитами, паять чипы, обвеску, отлаживать все это, каким-то сложным способом прошивать.. А уже начав с простого, можно двигаться дальше и осваивать сложные вещи, имея за спиной уже какую-то базу.
Начинал с голых МК, а до этого паял схемы без МК, и писал на асме под x86, поэтому запустить AT90S2313 для меня не было проблемой. Но для проекта под мк было 3 составляющих: спаять плату, написать прошивку, прошить и отладить МК. Arduino с его загрузчиком по uart и "IDE" которая заметает особенности сборки под ковер конечно упрощает прошивку. Я с Arduino познакомился когда увлекался квадрокоптерами. Платы управления и OSD шли с Arduino заргузчиком и прошивки для них собирались в Arduino IDE. Правда, достуб к железу использовался прямой через регистры и стандартную библиотеку AVR, а не через ардуиновские медленные API. Прошивать плату через uart было удобно, и на мой взгляд в этом основное достоинство ардуины. Взял плату, скачал чужой проект, прошил, и дальше его меняешь, если надо.
Что касается родных API, особенно digitalWrite(), то они очень медленные. Но для многих задач и такой скорости хватает.
Arduino сделала порог входа в микроэлектронику довольно низким. Покупаешь kit за 30$ и уже можешь делать всякие метеостанции, управлять моторчиками и и.д. Именно так я и попал в этот удивительный мир микроконтроллеров и освоил это все с нуля. Atmega32 (uno) изучил наверное полностью, пересел на atmel studio. Затем мне этого МК стало мало, изучил esp32. Этот МК уже покрывает куда большее кол-во кейсов. По умолчанию там freertos если использовать arduino framework, но никто не мешает присадить туда официальный esp-idf. Ну и потом уже освоил stm32, куда уж без классики ) Конечно после старта с arduino эта деятельность для меня перестала быть дешёвой: покупка осциллографа, лабораторного БП, паяльников разных, паст и припоев и т.д. Но, ловушка была захлопнула. Если бы не этот МК, я бы с большей вероятностью не стартанул. Теперь это моя работа.


Феномен Arduino: почему эта плата завоевала молодежь, а не стала скучным учебником