Почему ардуино лучше других

Почему многие не любят Arduino

Не задумывались ли вы, почему специалисты/профессионалы в области микроконтроллеров и автоматизации относятся к тем, кто работает с Arduino примерно так, как будто они занимаются чем-то не серьёзным, вроде игры в песочнице?


Примерно так же к ардуино относится и мой кот Вася.

Собственно для этого я и сделал видео, где наглядно, при помощи осциллографа, покажу и расскажу, с моей точки зрения, почему так. Постараюсь высветлить явные плюсы и минусы темы Arduino:

Для начала следует сказать, что Arduino это не так уж плохо как может показаться. Именно благодаря ардуино появилось на свет множество самых разных проектов, которые бы так и не воплотились в жизнь, из-за очень большого количества информации, которую нужно «переварить» чтобы их реализовать. Ни для кого не секрет, что на ардуино делать какие-то устройства значительно проще, да и к тому же быстрее. Именно из-за этого я и начал увлекаться темой микроконтроллеров. И постепенно я начал перерастать всякие digitalWrite(13, HIGH); и переходить на PORTB = 32;, так как желание повышения производительности моих девайсов возрастало.

Вот так выглядит код обычной «мигалки» на привычном для «ардуинщика» языке:

Я думаю многим знаком этот пример, потому что это классическое упражнение «здравствуй мир», которое призвано максимально снизить порог вхождения в тему программирования микроконтроллеров Arduino.

Давайте посмотрим как бы это выглядело если мы пошли путём не наименьшего сопротивления используя регистры микроконтроллера:

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

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

Но давайте вернёмся к нашим баранам среде разработки Arduino IDE.
Обратите внимание на использование памяти в двух примерах, чтобы вам не метаться по страничке вверх вниз, вот два кода на одном скрине:

Первое что бросается в глаза — размер кода, если писать на обычном языке Arduino IDE то он выглядит немного компактнее. А если бы я взял какой-то более сложный код, например ReadAnalogVoltage который считывает напряжение на нулевом аналоговом порте пине, преобразует его в вольты и выводит в сериал, если всё это прописать используя регистры микроконтроллера, то получится в несколько раз больше кода. Но в данном случае больше не всегда значит хуже, я бы даже сказал наоборот. Почему так? Об этом я расскажу ниже.

Так же обратите внимание на то, сколько памяти потребляют оба примера, код на языке ардуино «съедает» значительно больше памяти и давайте сейчас разберёмся почему так.

В папке среды разработки по пути \hardware\arduino\avr\cores\arduino лежит ядро Arduino, там есть файл wiring_digital.c, где собственно и прописана наша «прожорливая» функция digitalWrite, мы встретим там следующие строчки:

Вы только посмотрите, сколько работы она делает вместо того чтобы просто задать состояние порта(как например вот так PORTB = 32;). А сделано это неспроста, так как у ардуино низкий порог вхождения, как я высказался выше, тут присутствуют разные проверки аля «защита от дурака». Например, если новичок по глупости забыл задать порт пин как выход, чтобы тот не перешёл в состояние Hi-Z(о котором ещё новичок не подозревает, скорее всего) и таким образом отпугнул его при первой же ошибке. Но за это приходиться платить повышенным потреблением ресурсов, как вы сами видите.

А теперь давайте перейдём к осциллографу, как я и обещал в начале статьи.

У меня есть две идентичные китайские Arduino Pro Mini которые размещены на одной и той же макетной плате, то есть у них будут одинаковые условия. Давайте прошьём одну из них «мигалку» только без задержек и посмотрим что будет на экране осциллографа:

Один пример написан на языке ардуино, а второй работает непосредственно с регистрами:

Синий луч осциллографа(КАН2) — это обычный ардуиновский код, как можно видеть, частота переключений из логической единицы в логический ноль у жёлтого луча(КАН1) больше:

2.67 против 0.094 МГц, разумеется что емкость порта микроконтроллера не даёт получить чистый меандр как в случае кода ардуино, но если присмотреться, то и там фронты далеко не чистые:

Получается проигрыш производительности в данном случае — 28 раз. Разумеется что это не значит, что ардуино работает в 28 раз медленнее, но я считаю, что для наглядности, это лучший пример того, за что не любят ардуино.

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

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

