на каком языке программируют ардуино

На распутье — Ардуино, Cи или Ассемблер?

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

Приступая к задаче, для меня было очевидно одно – вряд ли программы промышленных автономных устройств составлены на платформе Arduino IDE. Где все спрятано в громоздкие тяжеловесные библиотеки, а простые коды (скетчи) занимают в редакторе несколько десятков строк, делая работу в этой среде комфортной и не требующей особых усилий. Уточню сразу – дальше речь о выборе языка программирования между Ардуино, Си или Ассемблером. «Язык Ардуино»- это сленг для краткости. Нет такого языка программирования. Если увидите тут и дальше «язык Ардуино», то — это «Arduino IDE — интегрированная среда разработки для Windows, MacOS и Linux, разработанная на Си и C ++»(Википедия).

В начале пути меня оптимистично настроила статья Почему многие не любят Arduino. Ниже, для наглядности, картинка оттуда с кодом «мигалки».

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

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

На изображении ниже — компиляция кода «мигалки» на Ассемблере. Как видно, былая компактность испарилась – количество строк в 3 раза больше, чем в Ардуино.

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Итак, с 2 картинок выше видно – размер памяти, занимаемой в контроллере кодом «мигалки» одним светодиодом, написанным в платформе Ардуино, составляет 1030 байт, на Си – 176 байт, на Ассемблере – 42 байта.

Теперь взглянем на более сложный код. Поскольку в своих проектах использую модуль давления-температуры BMP280, составил код барометра-термометра на Си, чтобы заодно была какая-то польза.

В проект входят следующие компоненты: контроллер ATMEGA328P, модуль давления-температуры BMP180 и дисплей Nokia 3110. ATMEGA328P принимает инфу с датчика BMP180 и после преобразований отображает ее на дисплее Nokia 3110, затем спит. Сон задается сторожевым таймером Watchdog. Проект собирается в Atmel Studio 7 и эмулируется в Proteus 8 Pro. Этот проект Atmel Studio был создан для отладки кода в Proteus’e. В библиотеке Proteus 8 Pro модуля BMP280 нет, поэтому пришлось составить код с включением BMP180. Светодиод в коде — для наглядности, чтобы придать динамику статичной картинке.

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Ниже — электрическая схема устройства. При монтаже схемы обращайте внимание на функциональное назначение выводов контроллера и модулей. Подключение кварца — XTAL1, XTAL2 (ATMEGA328P). Уточню, схему барометра-термометра на BMP180 я «в железе» не собирал, поэтому тут могут проявиться проблемы, которые не видны при эмуляции в Proteus’e.

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Для скачивания zip-файла проекта в Atmel Studio 7 перейдите по ссылке – тут все виртуальные проекты и коды программ из этой публикации.

Файлы прошивок *.hex находятся в папках Debug соответствующего проекта Atmel Studio 7. В архиве есть проект барометра-термометра на BMP280. Его электрическая схема такая же, как и у барометра-термометра на BMP180. Проект успешно собирается в Atmel Studio 7 и работает «в железе». Для работы «в железе» пришлось внести изменения в строке #define BMP280_ADDR 0x77 файла библиотеки bmp280.c, а именно: заменить начальный адрес 0x77 на 0x76. Не забудьте сделать эту корректировку, если будете использовать в своих проектах код барометра-термометра на BMP280, с подключенной библиотекой bmp280.c.

Ниже — код этого же барометра-термометра в платформе Arduino IDE. Естественно, с другими библиотеками.

Ресурсы, потребляемые программой барометра-термометра на Си и в Arduino IDE наглядно показаны на картинке:

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Как видно, эти примеры потребляют 5954 байт (С) и 12956 байт (Arduino IDE) в Flash. Соотношение изменилось с 6-ти раз для «мигалки» до 2-х с небольшим. К сожалению, линейной зависимости нет – чем объемней код, тем меньше соотношение размеров памяти Ардуино к Си. В идеале на этой картинке должен присутствовать 3 столбец с кодом на Ассемблере, но такого кода в Интернете я не нашел, а составить код самому мне пока не под силу.

