HIGH | LOW | АрдуиноПлюс
HIGH
Понятие HIGH (применительно к выводу) может несколько отличаться в зависимости от того, как настроен вывод – как вход (INPUT) или как выход (OUTPUT). Если функцией pinMode вывод сконфигурирован как вход (INPUT), то при считывании с него данных (функция digitalRead) микроконтроллер ответит HIGH в том случае, когда на выводе присутствует напряжение 3В или больше.
Также возможна ситуация, когда функцией pinMode вывод сконфигурирован как вход (INPUT), после чего функцией digitalWrite на него подается высокий уровень HIGH. В этом случае к выводу будут подключены внутренние подтягивающие резисторы номиналом 20 кОм, что приведет к возникновению на нем высокого уровня HIGH. При считывании значение HIGH будет удерживаться до тех пор, пока внешними цепями на выводе не будет сформирован низкий уровень LOW. Именно так работает режим INPUT_PULLUP.
Если функцией pinMode
LOW
Понятие LOW также имеет разные значения в зависимости от того, как настроен вывод – как вход (INPUT) или выход (OUTPUT). Если функцией pinMode вывод сконфигурирован как вход (INPUT), то при считывании с него данных функцией digitalRead микроконтроллер ответит LOW в том случае, когда напряжение на выводе не превышает 2В.
Если функцией pinMode вывод сконфигурирован как выход (OUTPUT) и функцией digitalWrite на него подан низкий уровень LOW, то на выводе установится напряжение 0В. В этом режиме он может принимать втекающий ток, например от светодиода, подключенного через резистор к +5В либо к другому выходу с уровнем HIGH.
Мои первые страшные опыты с Arduino
Это было неизбежно. Увлекшись электроникой, я должен был рано или поздно дойти и до программирования микроконтроллеров. А что может быть проще программирования AVR-микроконтроллеров в устройствах Arduino? Не удивительно, что начать я решил именно с них. Что же из этого получилось — читайте далее.
Примечание: Описанные далее действия производились под Linux, на Arduino Uno и, соответственно, используемом в этом устройстве микроконтроллере ATmega328P. Однако все написанное далее справедливо и для других моделей Arduino, а также мало отличаться в случае, если вы используете другую ОС.
Настройка Arduino IDE
Подключаем Arduino к компьютеру через USB порт и определяем при помощи dmesg
имя соответствующего устройства. У меня это ttyACM0. Если увидели что-то вроде:
usb 1-1: new full-speed USB device number 59 using xhci_hcd
usb 1-1: device not accepting address 59, error -71
usb usb1-port1: unable to enumerate USB device
… значит проблема в USB-кабеле, используйте другой.
Смотрим, какие права стоят на это устройство:
В разных дистрибутивах результат немного отличается. В Arch Linux я увидел:
crw-rw—- 1 root uucp 166, 0 Jan 1 21:34 /dev/ttyACM0
То есть, для доступа к устройству пользователя нужно добавить в группу uucp:
sudo usermod -a -G uucp eax
В Ubuntu название группы будет другим, а именно «dialout». После добавления пользователя в группу скорее всего придется перелогиниться. В выводе id
должны видеть, что ваш пользователь теперь состоит в группе.
Качаем Arduino IDE отсюда и распаковываем куда-нибудь:
cd ~/temp
tar –xz -xvf arduino-1.8.0-linux64.tar.xz
mkdir ~/opt
mv arduino-1.8.0 ~/opt/arduino
В каталоге с IDE можно запустить install.sh, чтобы он создал красивые икноки для вашего окружения рабочего стола.
Я пользуюсь i3, поэтому никаких красивых иконочек мне не нужно.После запуска IDE в Tools → Port выбираем /dev/ttyACM0. Затем жмем Files → Examples → Basics → Blink. Откроется следующий код:
void setup(){
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Используемый в Arduino язык программирования, как не сложно заметить, является диалектом C/C++. Эта программа просто мигает встроенным в Arduino светодиодом. Вы тут все программисты, поэтому разжевывать, как именно работает код, полагаю, не требуется. Жмем Upload (Ctr+U) и… я лично получил такую ошибку:
libtinfo.so.5: cannot open shared object file: No such
file or directory
Лечится так:
sudo pacman -S ncurses
Если все было сделано правильно, теперь после нажатия Ctr+U Arduino начнет мигать желтым светодиодом с подписью L. Бывает так, что программа Blink уже была залита в Arduino заранее. В этом случае попробуйте изменить в коде частоту мигания и перезалить программу.
Работа без IDE
Arduino IDE довольно убога, как текстовый редактор, плюс я заметил в ней неприятные глюки при сохранении файлов. Мне, знаете ли, нравится писать код в Vim. Вам может нравиться Sublime Text или другой текстовый редактор. Так давайте же разберемся, как программировать Arduino в текстовом редакторе или IDE по вкусу.
Говорим и заодно сразу прописываем в ~/.bashrc:
export ARDUINODIR=/home/eax/opt/arduino
Далее нам понадобится файл arduino.mk, который доступен здесь. Однако не спешите его качать. Мне этот файл пришлось во многих местах подправить, чтобы он заработал с последней Arduino IDE. Детали скучны, поэтому я не буду вас ими грузить. Просто берите пропатченную мною версию. Если вам вдруг интересно, что именно я поменял, измененные строчки помечены вот так:
Создаем файл Makefile такого содержания:
TARGET := main
SOURCES := main. cpp
BOARD := uno
include arduino.mk
… а также main.cpp:
#include <Arduino.h>/* Номера пинов, к которым подключены аноды RGB-светодиода */
const int RLED = 9;
const int GLED = 11;
const int BLED = 10;
/* Номера пинов, к которым подключены кнопки */
const int RBUTTON = 2;
const int GBUTTON = 4;
const int BBUTTON = 6;
/* Номер аналогового входа, подключенного к фоторезистору */
const int LIGHT = 0;
/* Как часто считывать состояния кнопок, в мс */
const int DELAY = 10;
/* Как часто выводить уровень освещенности, в мс */
const int LIGHT_REPORT_PERIOD = 1000;
/* Текущая яркость RGB-светодиода */
int gval = 0;
int bval = 250;
/*
* Была ли отпущена соответствующая кнопка.
*
* Эти переменные нужны, чтобы одно нажатие кнопки
* не считалось за несколько.
*/
bool rbutton_released = true;
bool gbutton_released = true;
bool bbutton_released = true;
/* Как долго не выводили уровень освещенности, в мс */
int silent_time = 0;
void setup()
{
pinMode(RLED, OUTPUT);
pinMode(GLED, OUTPUT);
pinMode(BLED, OUTPUT);
pinMode(RBUTTON, INPUT);
pinMode(GBUTTON, INPUT);
pinMode(BBUTTON, INPUT);
Serial.begin(9600);
}
void loop()
{
/* Обработка нажатия первой кнопки */
if(digitalRead(RBUTTON) == HIGH)
{
if(rbutton_released)
{
rbutton_released = false;
rval += 10;
if(rval > 255)
rval = 0;
Serial.println(“rval = ” + String(rval));
} else
rbutton_released = true;
/* То же самое для второй кнопки */
if(digitalRead(GBUTTON) == HIGH)
{
if(gbutton_released)
{
gbutton_released = false;
gval += 10;
if(gval > 255)
gval = 0;
Serial. println(“gval = ” + String(gval));
}
} else
gbutton_released = true;
/* То же самое для третьей кнопки */
if(digitalRead(BBUTTON) == HIGH)
{
if(bbutton_released)
{
bbutton_released = false;
bval += 10;
if(bval > 255)
bval = 0;
Serial.println(“bval = ” + String(bval));
}
} else
bbutton_released = true;
/* Задаем уровень ШИМ-сигнала на анодах RGB-светодиода */
analogWrite(GLED, gval);
analogWrite(BLED, bval);
/* Небольшая задержка */
delay(DELAY);
silent_time += DELAY;
/* Выводим освещенность, если долго ее не выводили */
if(silent_time >= LIGHT_REPORT_PERIOD)
{
int light_val = analogRead(LIGHT);
Serial.println(“light_val = ” + String(light_val));
silent_time = 0;
}
}
Как видите, программа стала сложнее. Этот код мы разберем подробнее чуть ниже. Если хотите, можете пока что оставить код программы Blink. Главное — не забудьте добавить в начале строчку:
Для загрузки программы говорим make upload
. Для просмотра сообщений от Arduino говорим make monitor
. В последнем случае будет использован screen. Как альтернативный вариант, можно воспользоваться программой minicom:
sudo pacman -S minicom
minicom -D /dev/ttyACM0 -b 9600
Если подзабыли количество бод, указанное в программе, можно сказать:
Теперь, когда с настройкой рабочего окружения покончено, давайте разберемся, как работает приведенная программа.
Немного матчасти и разбор кода
Приведенная программа управляет RGB-светодиодом, а также считывает данные с трех кнопок и фоторезистора:
RGB-светодиод — это по сути три светодиода в одном корпусе с общим катодом или анодом, которому соответствует наиболее длинная ножка из четырех. У меня был RGB-светодиод с общим катодом, то есть самую длинную ножку я подключал к минусу. Такой светодиод интересен тем, что его цвет со временем можно менять. Как видите, на фото светодиод светится фиолетово-розовым цветом. Если у вас нет RGB-светодиода, вы можете с тем же успехом использовать три отдельных светодиода.
Фоторезистор представляет собой резистор, чье сопротивление меняется в зависимости от того, как много света на него падает. Тот, что есть у меня, имеет сопротивление около 400 Ом при ярком свете и более 2 МОм (максимум, который может померить мой мультиметр) в полной темноте. Используя его в качестве одного из резисторов в делителе напряжения, можно оценить яркость света вокруг. Если у вас нет фоторезистора, можете с тем же успехом подключить обычный потенциометр.
У Arduino Uno есть 14 цифровых пинов, 6 аналоговых входов, а также пины с 5 В напряжения, 3.3 В и землей. В программе Blink мы использовали 13-ый пин со встроенным светодиодом. Подавая на него высокое и низкое напряжение, можно заставить светодиод мигать. Также цифровые пины позволяют считывать напряжение. В приведенной выше программе пины 2, 4 и 6 используются для чтения состояния кнопок. Пока это все не сильно отличается от уже знакомых нам GPIO пинов в Raspberry Pi.
Часть цифровых пинов помечены тильдой (~). У меня таких пинов 6, с номерами 3, 5, 6, 9, 10 и 11. Это означает, что пин может подавать ШИМ-сигнал (Широтно-Импульсная Модуляция или PWM, Pulse-Width Modulation). В данном контексте ШИМ всего лишь означает, что на пин будет подаваться сигнал с заданным коэффициентом заполнения. В Arduino коэффициент заполнения задается от 0 до 255. Например, если указать 127, то половину времени будет подаваться высокий сигнал, а половину — низкий. Если же указать 0, то сигнал будет все время низким. Частота ШИМ-сигнала в Arduino разная на разных пинах и отличается от модели к модели. В Arduino Uno частота составляет примерно 980 Гц на пинах 5 и 6, и примерно 490 Гц на остальных ШИМ-пинах.
ШИМ позволяет аппроксимировать подачу напряжения между 0 и 5 В. В приведенной программе нажатия на кнопки увеличивают ШИМ-сигнал на соответствующих анодах RGB-светодиода. В результате тремя кнопками регулируется яркость и цвет светодиода.
Наконец, аналоговые входы предназначены для более точного считывания напряжения, чем просто «высокий сигнал» и «низкий сигнал». В приведенном примере аналоговый вход A0 подключен к делителю напряжения из фоторезистора и резистора сопротивлением 10 кОм. Вызов analogRead(LIGHT)
возвращает значение около 800 при ярком свете, 125 при свете от настольной лампы, 0 в полной темноте и около 960, если посветить на фоторезистор лазерной указкой. В целом диапазон возможных возвращаемых значений лежит от 0 до 1023. Плюс к этому, аналоговые входы можно использовать точно так же, как и цифровые пины (без ШИМ), например:
pinMode(A1, OUTPUT);
digitalWrite(A1, HIGH);
Fun fact! Фактически, теперь вы знаете, как сделать лазерную сигнализацию. Также с помощью светодиодов или ИК-светодиодов и фоторезистора можно сделать датчик движения (бесконтактный выключатель?) вроде того, что используется в сушилках для рук. Также помимо фоторезистора можно использовать фототранзистор, представляющий собой обычный транзистор, ток базы которого определяется интенсивностью света. Если желаете, можете реализовать эти проекты в качестве домашнего задания.
Заключение
С Arduino мне понравилось работать намного больше, чем с Raspberry Pi. У последней, насколько мне известно, аналоговых входов нет совсем, да и с ШИМ все как-то не слишком удобно. Плюс Arduino Uno — это всего лишь микроконтроллер ATmega328P, на котором нет этой бесполезной операционной системы и который при желании можно извлечь и впаять прямо в изготовленную по ЛУТ плату. В общем, для занятия электроникой это устройство куда интереснее.
Исходники к этой заметке вы найдете на GitHub. Как обычно, буду рад вашим вопросам и дополнениям.
Дополнение: Как собрать Arduino прямо на макетной плате
Метки: AVR, Электроника.
Книги Arduino — Arduino Mania
Для получения навыков разработки проектов на микроконтроллере (далее просто МК) Ардуино не обойтись без специальной литературы. Книги Arduino позволят освоить азы работы с МК за считанные часы. Предотвратят большое количество ошибок, которые так часто совершают начинающие. Сократят время на «до хождение своим умом».
Конечно, каждый вправе сам решать, каким путем идти. Сейчас можно обойтись одной лишь информацией из сети Интернет, которой там предостаточно по данной тематике, однако стоит помнить, что в учебниках всегда все разложено по полочкам и структурировано.
Всю литературу можно разделить на две основные категории:
- для начинающих
- для профессионалов
Категорию справочников и им подобных в счет не берем.
Серия для начинающих содержит основные знания по электронике, электротехнике, программировании, а также подключению модулей и устройств к МК.
Arduino книги на русском для профессионалов помимо азов, как правило, содержат в себе поэтапную разработку простых и сложных проектов. Ну и конечно же основы.
Представляю вашему вниманию две основные книги, с прочтения которых нужно начинать освоениемикроконтроллера Ардуино.
В конце статьи будет представлен список литературы, чтением которой рекомендую заняться после. Список постепенно будет пополняться все новыми и новыми книгами.
Книга Arduino для начинающих на русском языке
Из всего разнообразия хочется выделить одну замечательную работу, которая понравится большому кругу читателей. А главное, поможет освоить работу с МК в короткие сроки.
Название — Arduino блокнот программиста (английское название Arduino Programming Notebook).Автор — Brian W. Evans. Количество страниц – 40.
Несмотря на объем страниц, издание, является полноценным руководством для старта начинающего разработчика. Также может выполнять роль справочника.
Книга Arduino для продвинутых на русском языке
Arduino книги на русском – это большая редкость. Найти их в сети довольно проблематично, т.к. большая часть литературы написана и находится в сети на английском языке. Единицы из них переведены на русский. А та небольшая часть книг arduino на русском для начинающих не содержит в себе нужного объема информации в достаточной степени.
Однако следует отметить интересную работу, к прочтению которой стоит приступать после получения азов работы с МК.
Название — Проекты с использованием контроллера Arduino. Автор — Петин В.А. Количество страниц – 400.
Все вышеупомянутые названия изданий можно найти и скачать в Интернете в формате pdf. Здесь работы не выложены, чтобы не нарушать авторских прав.
Дорогой читатель, если у тебя возникли проблемы с поиском книги, напиши мне, я постараюсь помочь в решении твоей проблемы.
Книги Ардуино рекомендуемые к прочтению:
- C чего начинаются роботы. О проекте Arduino для школьников. Автор — В.Н. Гололобов.
- Arduino Cookbook, второе издание, автор — Michael Margolis
Arduino, датчики и сети для связи устройств, автор — Сергей Таранушенко
★ Ардино, значения – ардино .. Информация
Пользователи также искали:
ардуино обучение, переменные ардуино, справочник программиста ардуино, ардуино, arduino, данных, типы, переменные, программиста, справочник, обучение, справочник программиста ардуино, ардуино программирование на русском, программирование, ардуино обучение, int arduino, arduino типы данных, переменные ардуино, Ардино, русском, значения, Ардино значения, программирование ардуино на с, ардино (значения),
Что такое Arduino
Сейчас в мире людей, увлечённых техникой, наблюдается настоящая “ардуиномания”. Этому маленькому загадочному устройству посвящены тысячи статей, сотни блогов и форумов. Так что же это такое – Arduino? И почему он обрёл столь большую популярность? Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Arduino — это электронный конструктор и удобная платформа быстрой разработки электронных устройств для новичков и профессионалов. Платформа пользуется огромной популярностью во всем мире благодаря удобству и простоте языка программирования, а также открытой архитектуре и программному коду. Устройство программируется через USB без использования программаторов.
Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры. Аппаратная часть представляет собой набор смонтированных печатных плат, продающихся как официальным производителем, так и сторонними производителями. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Arduino.
Arduino может использоваться как для создания автономных объектов автоматики, так и подключаться к программному обеспечению на компьютере через стандартные проводные и беспроводные интерфейсы.
С 2008 года в компании-разработчике начался раскол, выразившийся в существовании двух независимых ветвей развития и продаж под одной торговой маркой: одна на сайте arduino.cc, другая на arduino.org. Докризисные изделия на обоих сайтах продаются под одинаковыми названиями. Набор новых изделий на сайтах различается. Также существует две ветви Arduino IDE, поддерживающие разный набор плат и библиотек. Одинаковые названия и пересекающиеся номера версий IDE вносят путаницу. Тем не менее, говоря об Ардуино, обычно подразумевают первоначальную ветвь проекта на сайте arduino.cc.
Применение Arduino довольно разнообразно, его можно использовать, как и для простейших примеров, так и для довольно сложных механизмов, среди которых манипуляторы, роботы или производственные станки. Некоторые умельцы умудряются на основе таких систем делать планшеты, телефоны, системы наблюдения и безопасности домов, системы «умный дом» или просто компьютеры. Их даже можно использовать для создания примитивных систем виртуальной реальности. Всё благодаря довольной универсальной аппаратной составляющей и возможностям, которые предоставляет программирование Arduino.
Аппаратная часть
Под торговой маркой Arduino выпускается несколько плат с микроконтроллером и платы расширения (так называемые шилды). Большинство плат с микроконтроллером снабжены минимально необходимым набором обвязки для нормальной работы микроконтроллера (стабилизатор питания, кварцевый резонатор, цепочки сброса и т. п.).
Конструктив
Arduino и Arduino-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Arduino посредством установленных на них штыревых разъёмов. Существует ряд плат с унифицированным конструктивом, допускающим конструктивно жесткое соединение процессорной платы и плат расширения в стопку через штыревые линейки. Кроме того, выпускаются платы уменьшенных габаритов (например, Nano, Lilypad) и специальных конструктивов для задач робототехники. Независимыми производителями также выпускается большая гамма всевозможных датчиков и исполнительных устройств, в той или иной степени совместимых с базовым конструктивом Ардуино.
В концепцию Arduino не входит корпусной или монтажный конструктив. Разработчик выбирает метод установки и механической защиты плат самостоятельно.
Миниатюрные клоны Arduino
Помимо стандартных конструктивов Ардуино сторонние разработчики создали множество миниатюрных клонов, сохранив только архитектурную и программную совместимость. Среди этих клонов выделяется линейка продуктов Microduino. Линейка содержит полноценный набор конструктивно совместимых процессорных модулей, модулей связи, сенсоров и исполнительных устройств, практически не уступая ассортименту классических модулей Arduino. Как и Arduino, сборка плат производится в стопки.
Самый миниатюрный клон был выпущен под торговой маркой Femtoduino. Его размеры всего 15*20 мм, включая разъем micro USB, стабилизатор напряжения и полный комплект ввода-вывода Arduino UNO. Той же компанией выпущен самый нафаршированный миниатюрный клон под торговой маркой IMUduino. Это клон Arduino Leonardo с поддержкой USB Host (клавиатура и мышь), Bluetooth 4 Low Energy, шестиосный гироскоп/акселерометр, трехосный магнитометр (компас), барометр. Размер устройства 16*40 мм. К сожалению, проект на данный момент не предлагает совместимых по цоколевке плат расширения.
Микроконтроллер
Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика (bootloader). С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов. Загрузчик соединяется с компьютером через интерфейс USB (если он есть на плате) или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и выполняется в один щелчок мыши.
На случай затирания загрузчика или покупки микроконтроллера без загрузчика разработчики предоставляют возможность прошить загрузчик в микроконтроллер самостоятельно. Для этого в Arduino IDE встроена поддержка нескольких популярных дешевых программаторов, а большинство плат Arduino имеет штыревой разъем для внутрисхемного программирования (ICSP для AVR, JTAG для ARM).
В Arduino IDE от компании, базирующейся на сайте arduino.cc, встроена возможность создания своих программно-аппаратных платформ. Этой возможностью пользуются сторонние компании, добавляющие в Arduino IDE свои наборы плат и компиляторов-загрузчиков к ним. Компания на сайте arduino.org не поддерживает такую возможность.
AVR
В линейке устройств Arduino в основном применяются микроконтроллеры Atmel AVR: ATmega328, ATmega168, ATmega2560, ATmega32U4, ATTiny85 с частотой тактирования 16 или 8 МГц. В старых изделиях применялись ATmega8, ATmega1280 и другие.
ARM Cortex M
Есть также платы на процессоре ARM Cortex M.
ESP8266
Сторонние разработчики портировали в Arduino поддержку популярного Wi-Fi микроконтроллера ESP8266. Теперь компилировать и загружать прошивку для ESP8266 со своими скетчами и поддержкой Wi-Fi можно прямо из Arduino IDE, получая одноплатную схему с поддержкой сети Wi-Fi. Подробное русскоязычное описание процесса установки и доступного API здесь, пример работы здесь.
Intel x86
В рамках сотрудничества со сторонними производителями в Arduino IDE была включена поддержка некоторых аппаратных средств Intel x86. Intel Galileo (процессор Intel Quark X1000 400 МГц), Intel Edison и Arduino 101 — Arduino-совместимые платы на Intel x86 архитектуре. Платы механически и электрически совместимы с периферийными платами Ардуино. Платы функционируют под собственной ОС Linux, поверх которой работает приложение, позволяющее загружать и исполнять скетчи Arduino.
Периферия
Порты ввода-вывода микроконтроллеров оформлены в виде штыревых линеек. Никакого буферизирования, защиты, конвертации уровней или подтяжек, как правило, нет. Микроконтроллеры питаются от 5В или 3,3В, в зависимости от модели платы. Соответственно порты имеют такой же размах допустимых входных и выходных напряжений. Программисту доступны некоторые специальные возможности портов ввода-вывода микроконтроллеров, например широтно-импульсная модуляция , аналогово-цифровой преобразователь, интерфейсы UART, SPI, I2C. Количество и возможности портов ввода-вывода определяются конкретным вариантом микропроцессорной платы.
Помимо портов на платах микроконтроллеров иногда устанавливается периферия в виде интерфейсов USB или Ethernet. Опциональный набор внешней периферии на модулях расширения включает в себя:
- USB Device (чаще всего как виртуальный COM порт через FTDI FT232, имеются также версии с эмуляцией USB HID Class клавиатур и мышек).
- Проводной и беспроводной Ethernet как на основной плате так и на платах расширения.
- Модуль GSM и другие беспроводные интерфейсы.
- USB Host.
- SD card.
- Модуль управления низковольтным мотором на базе L298. Поддерживаются шаговый и коллекторный двигатели с напряжением до 12В и током до 2А на канал. Могут подключаться также реле, электромагниты и т. п. Модуль не имеет гальванической развязки.
- Графический ЖКИ индикатор.
- Модуль с макетным полем.
Сторонние производители выпускают широкую гамму датчиков и исполнительных устройств, подключаемых к Arduino. Например, гироскопы, компасы, манометры, гигрометры, термометры, релейные модули, индикаторы, клавиатуры и т. п. Всё это превращает Arduino в универсальное ядро системы, которое может быть сконфигурировано совершенно разнообразными способами.
Характеристики популярных микроконтроллерных плат проекта Ардуино (таблица)
Arduino | МК | Напряжение питания | Флеш-память, КБ | EEPROM, КБ | SRAM, КБ | Двоичные входы/выходы | …c ШИМ | Аналоговые входы | USB-интерфейс | Прочие интерфейсы | Размеры, мм |
---|---|---|---|---|---|---|---|---|---|---|---|
Due | Atmel SAM3X8E ARM Cortex-M3 | 3. 3 В | 512 | Нет | 256 | 54 | 12 | 12 + 2ЦАП | ATmega16U2 | CAN, JTAG, I2C | 101,6 × 53.3 |
ADK | ATmega2560 | 5 В | 256 | 4 | 8 | 54 | 14 | 16 | ATmega8U2 | MAX3421E USB хост |
101,6 × 53.3 |
BT (Bluetooth) | ATmega328 | 5 В | 32 | 1 | 2 | 14 | 4 | 6 | Нет | Bluegiga WT11 Bluetooth | |
Diecimila | ATmega168 | 5 В | 16 | 0.5 | 1 | 14 | 6 | 6 | FTDI | 68,6 × 53.3 | |
Duemilanove | ATmega168/328P | 5 В | 16/32 | 0.5/1 | 1/2 | 14 | 6 | 6 | FTDI | 68,6 × 53.3 | |
Ethernet | ATmega328 | 5 В | 32 | 1 | 2 | 14 | 4 | 6 | Нет | Wiznet Ethernet MicroSD |
|
Fio | ATmega328P | 3. 3 В | 32 | 1 | 2 | 14 | 6 | 8 | Нет | 40,6 × 27.9 | |
Leonardo | Atmega32u4 | 5 В | 32 | 1 | 2 | 14 | 6 | 12 | Atmega32u4 | 68,6 × 53.3 | |
LilyPad | ATmega168V или ATmega328V | 2.7-5.5 В | 16 | 0.5 | 1 | 14 | 6 | 6 | Нет | 50 ⌀ | |
Mega | ATmega1280 | 5 В | 128 | 4 | 8 | 54 | 14 | 16 | FTDI | 101,6 × 53.3 | |
Mega2560 | ATmega2560 | 5 В | 256 | 4 | 8 | 54 | 14 | 16 | ATmega8U2 ATmega16U2 | 101,6 × 53.3 | |
Nano | ATmega168 или ATmega328 | 5 В | 16/32 | 0. 5/1 | 1/2 | 14 | 6 | 8 | FTDI | 43 × 18 | |
Uno | ATmega328P | 5 В | 32 | 1 | 2 | 14 | 6 | 6 | ATmega8U2 ATmega16U2 | 68,6 × 53.3 |
Язык программирования
Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную на сайте Arduino. В этой оболочке имеется текстовый редактор, менеджер проектов, препроцессор, компилятор и инструменты для загрузки программы в микроконтроллер. Оболочка написана на Java на основе проекта Processing, работает под Windows, Mac OS X и Linux.
Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.
- Программы, написанные программистом Arduino называются наброски (или иногда скетчи) и сохраняются в файлах с расширением .ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.
- Обязательную в C++ функцию
main()
препроцессор Arduino создает сам, вставляя туда необходимые «черновые» действия. - Программист должен написать две обязательные для Arduino функции
setup()
иloop()
. Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле. - В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Arduino в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.
- Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.
- Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.
Простейшая Arduino-программа состоит из двух функций:
setup()
: функция вызывается однократно при старте микроконтроллера.loop()
: функция вызывается после setup () в бесконечном цикле все время работы микроконтроллера.
Уже готовую к работе на микроконтроллере программу называют прошивкой. Может быть как один проект, так и проекты Arduino, поэтому каждую прошивку желательно было бы хранить в отдельной папке, чтобы ускорить процесс нахождения нужных файлов. Она прошивается на кристалл МК посредством специализированных устройств: программаторов.
“Ардуино” имеет одно преимущество – ему не нужен программатор. Всё сделано так, чтобы программирование Arduino для начинающих не составляло труда. Написанный код можно загрузить в МК посредством USB-шнура. Достигается это преимущество не каким-то встроенным уже заранее программатором, а спецпрошивкой – бутлоадером. Бутлоадер является специальной программкой, которая запускается сразу после подключения и слушает, будут ли какие-то команды, прошивать ли кристалл, есть ли проекты Arduino или нет. Из использования бутлоадера выплывает несколько очень привлекательных плюсов:
Использование только одного канала связи, что не требует дополнительных затрат по времени. Так, проекты Arduino не требуют, чтобы вы подключали множество различных проводов, и возникала путаница при их использовании. Для успешной работы хватает одного USB-шнура.
Защита от кривых рук. Довести микроконтроллер до состояния кирпича с помощью прямой прошивки довольно легко, сильно напрягаться не надо. При работе с бутлоадером до потенциально опасных настроек вам не добраться.
Пользователь может самостоятельно запрограммировать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных дешёвых программаторов.
Почему Arduino?
Существует множество микроконтроллеров и платформ для осуществления «physical computing». Parallax Basic Stamp, Netmedia’s BX-24, Phidgets, MIT’s Handyboard и многие другие предлагают схожую функциональность. Все эти устройства объединяют разрозненную информацию о программировании и заключают ее в простую в использовании сборку. Arduino, в свою очередь, тоже упрощает процесс работы с микроконтроллерами, однако имеет ряд преимуществ перед другими устройствами для преподавателей, студентов и любителей:
Низкая стоимость – платы Arduino относительно дешевы по сравнению с другими платформами. Самая недорогая версия модуля Arduino может быть собрана в ручную, а некоторые даже готовые модули стоят меньше 50 долларов.
Кросс-платформенность – программное обеспечение Arduino работает под ОС Windows, Macintosh OSX и Linux. Большинство микроконтроллеров ограничивается ОС Windows.
Простая и понятная среда программирования – среда Arduino подходит как для начинающих пользователей, так и для опытных. Arduino основана на среде программирования Processing, что очень удобно для преподавателей , так как студенты работающие с данной средой будут знакомы и с Arduino.
Программное обеспечение с возможностью расширения и открытым исходным текстом – ПО Arduino выпускается как инструмент, который может быть дополнен опытными пользователями. Язык может дополняться библиотеками C++. Пользователи, желающие понять технические нюансы, имеют возможность перейти на язык AVR C. Соответственно, имеется возможность добавить код из среды AVR-C в программу Arduino.
Аппаратные средства с возможностью расширения и открытыми принципиальными схемами – микроконтроллеры ATMEGA8 и ATMEGA168 являются основой Arduino. Схемы модулей выпускаются с лицензией Creative Commons, а значит, опытные инженеры имеют возможность создания собственных версий модулей, расширяя и дополняя их. Даже обычные пользователи могут разработать опытные образцы с целью экономии средств и понимания работы.
Arduino Uno – Very New
Описание товара
Это последняя модель Arduino Rev3, оригинальная, произведённая в Италии. Она выполнена на базе процессора ATmega328p с тактовой частотой 16 МГц, обладает памятью 32 кБ и имеет 20 контролируемых контактов ввода и вывода для взаимодействия с внешним миром.
Arduino Uno в проекте кашляющей урны:
- Техническое описание, установка и устранение неисправностей
- справочник по программированию
- Жалюзи с электроприводом
- Замок «Тук-тук»
- Стол для 3D-фотосъемки
- Голосовой тир
- Беспроводная метеостанция
- Автополив растений
- Аудиоинформер скорости ветра
Arduino — это открытая платформа, которая позволяет собирать всевозможные электронные устройства. Arduino будет интересен креативщикам, дизайнерам, программистам и всем пытливым умам, желающим собрать собственный гэджет. Устройства могут работать как автономно, так и в связке с компьютером. Всё зависит от идеи.
Платформа состоит из аппаратной и программной частей; обе чрезвычайно гибки и просты в использовании. Для программирования используется упрощённая версия C++, известная так же как Wiring. Разработку можно вести как с использованием бесплатной среды Arduino IDE, так и с помощью произвольного C/C++ инструментария. Поддерживаются операционные системы Windows, MacOS X и Linux.
Для программирования и общения с компьютером вам понадобится USB-кабель. Для автономной работы потребуется блок питания на 7,5—12 В. Если вы новичок в конструировании электроники, рекомендуем обратить внимание на готовые наборы: «Матрёшка X», «Матрёшка Y» или «Матрёшка Z».
Питание
Arduino Uno может питаться как от USB подключения, так и от внешнего источника: батарейки или обычной электрической сети. Источник определяется автоматически.
Платформа может работать при наличии напряжения от 6 до 20 В. Однако при напряжении менее 7 В работа может быть неустойчивой, а напряжение более 12 В может привести к перегреву и повреждению. Поэтому рекомендуемый диапазон: 7−12 В.
На Arduino доступны следующие контакты для доступа к питанию:
- Vin предоставляет тот же вольтаж, что используется для питания платформы. При подключении через USB будет равен 5 В.
- 5V предоставляет 5 В вне зависимости от входного напряжения. На этом напряжении работает процессор. Максимальный допустимый ток, получаемый с этого контакта — 800 мА.
- 3.3V предоставляет 3,3 В. Максимальный допустимый ток, получаемый с этого контакта — 50 мА.
- GND — земля.
Память
Платформа оснащена 32 кБ flash-памяти, 2 кБ из которых отведено под так называемый bootloader. Он позволяет прошивать Arduino с обычного компьютера через USB. Эта память постоянна и не предназначена для изменения по ходу работы устройства. Её предназначение — хранение программы и сопутствующих статичных ресурсов.
Также имеется 2 кБ SRAM-памяти, которые используются для хранения временных данных вроде переменных программы. По сути, это оперативная память платформы. SRAM-память очищается при обесточивании.
Ещё имеется 1 кБ EEPROM-памяти для долговременного хранения данных. По своему назначению это аналог жёсткого диска для Arduino.
Ввод / вывод
На платформе расположены 14 контактов (pins), которые могут быть использованы для цифрового ввода и вывода. Какую роль исполняет каждый контакт, зависит от вашей программы. Все они работают с напряжением 5 В, и рассчитаны на ток до 40 мА. Также каждый контакт имеет встроенный, но отключённый по умолчанию резистор на 20 — 50 кОм. Некоторые контакты обладают дополнительными ролями:
- Serial: 0-й и 1-й. Используются для приёма и передачи данных по USB.
- Внешнее прерывание: 2-й и 3-й. Эти контакты могут быть настроены так, что они будут провоцировать вызов заданной функции при изменении входного сигнала.
- PWM: 3-й, 5-й, 6-й, 9-й, 10-й и 11-й. Могут являться выходами сширотно-импульсной модуляцией (pulse-width modulation) с 256 градациями.
- LED: 13-й. К этому контакту подключен встроенный в плату светодиод. Если на контакт выводится 5 В, светодиод зажигается; при нуле — светодиод гаснет.
Помимо контактов цифрового ввода/вывода на Arduino имеется 6 контактов аналогового ввода, каждый из которых предоставляет разрешение в 1024 градации. По умолчанию значение меряется между землёй и 5 В, однако возможно изменить верхнюю границу, подав напряжение требуемой величины на специальный контактAREF.
Кроме этого на плате имеется входной контакт Reset. Его установка в логический ноль приводит к сбросу процессора. Это аналог кнопки Reset обычного компьютера.
Взаимодействие
Arduino Uno обладает несколькими способами общения с другими Arduino, микроконтроллерами и обычными компьютерами. Платформа позволяет установить последовательное (Serial UART TTL) соединение через контакты 0 (RX) и 1 (TX). Установленный на платформе чип ATmega16U2 транслирует это соединение через USB: на компьютере становится доступен виртуальный COM-порт. Программная часть Arduino включает утилиту, которая позволяет обмениваться текстовыми сообщениями по этому каналу.
Встроенные в плату светодиоды RX и TX светятся, когда идёт передача данных между чипом ATmega162U и USB компьютера.
Отдельная библиотека позволяет организовать последовательное соединение с использованием любых других контактов, не ограничиваясь штатными 0-м и 1-м.
С помощью отдельных плат расширения становится возможной организация других способов взаимодействия, таких как ethernet-сеть, радиоканал, Wi-Fi.
Защита USB
Arduino Uno обладает предохранителем, защищающим USB-порты вашего компьютера от перенапряжения и коротких замыканий. Хотя большинство компьютеров обладают собственными средствами защиты, предохранитель даёт дополнительную уверенность. Он разрывает соединение, если на USB-порт подаётся более 500 мА, и восстанавливает его после нормализации ситуации.
Габариты
Размер платы составляет 6,9 × 5,3 см. Гнёзда для внешнего питания и USB выступают на пару миллиметров за обозначенные границы. На плате предусмотрены места для крепления на шурупы или винты. Расстояние между контактами составляет 0,1″ (2,54 мм), но в случае 7-го и 8-го контакта — расстояние: 0,16″.
Компиляция Marlin 2.0 под Arduino DUE
wizaЗагрузка
13.09.2019
1316
Вопросы и ответыНу вот и наступил момент, когда я тоже хочу задать вопрос 🙂
При компиляции, если включить #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER то arm-none-eabi-gcc начинает ругаться
arm-none-eabi-gcc: error: CreateProcess: No such file or directory
что, видимо значит что наименование всех библиотек не влазит в командную строку. Как его скомпилить ? Без включенного LCD всё собирается
Ответы на вопросыПопулярные вопросы
МахоняЗагрузка
10.03.2021
974
Нашёл в сети вот такую статейку.Вроде всё просто, но как всегда есть эти но.
Вот они
В закромах ва…
Читать дальше EagleB3Загрузка
05.03.2021
363
Взбрела в голову мысль и никак не могу с ней расстаться. Если есть здесь кто-нибудь, разбирающийся в ультразвуке и особенностях его распространения (Д…
Читать дальше cinema4dЗагрузка
20.02.2019
6360
Всем добрый вечер!, купил датчик авто уровня , и теперь есть пару вопросов у тех кто таким пользовал, скажите его на горячую не льзя использовать я та…
Читать дальшеКак использовать и понять Arduino Справочник
Итак, вы только что открыли свой модный новый гаджет – может быть, потрясающую камеру DSLR, или новейшую игровую систему, или, может быть, новый проигрыватель Blu-ray. Когда вы с радостью отрываете упаковку – вы замечаете небольшую книгу, которая выглядит так, как будто она была напечатана на переработанной газете 4-го поколения – это инструкция по эксплуатации.
Просматривая страницы, вы понимаете, что сначала он был написан на японском, переведен на китайский австралийским чревовещателем, а затем стажер из Калифорнии использовал Google Translate, чтобы закончить работу для вашего родного языка.
Итак, вы бросаете инструкцию и просто подключаете гаджет. Хорошо для вас – тем более, что кажется, что все работает нормально.
До ..
… что-то не работает. Возможно, вы не можете перемещаться по параметрам меню, чтобы найти параметр, который был объявлен на коробке, или, возможно, функции, которые, как вы думали, имеет ваш гаджет, не работают, независимо от того, насколько правильно вы нажимаете кнопки.
В этом руководстве основное внимание уделяется руководству по эксплуатации Arduino, более известному как «Справочник по Arduino» или «Документация по Arduino».Это важный и полезный аспект обучения использованию Arduino – он будет вашим лучшим другом во времена недоумения, упадка ума и приступов ярости.
Я знаю, что руководства по эксплуатации получают плохую упаковку, но не волнуйтесь – Arduino Reference великолепен!
Если честно, то, что действительно удерживает нас от документации, – это наши страхи.
Совершенно верно – справочные страницы могут быть немного пугающими, когда вы только начинаете.
Они используют много технического жаргона, наполнены забавными аббревиатурами и заполнены кроличьими норками.Все равно никто этим не пользуется… верно? (Не верно – это была шутка!)
Это руководство будет охватывать:
- Что такое ссылка на Arduino?
- Анатомия справочной страницы Arduino.
- Почему вам следует использовать Справочник по Arduino Подробнее.
- Как использовать мозговые волны, чтобы заставить кошку меньше есть.
Что такое ссылка на Arduino?
Вы когда-нибудь читали книгу и встречали слово, которого не понимали? Иногда можно вывести значение из контекста, но что делать, если такого контекста не существует?
Вероятно, вы использовали поисковую систему, чтобы найти определение.В определении говорилось, что означает слово, было ли это глаголом или прилагательным (или и тем, и другим), приводилось несколько примеров того, как использовать это слово, и, возможно, даже этимология.
Ссылка на Arduino – это то же самое. Это «словарь» всех структур, переменных и функций, которые вы можете использовать при программировании скетча.
Он сообщает вам описание, параметры, которые он использует, синтаксис (как он написан) и даже дает множество примеров того, как его использовать.
Итак, давайте перейдем к справочной странице Arduino и углубимся в то, что мы можем узнать.
Анатомия Arduino Справочная страница
Итак, давайте перейдем к справочной странице, чтобы начать наше путешествие. Вы можете найти индекс всех справочных страниц Arduino на веб-сайте Arduino:
http://arduino.cc/en/Reference/HomePage
Или – если вы не в сети – не волнуйтесь, ваша Arduino IDE поставляется с html-копией всех страниц. Вы можете добраться до него через Arduino IDE: Справка> Ссылка
Вы заметите, что вверху страницы указателя ссылок есть три столбца; Структура, переменные, функции.Это первый уровень организации в справочнике. Итак, если вы ищете переменную, вы знаете, в какой столбец начинать поиск.
Каждый элемент с гиперссылкой на этой странице указателя приведет вас к странице справки по отдельным записям.
Что замечательно в отдельных справочных страницах, так это то, что они организованы похожим образом от одной к другой, поэтому вы должны знать, чего ожидать. Кроме того, они лаконичны, поэтому не думайте, что вам придется пролистывать чью-то диссертацию.
На каждой странице есть несколько основных заголовков. Мы пройдемся по каждому из основных, а затем поговорим о некоторых менее распространенных.
Описание:Все записи будут иметь описание. Довольно просто – это простое объяснение того, что делает элемент. Обычно используется базовый язык.
Синтаксис:Почти все записи имеют заголовок «синтаксис», но они более распространены для функций.Синтаксис показывает, как должна быть написана функция (или другой код), когда вы используете ее в своем скетче.
В основном – это то, что функция должна знать, чтобы выполнять свою работу. Возьмем пример со справочной страницы digitalWrite ().
Слова в скобках говорят вам, какой тип значения следует передать функции. Если мы хотим использовать эту функцию, ей нужно знать 2 вещи – номер вывода и значение, которое нужно записать на вывод.
Вы не вводите слово «штырь» при использовании функции, вы должны заменить его фактическим номером контакта или переменной, которая представляет этот номер контакта.То же самое и со словом «значение», вы должны заменить его одним из допустимых параметров (см. Ниже).
Итак, когда вы на самом деле написали функцию, она могла бы выглядеть так:
digitalWrite (13, ВЫСОКИЙ)
Где 13 – «вывод», а HIGH – «значение».
Параметры:Заголовок «Параметры» будет иметь только структуры и функции. Они точно описывают, что может быть указано в скобках в приведенном выше синтаксисе. Это полезно знать, потому что вы могли пытаться передать число с плавающей запятой, когда функция вызывает целое число.
Возврат:Это говорит вам, какое значение ожидать от функции, чтобы вернуть вас. Например, когда вы используете функцию извлечения квадратного корня, вы ожидаете получить обратно квадратный корень. Но каким типом данных будет квадратный корень – целым числом, числом с плавающей запятой или двойным? Заголовок «Возврат» сообщит вам об этом.
Иногда функция ничего не возвращает. Возьмем, к примеру, функцию pinMode (), вы даете ей номер контакта и режим, в котором должен быть контакт, и она просто устанавливает режим – нет данных, которые он должен вам вернуть.
Пример:Это лучший способ понять, как структура, функция или переменная должны быть реализованы в коде. Обычно это очень короткий фрагмент кода, хотя иногда он может быть длинным. Пример ниже взят из справочной страницы map ().
Приятной особенностью описания примера является опция «получить код» справа от справочной страницы рядом с кодом примера. Когда вы щелкнете по ней, ваш браузер перейдет на обычную текстовую веб-страницу, где вы можете скопировать, а затем вставить код в свою Arduino IDE.
См. Также:Это маркированный список записей, похожих или связанных с просматриваемой вами справочной страницей.
Они будут ссылаться на другие справочные страницы внутри справочного каталога. Если я заканчиваю справочную страницу, которая не совсем то, что я искал, я обычно проверяю варианты, которые они здесь предоставляют.
Иногда они также будут ссылаться на учебные пособия на веб-сайте Arduino (а кому не нравятся учебные пособия?). Имейте в виду, если вы используете ссылку в автономном режиме через IDE Arduino, и у вас нет подключения к Интернету, которое ссылки вне справочного каталога не будут работать.
Включает в себя наиболее распространенные заголовки, ниже – менее распространенные, но тем не менее полезные заголовки, с которыми вы можете столкнуться.
Советы по программированию / Совет по кодированию / Совет:Это небольшие кусочки знаний, предоставленные людьми, знающими свое дело. Мне всегда нравится их читать, потому что они углубляют мое понимание.
Предупреждение:Они указывают на распространенные ошибки, которые возникают, когда люди вроде меня и вы пытаетесь использовать код.
Предупреждение:Если есть исключения из правила, они будут описаны здесь.
Примечание:Во многих случаях примечания представляют собой заголовок «разное», в котором содержится информация, не относящаяся к другим заголовкам.
Почему вы должны использовать Справочник по Arduino Подробнее
Вот сценарий, который я разыгрывал около 7000 раз. Я пишу программу, и какая-то функция работает неправильно.Я трачу 30 минут на внесение изменений в программу, но продолжаю получать ошибки. Каждый раз, когда я думаю, что исправил это, я обнаруживаю, что ошибаюсь.
Затем я решаю проверить справочник, и тут я быстро понимаю, что просто не понимаю, как функция должна работать.
Итак, у меня появилась привычка, когда я не до конца понимаю функцию, – это проверять соответствующую страницу справочника Arduino.
Это экономит мне время, учит тому, чего я не знал, или заново учит меня тому, что я забыл – и то же самое сделает и с вами.
Подведем итоги.
Справочная страница Arduino:
- Колено пчелы.
- Львиная пасть.
- Моя любимая страница на сайте Arduino.
- Ваша любимая страница на сайте Arduino?
- Перейдите на страницу указателя ссылок Arduino и начните изучать некоторые функции.
- Посмотрите, сможете ли вы найти записи со следующими заголовками: Предостережение / Предупреждение / Совет
Предупреждение – это становится глубже!
– AVR Libc (это справочник, на котором основан язык Arduino)
– Руководство пользователя AVR Libc
с.С.
Хорошо – насколько мне нравится справочная страница Arduino, иногда на ней есть ошибки. Так что, если вы их найдете, упомяните об этом на форуме Arduino.
Программирование | НТС-1 Настройки
Выбор программиста для плат
В эталонной настраиваемой панели используется микроконтроллер (STM32F030R8) для сканирования действий пользователя и связи с основной платой цифрового комплекта NTS-1. Самый удобный способ программирования этого микроконтроллера – через открытый разъем SWD (4-контактный) с использованием программатора микросхем ST-LINK (или совместимого), вот несколько примеров:
Осторожно! Многие программные ключи OEM предоставляют 3.3V на Vref булавке вместо контроля его для опорного напряжения, как они должны, убедитесь, что НЕ подключить Vref булавку таких программистов. Используйте вольтметр, чтобы проверить вывод Vref программатора, если вы обнаружите напряжение на нем, НЕ подключайте его к эталонной пользовательской плате панели. У официальных программистов ST-LINK такой проблемы нет.
Штекерные кабели DuPont «мама-гнездо» с шагом 2,54 мм также потребуются для подключения программатора к контактам SWD эталонной платы (иногда поставляются с программатором).В зависимости от программатора, который вы используете, контакты SWD на эталонной плате могут быть в разном порядке, внимательно прочтите руководство программиста и убедитесь, что вы подключаете контакты в правильном порядке. (разъемные или отдельные штыревые кабели могут быть полезны, если вам нужно изменить порядок соединений)
Подключение программатора
Программатор, совместимый со ST-LINK, должен быть подключен к разъему SWD следующим образом:
Предотвращение сброса панели
Во время программирования и, как правило, во время разработки микропрограмм рекомендуется предотвратить сброс эталонной настраиваемой панели с помощью основной платы цифрового комплекта NTS-1 при тайм-аутах связи.
Чтобы предотвратить сброс панели, установите перемычку на разъеме CN11 в положение DEBUG .
Перемычку можно снова установить в положение NORMAL , если просто использовать цифровой комплект NTS-1 с пользовательской панелью.
Программирование с помощью Arduino IDE
Для эталонной настраиваемой панели предоставляется пакет определения платы Arduino, который позволяет создавать прошивки из эскизов Arduino и программировать микроконтроллер через Arduino IDE.Определение платы обрабатывает детали низкого уровня связи с основной платой цифрового набора NTS-1, обеспечивая интерфейс высокого уровня, подходящий для быстрого прототипирования.
Требования
Должно быть установлено следующее программное обеспечение:
Настройка определения платы
- В среде Arduino IDE откройте настройки из меню Файл
- Открыть URL-адреса диспетчера дополнительных плат окно редактирования
- Добавьте в список следующий URL:
https: // raw.githubusercontent.com/korginc/nts-1-customizations/master/Arduino/package_nts1_custom_panels_index.json
- Нажмите OK в обоих окнах и откройте Boards Manager из меню Tools> Board:
- Найдите Пользовательские панели NTS-1 и установите версию 1.0.0
- Выберите NTS-1 Custom Panel из меню Tools> Board: в группе NTS-1 Custom Panel
- Убедитесь, что плата, указанная в Инструменты> Номер детали платы: , соответствует вашей плате.
Последовательный мониторинг
Мониторинг через встроенный объект Arduino Serial возможен с помощью адаптера USB-Serial (на базе микросхемы FTDI RS232), такого как этот или этот.
Осторожно! Справочная плата нестандартной панели NTS-1 не терпима к 5 В. Пожалуйста, НЕ подключайте устройство с питанием от 5 В. Последовательные USB-адаптеры иногда имеют перемычки для выбора режима работы 3,3 В или 5 В, обязательно установите его на 3,3 В.
Подключите адаптер USB-Serial к разъему SERIAL следующим образом:
При использовании последовательного монитора Arduino IDE выберите COM-порт, соответствующий USB-последовательному адаптеру, в меню «Инструменты »> «Порт ».Также можно использовать внешнее программное обеспечение для мониторинга последовательного порта, в этом случае обратитесь к документации этого программного обеспечения.
Примеры эскизов
Некоторые примеры Эскизы Arduino предоставляются в качестве отправной точки для ваших собственных проектов:
- Пустой шаблон : минимум кода, необходимого для создания эскиза с определением платы пользовательской панели NTS-1.
- Шаблон секвенсора : базовый 8-шаговый секвенсор со сканированием пользовательского интерфейса и управлением светодиодами, реализованными через прерывания, управляемые таймером
Вы можете найти шаблоны в меню Файл> Примеры> NTS-1 .
Проверить и скомпилировать
Вы можете скомпилировать свой Sketch, не загружая его на плату, нажав кнопку Verify или выбрав Verify / Compile в меню Sketch .
В случае успеха вы должны увидеть что-то вроде вывода ниже в консоли Arduino IDE.
Sketch использует 10832 байта (16%) пространства для хранения программ. Максимум 65536 байт.
Глобальные переменные используют 2112 байт (25%) динамической памяти, оставляя 6080 байт для локальных переменных.Максимум 8192 байта.
Загрузка и запуск
После завершения всех предыдущих шагов. Вы можете создать и загрузить эскиз Arduino на эталонную настраиваемую панельную плату следующим образом:
- Убедитесь, что Инструменты> Метод загрузки: установлено на SWD .
- Нажмите кнопку Загрузить или выберите Загрузить в меню Sketch .
После успешного программирования платы вы должны увидеть что-то вроде следующего вывода в консоли Arduino IDE:
------------------------------------------------ -------------------
STM32CubeProgrammer v2.2.0
-------------------------------------------------- -----------------
ST-LINK SN: 066AFF535550755187255039
ПО ST-LINK: V2J34M25
Напряжение: 3,27 В
SWD частота: 4000 кГц
Режим подключения: при сбросе
Режим сброса: аппаратный сброс
ID устройства: 0x440
Название устройства: STM32F05x / F030x8
Размер флэш-памяти: 64 КБайт
Тип устройства: MCU
Процессор устройства: Cortex-M0
Программирование памяти ...
Открытие и разбор файла: Blank_Template.ino.bin
Файл: Blank_Template.ino.bin
Размер: 11056 Байт
Адрес: 0x08000000
Стирание памяти, соответствующей сегменту 0:
Стирание секторов внутренней памяти [0 10]
Выполняется загрузка:
Загрузка файла завершена
Время, прошедшее во время операции загрузки: 00: 00: 00.982
ЗАПУСКНАЯ программа ...
Адрес: 0x8000000
Приложение запущено
Начало работы выполнено успешно
Другие методы программирования
Можно запрограммировать эталонную пользовательскую панель напрямую с помощью программного обеспечения STM32 Cube Programmer от STMicro или любого другого совместимого программного обеспечения для программирования / встроенного отладчика (т.е.д .: OpenOCD), однако необходимо будет установить наборы инструментов самостоятельно и собрать прошивку с нуля.
Информация низкого уровня о протоколе связи с основной платой будет предоставлена позже.
4.3. Программирование с использованием Arduino IDE
Программирование A-Star 328PB из Arduino IDE. |
---|
A-Star 328PB поставляется с предварительно загруженным последовательным загрузчиком TTL, совместимым с Arduino (который использует 0.5 КБ флэш-памяти, оставляя 31,5 КБ для пользовательской программы). Мы предоставляем программную надстройку, которая позволяет вам программировать плату из интегрированной среды разработки (IDE) Arduino. Arduino IDE – это кроссплатформенное приложение с открытым исходным кодом, которое объединяет редактор кода C ++, компилятор GNU C ++ и утилиту для загрузки программ.
В этих инструкциях предполагается, что вы уже запитали A-Star 328PB (см. Раздел 4.1) и подключили его последовательный интерфейс к компьютеру с помощью последовательного адаптера (см. Раздел 4.2).
- Загрузите Arduino IDE со страницы загрузки Arduino, установите и запустите. Эти шаги были протестированы с Arduino IDE 1.8.5, поэтому мы рекомендуем использовать версию 1.8.5 или новее.
- В среде Arduino IDE откройте меню File (Windows / Linux) или меню Arduino (macOS) и выберите «Настройки».
- В диалоговом окне «Настройки» найдите текстовое поле «Дополнительные URL-адреса диспетчера плат» (выделено на рисунке ниже). Скопируйте и вставьте в это поле следующий URL:
https: // файлы.pololu.com/arduino/package_pololu_index.json
Если в поле уже есть другие URL-адреса, вы можете добавить их через запятую или , нажав кнопку рядом с полем, чтобы открыть диалоговое окно ввода, в котором вы можете добавьте URL-адрес в новую строку.
Добавление индекса Boards Manager для плат Pololu в диалоговом окне настроек Arduino IDE. |
---|
- Нажмите кнопку «ОК», чтобы закрыть диалоговое окно «Настройки».
- В меню «Инструменты »> «Плата » выберите «Диспетчер плат…» (вверху меню).
- В диалоговом окне «Диспетчер плат» найдите «Контроллеры Pololu A-Star».
- Выберите в списке запись «Контроллеры Pololu A-Star» и нажмите кнопку «Установить».
- После завершения установки нажмите кнопку «Закрыть», чтобы закрыть диалоговое окно Boards Manager.
- В меню «Инструменты »> «Плата » выберите пункт «Pololu A-Star 328PB».Если вы не видите записи A-Star в меню Board, попробуйте прокрутить меню с помощью стрелок вверху и внизу и попробуйте перезапустить Arduino IDE.
Выбор Pololu A-Star 328PB в меню плат. |
---|
- После выбора A-Star 328PB должно появиться меню «Инструменты »> «Версия ». В этом меню выберите запись, соответствующую вашей доске.
Выбор правильной версии A-Star 328PB в меню «Версия». |
---|
- В меню «Инструменты »> «Порт » выберите порт для последовательного адаптера. Если вы используете Pololu USB AVR Programmer v2, вы должны выбрать его порт TTL.
- Откройте пример «Blink» Arduino, который можно найти в разделе Файл> Примеры> 01.Basics> Blink . Код в этом примере будет мигать желтым светодиодом. Когда вы выбираете пример Blink, откроется новое окно Arduino IDE. Можно закрыть первое окно.
Выбор примера Blink в среде Arduino IDE. |
---|
- Нажмите кнопку «Загрузить», чтобы скомпилировать эскиз и загрузить его в устройство. Если все пойдет правильно, вы увидите, что в нижней части окна появится сообщение «Готово». Если вы видите сообщение об ошибке, обратитесь к разделу «Устранение неполадок при загрузке» ниже.
Загрузка скетча в A-Star с помощью Arduino IDE.
- Если вы загрузили скетч Blink, желтый светодиод должен мигать каждые две секунды. Однако мы поставляем A-Star 328PB с тем же примером, уже запрограммированным на него, поэтому вы можете не убедиться, что что-то изменилось. Попробуйте изменить значения задержки в скетче на что-то другое и загрузить снова, чтобы посмотреть, можно ли изменить скорость светодиода.
После того, как вы успешно запрограммируете свое устройство в среде Arduino IDE, вы можете использовать множество ресурсов, чтобы узнать больше:
- См. Раздел 4.4 для получения информации о поддержке ATmega328PB в Arduino IDE.
- В среде Arduino IDE есть много примеров, которые могут работать на A-Stars.
- На веб-сайте Arduino есть Справочник по языку, вики под названием The Arduino Playground и другие ресурсы.
- ATmega328PB очень похож на ATmega328P, используемый на таких платах, как Arduino Uno, поэтому вы можете поискать в Интернете соответствующие проекты, использующие одну из этих плат. Практически любой код, работающий на ATmega328P, будет работать и на ATmega328PB.
Устранение неполадок при загрузке
Если вы получаете ошибки при загрузке скетча в Arduino IDE, попробуйте следующее:
- Убедитесь, что A-Star 328PB включен (см. Раздел 4.1). Светодиод питания должен гореть.
- Убедитесь, что последовательный интерфейс A-Star подключен к последовательному адаптеру (см. Раздел 4.2) и что последовательный адаптер подключен к вашему компьютеру. Контакты GND, RX, TX и D / R на A-Star должны быть подключены к последовательному адаптеру.
- Убедитесь, что вы выбрали правильную плату в меню «Доска». Вы можете посмотреть на цвет светодиода питания, чтобы определить, какая у вас плата, если вы не уверены (см. Раздел 3).
- Убедитесь, что вы выбрали правильный порт для вашего последовательного адаптера в меню порта Arduino IDE. Если вы используете Pololu USB AVR Programmer v2 в качестве последовательного адаптера, вы можете проверить, что вы подключаетесь к правильному порту, открыв утилиту настройки программатора и убедившись, что имя «TTL-порт», показанное там, соответствует выбору в Arduino IDE Меню порта.
- Если у Arduino IDE возникают проблемы с подключением к последовательному адаптеру, попробуйте отключить адаптер от компьютера, закрыть все программы, которые могут использовать последовательный порт, перезапустить Arduino IDE, а затем снова подключить адаптер.
- Попробуйте нажать кнопку сброса на A-Star 328PB, чтобы проверить, установлен ли загрузчик и работает ли он. Вы должны увидеть, как желтый светодиодный индикатор пользователя быстро мигнет три раза, а затем светодиод должен погаснуть на следующую секунду, пока загрузчик ожидает последовательных команд.Если этот тест не прошел, возможно, проблема с вашим источником питания или возможно, что загрузчик был удален. Если вы ранее программировали A-Star 328PB с помощью интерфейса ISP, то загрузчик, вероятно, был стерт, и вам нужно будет снова записать его, как описано в Разделе 5.
- Посмотрите на пользовательский светодиод A-Star 328PB после нажатия кнопки загрузки. Если вы видите, что он быстро мигает три раза, а затем выключается хотя бы на секунду, это, скорее всего, означает, что ваш последовательный адаптер смог перезагрузить плату и запустить загрузчик.
- Попробуйте выполнить тест с обратной связью, чтобы убедиться, что ваш последовательный адаптер работает: отсоедините последовательный адаптер от A-Star, затем подключите его линию TX к линии RX. Откройте монитор последовательного порта в среде Arduino IDE, введите несколько букв в поле ввода вверху и нажмите «Отправить». Вы должны увидеть, что буквы, которые вы вводите, появятся в области вывода ниже, что означает, что последовательный адаптер получил те же буквы. Если тест обратной связи завершился неудачно, возможно, вы подключились к неправильному последовательному порту или последовательный адаптер неисправен.
- В диалоговом окне настроек Arduino IDE установите флажок «Загрузить» рядом с «Показать подробный вывод во время». В следующий раз, когда вы попытаетесь загрузить, Arduino IDE покажет вам более подробную информацию о том, что происходит.
Просмотр книг: Компьютеры / Программирование / Открытый исходный код
Перейти к основному содержаниюГлавное меню
- Главная
- О нас
- История BTC
- Персонал
- Часы
- High Alpine Coffee
- Реестры и списки пожеланий
- BTC Press
- Политика отправки
- Корпоративные подарки
- BTC в новостях
- Banner Photo
- Книги
- Цифровые аудиокниги
- Выбор персонала
- Обзор книг по жанрам
- Региональные книги
- Курируемые коллекции
- Местные авторы
- Только для подростков и подростков
- Некнижные предметы
- Подарочные сертификаты
- Карты
- Журналы и пустые книги
- Плакаты
- Журналы
- Принадлежности для чтения
- Игры и головоломки
- Видео
- События
- Предстоящие события
- Текущие
- Ноэль Найт
- Mountainfilm Reading Frenzy
- Extra Cre dit
- Indiebound
- Книжные клубы
- Победители наград
- Поэма в день
- Летние списки чтения
- Замечательные ссылки
- Свяжитесь с нами
- Корзина для покупок
- Мой аккаунт
Вы здесь
- Книги
- »Просмотр книг
Форма поиска
Поиск
- Расширенный поиск
Компьютеры / Программирование / Открытый исходный код
<< Назад- Алгоритмы
- Игры
- Macintosh
- Microsoft
- Мобильные устройства
- Объектно-ориентированный
- Открытый исходный код
- Параллельный
Программирование Arduino Fio
www.domko.ruwww.electronshik.ru Arduino Fio Программирование ATmega328P на Arduino Fio strong > поставляется с предварительно записанным загрузчиком, который позволяет загружать в него новый код без использования внешнего аппаратного программатора. Он обменивается данными с использованием исходного протокола STK500 (ссылка, файлы заголовков C). Есть два способа загрузки новых эскизов в Arduino Fio : вы можете использовать FTDI USB-to -плата последовательного кабеля или переходника с USB на последовательный порт; или вы можете запрограммировать его по беспроводной сети через пару радиомодулей XBee.Если вы только начинаете пользоваться радиостанциями XBee, полезно немного узнать о них, прежде чем пытаться программировать беспроводное соединение. Это введение может помочь. Вы также можете обойти загрузчик и запрограммировать ATmega328P с помощью внешнего программатора; подробности см. в этих инструкциях. Программирование на проводе Как и все платы Arduino , Arduino Fio можно запрограммировать с помощью Программное обеспечение Arduino (загрузить).Если вы новичок в Arduino , см. Руководство по началу работы, справочные материалы и руководства. Fio не имеет встроенного адаптера USB-последовательный порт, поэтому, если вы собираетесь программировать его через USB, вам понадобится адаптер. Любой из них будет работать хорошо: кабель FTDI 3,3 В, доступный на Adafruit.com, адаптер Sparkfun FTDI Basic Breakout. Он имеет ту же конфигурацию контактов, что и кабель FTDI. Для программирования Fio с помощью кабеля FTDI или адаптера с с той же конфигурацией контактов, прикрепите ряд штыревых разъемов к кабелю или адаптеру следующим образом: Затем подключите разъемы к контактам FTDI на Fio :
A Язык для Arduino и Pi
Sniff, язык, основанный на Scratch, на котором вы пишете обычный текстовый код, а не перетаскиваете блоки для создания программ, достиг Beta 8.
Sniif описывается как:
– это язык программирования, похожий на Scratch, который разработан, чтобы помочь Scratcher плавно перейти от Scratch к более традиционным языкам. Они могут начать писать программы без необходимости изучать новый язык, потому что Sniff основан на Scratch. Они узнают немного больше о переменных, компиляции, синтаксических ошибках (!) И могут весело провести время, управляя реальным оборудованием, пока они это делают.
Его веб-сайт был запущен в феврале 2014 года с бета-версией 3, которая поддерживала Mac, Linux (x86) и Arduino Uno.Настоящая идея состоит в том, чтобы обеспечить следующий шаг для энтузиастов Scratch-пользователей, которым в противном случае пришлось бы перейти на более сложные текстовые языки, такие как Python:
.«Так почему они не двигаются дальше? Потому что они готовы написать SCRATCH !!!! . Они знают блоки Scratch, они знают управляющие структуры, они знают модель обмена сообщениями. Они могут создавать Scratch программы без ссылки на палитру блоков, потому что они программисты Scratch. Python (или любой другой язык), выглядит иначе, имеет другой синтаксис – как кто-то может помнить Python, когда все, чему их учили, является Scratch.”
ВBeta 4 улучшена поддержка Raspberry Pi, и каждая последующая бета-версия шла дальше в том, что касается версий Arduino и устройств, с которыми пользователи могут работать. В последней версии добавлена поддержка:
- Gamebuino
- Пунш, хотя боб (не совсем закончен)
- SIM900 Экран мобильного телефона
Beta 8 также имеет псевдоним устройства. Примечания к выпуску объясняют:
Устройства ранее определялись по их типам устройств, поэтому, если вы создали устройство dht, оно называлось dht.Это по-прежнему работает, поэтому вы можете продолжать работу, как и раньше, но мы добавили возможность присвоения имен устройствам, чтобы вы могли:
сделать прибор термометра dht11
сделать дисплей жк-устройство
Это означает, что вы можете заменить ds18 на dht11 или lcdi2c на обычный lcd, просто изменив объявление, а не весь код. Однако мы также воспользовались возможностью переименовать некоторые устройства. Раньше мы старались, чтобы имена устройств были «осмысленными», поэтому, например, устройство ds1307 называлось clock.Теперь вы можете называть свои собственные устройства, мы можем дать устройствам более конкретные имена, а затем вы дадите им свои собственные понятные имена: «make clock ds1307 device». Если вам нужен другой тип часов (например, устройство nativeClock), вы можете выбрать его для себя.
Из вышесказанного ясно, что Sniff хорош в возиться с гаджетами. Однако его основная концепция – помочь тем, кто научился Scratch перейти к обычному «письменному» языку, и начиная с Beta 5 он добавил устройство Minecraft, чтобы его пользователи могли программировать версию Minecraft для Raspberry Pi.
Руководство программиста по царапинам 1.4
ВыпущенScratch 2.0 – используйте его в браузере
Руководство программиста по царапинам 2
Научим детей программировать!
Чтобы получать информацию о новых статьях на I Programmer, установите панель инструментов I Programmer, подпишитесь на RSS-канал, подпишитесь на нас в Twitter, Facebook, Google+ или Linkedin или подпишитесь на нашу еженедельную новостную рассылку.
Комментарии
Добавление комментариев или просмотр существующих комментариев с помощью Disqusили отправьте свой комментарий по адресу: [email protected]
C3PO или C3P0? #Commodore # C64 @pagetable «Adafruit Industries – Создатели, хакеры, художники, дизайнеры и инженеры!
Прекратите макетирование и пайку – немедленно приступайте к изготовлению! Circuit Playground от Adafruit забита светодиодами, датчиками, кнопками, зажимами из кожи аллигатора и многим другим.