Должен признаться я и сам «ардуиншик», и работаю по большей с Arduino платами, например копия Pro Mini у китайцев стоит не так уж дорого, разумеется что дешевле «голого» микроконтроллера, но как я уже сказал выше, не всегда находиться время и желание заниматься разводкой платы с нуля, лично мне проще интегрировать в проект Arduino плату, особенно недорогие Arduino Pro Mini или немного более продвинутую Arduino Nano.

Так же, я люблю работать из средой разработки Arduino IDE, не взирая на её ограничения и неудобства, она может запуститься сразу, без каких либо настроек, просто скачал ZIP архив, распаковал куда нужно и всё, можно приступать к работе, да и к тому же занимает не особо много места если сравнивать с более профессиональным софтом, например Atmel Studio. И ещё, тут есть одна полезная фишка — автоформатирование(комбинация клавиш Ctrl+T):

Разумеется есть такое понятие как «правило хорошего тона», и себя нужно приучивать к этому с самого начала, но если есть такая фитча то почему бы её не пользоваться?

Ещё из удобств в Arduino IDE появилась возможность в настройках включать нумерацию строк и сворачивание кода:

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

К тому же Arduino IDE, как вы заметили, умеет «переваривать» не только свой язык но и Си и даже ассемблер.

Источник

5 причин, почему все должны изучать Arduino!

Вы слышали о плате микроконтроллера Arduino… может быть, нет. Но если да, возможно, вы не знаете, для чего он нужен.

Как и Raspberry Pi, Arduino может помочь вам разобраться в программировании, но это устройство больше ориентировано на электронику. Его легко использовать и легко изучить. Хотите знать, полезно ли изучение Arduino? Вот пять причин, по которым вы должны начать изучать Arduino уже сегодня.

Сложно ли научиться Arduino?

Программирование, электроника, создание крутых вещей с кодом и компонентами; это в основном то, что вы можете ожидать от использования Arduino.

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

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

  • Подключить кабели?
  • Подключить компоненты?
  • Использовать клавиатуру?

Если ответ на все три вопроса — «да», значит, вы сможете изучить Arduino. Это все практики, которых может достичь большинство людей — и большинство людей должно уметь изучать Arduino.

Если у вас еще нет Arduino, стоит взять Стартовый комплект Arduino UNO.

Зачем изучать Ардуино?

Итак, вы знаете, что Arduino проста в использовании. Но зачем вам тратить время на изучение этой платы микроконтроллера? Что ж, это невероятно гибко. С Arduino вы можете делать все, от управления роботом до управления проектом домашней автоматизации — и многое другое.

Ключевые преимущества изучения Arduino:

  • Вы можете создавать потрясающие проекты
  • Arduino отлично подходит для программирования
  • Вы легко научитесь электронике
  • Это дешевое хобби для начала
  • Arduino может подойти вам лучше, чем Raspberry Pi

Давайте подробнее рассмотрим, почему мы все должны использовать Arduino.

1. Arduino — основа для потрясающих проектов

Основная причина приобрести Arduino заключается в том, что с ее помощью можно делать разные вещи. Если вы считаете себя мастером-мастером, то будете чувствовать себя как дома.

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

Arduino можно использовать для следующих проектных идей:

  • Управление освещением Philips Hue
  • Сборка роботов (см. Видео выше)
  • Проекты домашней автоматизации (освещение, гаражные ворота, даже поливочные установки)
  • Управление видеоиграми
  • Музыкальные проекты (включая соединение органических элементов)
  • Системы сигнализации

Это лишь малая часть того, что вы можете сделать с Arduino.

Только начинаете с Arduino? Начните с одного из этих простых проектов Arduino для начинающих.

Но что, если вы не любите делать вещи? Не волнуйтесь, есть еще много причин изучить Arduino.

2. Arduino: отличное введение в программирование

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

Хорошая новость в том, что код Arduino прощает ошибок. По-прежнему есть кривая обучения, но это определенно проще, чем пытаться написать код для своего первого мобильного приложения или игры.