Попутно замечу, что использование компилируемых в Arduino IDE библиотек и функций на С/С++ особо имеет смысл в тех случаях, когда размер занимаемой памяти превышает или близок к размеру памяти контроллера. Мне, например, часто удается уходить от предупреждения: Недостаточно памяти, программа может работать нестабильно.

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Теперь посмотрим еще один вариант – это цифровой термометр-гигрометр на AM2302 (DHT22), ATtiny13 и MAX7219, код которого составлен на Ассемблере.

Автор статьи задался целью разработать простой термометр-гигрометр выполненном на одном из самых «маленьких» микроконтроллеров — ATtiny13 с весьма скромными характеристиками – 1Кб программной памяти, 64 байтами ОЗУ и 5 интерфейсными выводами. Он решил эту непростую задачку, выбрав Ассемблер, заодно вспомнив те далекие времена, когда код можно было составлять на низкоуровневых языках, используя машины типа ZX-Spectrum.

Ниже скриншот со сборкой данного кода в Atmel Studio 7.

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Код устройства на Ассемблере занимает 738 байт памяти в контроллере. Безусловно, программа барометра-термометра, о котором шла речь выше, будь ее код составлен на Ассемблере, заняла бы больше места. По нескольким причинам — в схеме реализовано управление дисплеем Nokia3110 по интерфейсу SPI (это 5 линий связи, тут – 3), связь с датчиком BMP280 осуществляется по протоколу I2C (2 линии, тут – 1) и дополнительные символы, которые позволяют не гадать – температура это или другой параметр.

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

Код Ассемблера выполняется практически на машинном уровне: один цикл – одна команда. В качестве аргумента приведу пример из справочника по командам ассемблера AVR. Установка бита в регистре ввода/вывода — SBI A, b. Эта команда устанавливает заданный бит в регистре ввода-вывода. На выполнение этой операции контроллерами megaAVR потребуется 2 цикла и на tinyAVR, XMEGA — 1 цикл. Для схемы с контроллером ATtiny13 и резонатором 9,6 МГц выполнение команды займет один цикл, то есть 1/9600000 Гц = 0,104 мксек.

Выполнение похожей операции на языке Си, например, задать состояние порта — PORTB = 32; займет в этой же схеме не меньше времени. А о Ардуино и говорить нечего – там придется выполнить объемную функцию void digitalWrite(uint8_t pin, uint8_t val);. Подробно о размерах кода в Си и Ардуино читайте тут.

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

Теперь о энергосбережении немножко издали. Вспомним, что код Ассемблера выполняется на машинном уровне: один цикл – одна или несколько команд. в зависимости от типа контроллера. Это — десятые доли микросекунды. То есть, на выполнение программы с размером несколько десятков байт уйдут единицы-десятки микросекунд. Дальше контроллер бесконечно будет крутить этот набор «0» и «1», затрачивая энергию на перезаряд емкости затворов сотен полевых транзисторов, на которых построен кристалл контроллера, а также чтение и записи данных в его память. Длительность периода повтора будет зависеть только от размера кода в памяти контроллера, неважно на каком языке он составлен. Просто на Assembler’е он будет наименьшим, а в Arduino IDE – наибольшим. Соответственно, период цикла для кода на Assembler’е – наименьший, в Arduino IDE – наибольший.

Уменьшить эти затраты можно остановив процессор или программно уменьшив частоту его работы. В Ассемблере переход в «спящий» режим сна выполняет функция управления контроллером SLEEP. В других можно использовать функцию WDT (WatchDog Timer), а в Ардуино еще и функцию LowPower.powerDown (SLEEP_1S, ADC_OFF, BOD_OFF), заодно отключив все лишнее, что не используется в конкретной задаче. В эффективности этой функции сможет убедиться каждый, заменив в скетче «мигалки» (скетч — на картинке вначале статьи) функцию отсчета времени delay(1000); этой функцией и включив в разрыв питания контроллера амперметр. Да, не забудьте подключить библиотеку LowPower.h. На Си это сделал автор этой статьи. Ток в цепи питания attiny13a с паузой — 1,5мА, со сном — 240мкА. Потребление в 6(!) раз меньше.