Программирование на Arduino возможно на любом языке, но лучше всего начать с Arduino IDE (интегрированной среды разработки). Вы найдете его версии для Windows, macOS, Linux и других платформ. IDE поддерживает C и C ++ и включает библиотеки для различных аппаратных компонентов, таких как светодиоды и переключатели. Когда программа, известная как «эскиз», завершена, она загружается на плату Arduino через USB-кабель. Здесь его можно запустить и он останется в памяти до замены.

Конечно, программирование для Arduino не идеально. Во-первых, снисходительный характер кода Arduino означает, что легко писать небрежный код и развивать вредные привычки. Вы легко можете не понять, что на самом деле означает этот код.

Программирование Arduino также является относительно простым, поэтому вы, вероятно, не изучите с его помощью сложные методы кодирования.

Но если вы ищете способ постичь абсолютные основы программирования, Arduino отлично подойдет.

Если идея кодирования вас пугает, вы можете изучить и другие языки, совместимые с Arduino, помимо официального. Например, Scratch 4 Arduino — это визуальная альтернатива, более понятная для новичков. Вы изучите концепции кодирования, не беспокоясь о синтаксисе.

Немного поигравшись с кодом Arduino, вы можете понять, что он вам действительно нравится.

3. С Arduino легко изучить электронику

Когда я впервые получил свой Arduino, у меня не было практических знаний в области электроники или схем. Я забыл все, чему научился в школе, и чувствовал себя не в своей тарелке, играя с крошечным микроконтроллером.

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

Мы бы рекомендовали начать с YouTube, где вы можете найти сотни видеороликов, связанных с Arduino.

Играя с Arduino, вы приобретете новые навыки работы с электроникой в ​​зависимости от того, над какими проектами вы работаете. Если вы никогда раньше не работали с проводами, макетными платами или паяльными пистолетами, то это безопасный и интересный способ обучения.

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

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

4. Arduino — дешевое и полезное хобби.

Один из самых больших аргументов в пользу Arduino — это то, насколько легко начать работу. Некоторые хобби для начала стоит сотни долларов. Подумайте о живописи, деревообработке или фотографии, где вы можете легко обойтись без денег, просто чтобы купить необходимое оборудование и материалы для начала.

И наоборот, хороший стартовый комплект Arduino будет стоить менее 100 долларов.

Становится лучше. Если вы готовы покупать компоненты в Китае и ждать доставки несколько недель, вы можете получить их менее чем за 10 долларов.

Даже вашу плату Arduino можно купить дешево, если вы купите клон. Поскольку аппаратная часть Arduino имеет открытый исходный код, вы можете получить легальную «подделку» Arduino по цене менее 3 долларов каждая.

По таким низким ценам вы можете реализовать столько проектов, сколько захотите, не беспокоясь о том, что вы обанкротитесь.

5. Присоединяйтесь к команде Arduino против Raspberry Pi

Поскольку Arduino и Raspberry Pi появились примерно в одно время, люди могут подумать, что это одно и то же. По правде говоря, хоть и есть кроссовер, но эти две платы разные.

Arduino — это плата микроконтроллера, а Raspberry Pi — одноплатный компьютер. Arduino должен быть запрограммирован с другого устройства, тогда как Raspberry Pi может запускать операционную систему. Вы можете запрограммировать Arduino с Raspberry Pi, но не наоборот.

Эти различия привели к некоторому разделению сообществ. Что лучше: Arduino или Raspberry Pi?

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

Как начать работу с Arduino

К настоящему времени вы должны понять, почему изучение Arduino — хорошая идея. От простого языка программирования и простой интеграции с другими компонентами до доступного хобби, более универсального, чем использование Raspberry Pi, — преимущества обучения использованию Arduino очевидны.

Если вы готовы, сейчас самое время прочитать наше руководство для начинающих по Arduino.

Начало работы с Arduino: руководство для начинающих

Arduino — это платформа для создания прототипов электроники с открытым исходным кодом, основанная на гибком, простом в использовании аппаратном и программном обеспечении. Он предназначен для художников, дизайнеров, любителей и всех, кто интересуется созданием интерактивных объектов или сред.

Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)

Источник

Adblock
detector