Допустим, вы намерены собрать барометр-термометр и задумываетесь о энергосбережении. Понятно, что давление/температура в заданной разрядности не изменятся за несколько минут, которые для контроллера целая вечность. Ему можно выделить это время для сна. После сна он снова выполнит свою работу: примет информацию с датчика, преобразует в понятные для человека циферки и выведет все это на дисплей. И в таком режиме «работа-сон» он будет крутиться, пока не сядут батарейки. Объем «работы» контроллера, вернее время, которое контроллер будет занят выполнением работы, зависит от того, на каком языке составлена программа барометра-термометра. Если есть возможность загрузить в контроллер код на выбор – ArduinoIDE, C, Assembler, с одинаковым временем «сна», то в каком из трех предложенных вариантов батарейки сядут раньше (позже)? Мой ответ – ArduinoIDE (Assembler).

Так куда же идти? На мой взгляд, для любителей, как я, – это платформа Arduino IDE с низкоуровневыми вставками. Тем же, кому тесно в Arduino IDE, — в С. Хотя коды на С можно оптимизировать иногда до размеров не намного больше, чем в Assembler’е, все-таки для понимания работы контроллера стоит напрячься и освоить азы Assembler’а. Ведь полезность знаний – это аксиома.

Источник

Ардуино язык программирования: основные понятия

Язык программирования Ардуино основывается на языке C/C++, который широко распространен в мире программирования.

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

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

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

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

Язык программирования

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

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

Среда IDE поддерживается такими операционными системами, как Windows, MacOs и Linux. На официальном сайте компании указанно, что данный язык программирования написан на Wiring, но на самом деле его не существует и для написания используется C++ с небольшими изменениями.

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Что необходимо для начала работы с Arduino IDE?

Для начала нам потребуются следующие вещи:

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

Как настроить Ардуино на компьютере?

Делается это просто. Необходимо выполнить следующие действия:

Знакомство с интерфейсом Ардуино

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

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Ниже расположена панель с иконками, которые отображают наиболее используемые функции Arduino IDE:

Следующим по важности элементом является вкладка с файлами проекта. Если это простой скетч, то файл будет всего один. Однако сложные скетчи могут состоять из нескольких файлов. В таком случае на панели вкладок можно быстро переключить просмотр с одного файла на другой. Это очень удобно.

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

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Основные функции языка программирования

Давайте наконец-то перейдем к самым основным функция языка программирования Ардуино.

Сразу скажем, что все функции вы можете найти в нашем удобном справочнике на нашем сайте.

Точка с запятой ;

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

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

Двойная обратная косая черта для однострочных комментариев //

Теперь, даже через 3 месяца когда я просматриваю эту программу я знаю о том куда подключался светодиод.

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

Комментарии похожи на сноски кода, но более распространены, чем те что ставят в книгах внизу страниц.

Фигурные скобки

Фигурные скобки используются для того, чтобы добавить инструкции, выполняемые функцией (мы обсудим функции дальше). Всегда есть открытая фигурная скобка и закрывающая фигурная скобка. Если вы забудете закрыть фигурную скобку, компилятор выведет код ошибки.

Функции ()

В Ардуино есть определенные функции, которые часто используются в среде Arduino IDE. Когда вы вводите их, имя функции будет оранжевым. Например, функция pinMode() является общей функцией, используемой для обозначения режима вывода Arduino.

Обратите внимание, что слово OUTPUT обычно синего цвета. В языке программирования Ардуино есть определенные ключевые слова, которые часто используются, а синий цвет помогает их идентифицировать. Arduino IDE автоматически превращает их в синий цвет.

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

void setup ( )

Возможно, вам интересно что означает void перед функцией setup(). Void означает, что функция не возвращает информацию.

Давайте рассмотрим пару вещей, которые вы должны знать о setup():

void loop( )

Как и в случае с setup(), функция loop() не возвращает никаких значений, поэтому перед неё предшествует слово void.

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

Существуют ли еще программы, работающие с Ардуино?

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

Аналогичный набор функций нам может предоставить программа, которая называется Processing. Она очень схожа с Arduino IDE, так как обе сделаны на одном движке. Processing имеет обширный набор функций, который мало уступает оригинальной программе. С помощью загружаемой библиотеки Serial пользователь может создать связь между передачей данных, которые передают друг другу плата и Processing.При этом мы можем заставить плату выполнять программы прямо с нашего ПК.

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

Есть и платные варианты Arduino IDE. Одним из таких является программа PROGROMINO. Главным ее достоинством считается возможность автодополнения кода. При составлении программы вам больше не нужно будет искать информацию в справочниках. Программа сама предложит вам возможные варианты использования той или иной процедуры. В ее набор входит еще множество интересных функций, отсутствующих в оригинальной программе и способных облегчить вам работу с платами.

Конкуренты Ардуино

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

Существуют даже платы Arduino, которые поддерживают работу микропроцессоров с интерпретаторами JavaScript. Актуальны они, в первую очередь, для тех, кто желает использовать язык Java вместо Си. Ведь он более прост, и позволяет добиваться результатов с повышенной скоростью. Однако данные платы являются более дорогими по отношению к ардуино, что является существенным минусом.

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

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

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

Источник

Arduino и совместимые языки программирования

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Что такое Arduino

Если называть вещи своими именами, то Arduino — это конструктор для тех, кому надоело созидать бесполезные образы и захотелось хоть немного наделить их жизнью. В самом простейшем случае Arduino — печатная плата, на которой расположен контроллер, кварцевый генератор, АЦП/ЦАП, несколько разъёмов, диодов и кнопок. Остальное — дело рук хозяина: хотите — создавайте робота, хотите — программно-аппаратную платформу для «умного» дома, ну или забудьте про практическую пользу и развлекайтесь.

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

Arduino достаточно ограниченная платформа в плане возможностей программирования, особенно в сравнении с Raspberry Pi. В силу того, что порог входа неприлично низкий (базовый Tutorial занимает 3 листа формата A4), то рассчитывать на изобилие языков без подключения дополнительных модулей не приходится. За основу здесь принят C/C++, но с использованием различных IDE и библиотек вы получите доступ к оперированию Python, C#, Go, а также таким детским развлечениям, как Snap! и ArduBlock. О том как, когда и кому их использовать, поговорим далее.

Базовый язык платформы Arduino, который с некоторыми доработками и упрощениями используется в стандартной программной оболочке. Найти все доступные команды «для новичка» можно здесь, но никто не мешает вам воспользоваться исходными возможностями языка C++, никаких надстроек не потребуетс. Если же есть желание поиграть с «чистым» C, то к вашим услугам программа WinAVR, предназначенная, как следует из названия, для взаимодействия ОС Windows и МК серии AVR, которые и используются на Arduino. Более подробное руководство можете прочитать вот здесь.

Использование C/C++ рекомендуется тем, кто уже имеет представление о программировании, выучил в школе пару языков и хочет создать на Arduino что-то большее, чем светодиодную «мигалку» или простую машинку.

Ardublock

Временно отойдем от языков взрослых к любимому ребятней языку Scratch, а вернее к его адаптации — Ardublock. Здесь всё тоже самое, но с адаптацией к вашей платформе: цветные блоки, конструктор, русские названия, простейшая логика. Такой вариант здорово подойдет даже тем, кто с программированием не знаком вовсе. Подобно тому, как в языке Logo вы можете перемещать виртуальную черепашку по виртуальной плоскости, здесь с помощью нехитрых операций вы можете заинтересовать ребенка реальной интерпретацией его программных действий.

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

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

Рекомендуется младшей возрастной группе, тем, кто учил программирование так давно, что уже ничего не помнит и тем, кто хочет завлечь своего ребенка в IT через Scratch и Snap!.

Python

Формально программировать на Arduino вы можете используя хоть язык Piet, просто потому что при должном упорстве вы скомпилируете в машинный код что угодно. Но в силу того, что Python — один из наиболее популярных языков с практически оптимальным сочетанием сложность\возможности, то обойти стороной его применяемость в Arduino было бы нелепо. Начать изучение Python вы можете с нашего бесплатного интенсива «Основы языка Python».

Итак, для этого вам понадобится библиотеки PySerial (ранее, возможно, вы использовали её для общения с портами компьютера) и vPython. О том, как правильно всё настроить и заставить в конечном счёте работать, можете соответственно почитать здесь и здесь.

Go и другие языки.

Подобно тому, как Arduino взаимодействует с Python через библиотеку PySerial, он может взаимодействовать и с Go, и c Java, и с HTML, и с чем только захотите. Arduino — достаточно популярная платформа, чтобы такой банальный вопрос, как выбор удобного языка, не остановил очередного исследователя. Единственное, что требуется от владельца этой маленькой платы — задумать что-нибудь удивительно интересное, а удобный инструмент неизбежно найдётся.

Начать свой путь в IT бывает очень сложно хотя бы просто потому, что глядя на окружающие технологии невозможно отделить «железный» интерес от программного. С одной стороны — желание создать устройство с безупречным внешним видом, множеством датчиков и безграничными возможностями, с другой — таинство обработки данных, стремление максимально увеличить быстродействие, не пренебрегая функциональностью. Arduino — первый шаг к большим изобретениям, не требующий ни глубоких знаний схемотехники, ни опыта в программировании.

на каком языке программируют ардуино. Смотреть фото на каком языке программируют ардуино. Смотреть картинку на каком языке программируют ардуино. Картинка про на каком языке программируют ардуино. Фото на каком языке программируют ардуино

Что такое Arduino

Если называть вещи своими именами, то Arduino — это конструктор для тех, кому надоело созидать бесполезные образы и захотелось хоть немного наделить их жизнью. В самом простейшем случае Arduino — печатная плата, на которой расположен контроллер, кварцевый генератор, АЦП/ЦАП, несколько разъёмов, диодов и кнопок. Остальное — дело рук хозяина: хотите — создавайте робота, хотите — программно-аппаратную платформу для «умного» дома, ну или забудьте про практическую пользу и развлекайтесь.

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

Arduino достаточно ограниченная платформа в плане возможностей программирования, особенно в сравнении с Raspberry Pi. В силу того, что порог входа неприлично низкий (базовый Tutorial занимает 3 листа формата A4), то рассчитывать на изобилие языков без подключения дополнительных модулей не приходится. За основу здесь принят C/C++, но с использованием различных IDE и библиотек вы получите доступ к оперированию Python, C#, Go, а также таким детским развлечениям, как Snap! и ArduBlock. О том как, когда и кому их использовать, поговорим далее.

Базовый язык платформы Arduino, который с некоторыми доработками и упрощениями используется в стандартной программной оболочке. Найти все доступные команды «для новичка» можно здесь, но никто не мешает вам воспользоваться исходными возможностями языка C++, никаких надстроек не потребуетс. Если же есть желание поиграть с «чистым» C, то к вашим услугам программа WinAVR, предназначенная, как следует из названия, для взаимодействия ОС Windows и МК серии AVR, которые и используются на Arduino. Более подробное руководство можете прочитать вот здесь.

Использование C/C++ рекомендуется тем, кто уже имеет представление о программировании, выучил в школе пару языков и хочет создать на Arduino что-то большее, чем светодиодную «мигалку» или простую машинку.

Ardublock

Временно отойдем от языков взрослых к любимому ребятней языку Scratch, а вернее к его адаптации — Ardublock. Здесь всё тоже самое, но с адаптацией к вашей платформе: цветные блоки, конструктор, русские названия, простейшая логика. Такой вариант здорово подойдет даже тем, кто с программированием не знаком вовсе. Подобно тому, как в языке Logo вы можете перемещать виртуальную черепашку по виртуальной плоскости, здесь с помощью нехитрых операций вы можете заинтересовать ребенка реальной интерпретацией его программных действий.

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

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

Рекомендуется младшей возрастной группе, тем, кто учил программирование так давно, что уже ничего не помнит и тем, кто хочет завлечь своего ребенка в IT через Scratch и Snap!.

Python

Формально программировать на Arduino вы можете используя хоть язык Piet, просто потому что при должном упорстве вы скомпилируете в машинный код что угодно. Но в силу того, что Python — один из наиболее популярных языков с практически оптимальным сочетанием сложность\возможности, то обойти стороной его применяемость в Arduino было бы нелепо. Начать изучение Python вы можете с нашего бесплатного интенсива «Основы языка Python».

Итак, для этого вам понадобится библиотеки PySerial (ранее, возможно, вы использовали её для общения с портами компьютера) и vPython. О том, как правильно всё настроить и заставить в конечном счёте работать, можете соответственно почитать здесь и здесь.

Go и другие языки.

Подобно тому, как Arduino взаимодействует с Python через библиотеку PySerial, он может взаимодействовать и с Go, и c Java, и с HTML, и с чем только захотите. Arduino — достаточно популярная платформа, чтобы такой банальный вопрос, как выбор удобного языка, не остановил очередного исследователя. Единственное, что требуется от владельца этой маленькой платы — задумать что-нибудь удивительно интересное, а удобный инструмент неизбежно найдётся.

Источник

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

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