Arduino - это открытая платформа прототипирования, которая даже превосходит по популярности Raspberry Pi. Всего было продано более трех миллионов устройств, и это только оригинальных, не учитывая большое количество клонов и копий.
В отличие от Rapberry Pi, Arduino это не микрокомпьютер и на него невозможно установить операционную систему. Arduino - это микроконтроллер. В одной из предыдущих статей мы рассматривали как начать работать с Raspberry Pi. в этой же статье мы разберем начало работы Arduino, а также что вы можете сделать с помощью этого устройства.
Содержание статьи:
Что такое Arduino?
Как я уже сказал, Arduino - это микроконтроллер, для того чтобы быть микрокомпьютером ему не хватает многих компонентов. Он очень прост и гибок, поэтому подходит для разработки различных проектов.
Arduino воспринимает окружающую среду с помощью различных кнопок, датчиков и других сенсоров. Также можно воздействовать на окружение путем контроля светодиодов, моторов, сервоприводов и реле. Проекты Arduino могут оставаться автономными или взаимодействовать с программным обеспечением, установленным на компьютере. Они могут взаимодействовать с другими Arduino, Raspberry Pi, NodeMCU и любыми другими устройствами.
Микроконтроллер Arduino очень сильно упрощает процесс создания проекта, даже если вы раньше не делали ничего в сфере программируемой электроники. В сети есть тысячи руководств среди которых вы сможете найти то, что нужно.
В дополнение к простоте Arduino, эта плата стоит достаточно дешево и имеет открытый исходный код. Самая популярная модель arduino для начинающих - Arduino Uno, основная на микроконтроллере ATMEGA 16U2 от фирмы Atmel. Есть много различных моделей, которые отличаются размером, мощностью, спецификациями и другими параметрами.
Схемы публикуются под лицензией Creative Commons, поэтому опытные электронщики и производители могут делать свои версии Arduino, это приводит к очень низкой стоимости распространения устройств.
Что можно сделать c Arduino?
На основе Arduino можно создать огромное количество вещей. На их основе создаются 3D принтеры, квадрокоптеры, беспилотники, модели транспорта и многое другое. Arduino может получать данные от различных аналоговых датчиков, а значит, на его основе очень удобно делать различные сенсорные приборы.
Характеристики Arduino
Как я уже говорил, существует множество типов плат Arduino, но самая популярная из них - это Arduino Uno, именно на ней мы остановимся в этой статье. Вот ее характеристики:
- Процессор: ATmega16U2 16 МГц;
- Флеш память: 32 Кб;
- Оперативная память 2 Кб;
- Рабочее напряжение: 5 Вольт;
- Входное напряжение: 7-12 Вольт;
- Количество аналоговых входов: 6;
- Количество цифровых входов/выходов: 14;
- Количество выходов ШИМ: 6.
Спецификации могут показаться ничтожными по сравнению с характеристиками ПК, но помните, что Arduino - это всего лишь микроконтроллер, предназначенный для обработки намного меньшего количества информации, чем компьютер. Таких характеристик вполне достаточно для многих проектов электроники. Еще одна отличная особенность Arduino - это возможность использовать платы расширений. Например, вы можете даже добавить экран.
Что нам понадобится?
Перед тем как говорить о том, как пользоваться arduino, мы рассмотрим какие компоненты будут использоваться в этом руководстве. Устройств из списка должно быть достаточно, чтобы освоить основы работы с Arduino и понять делать другие проекты:
- Плата Arduino Uno;
- Кабель USB AB;
- Макетная плата;
- Фоторезистор;
- Пъезо-динамик;
- Резистор на 220 ом;
- Резистор на 1000 ом;
- Резистор на 10 000 ом;
- Кнопка;
- Провода;
Если у вас нет резистора с нужным сопротивлением, желательно брать похожие со значениями как можно ближе. Рассмотрим детальнее некоторые из компонентов.
Макетная плата - используется для создания прототипов электронных схем и обеспечивает временное соединение компонентов вместе. Фактически это блок пластика с отверстиями, в которые могут быть вставлены провода. Отверстия расположены в рядах и группах. Здесь не используется пайка, поэтому вам будет очень просто изменить схему. Она очень полезна для желающих освоить Arduino для начинающих.
Светодиоды - это очень дешевый источник света, причем достаточно яркого. Их можно приобрести по достаточно низкой цене или найти в старом оборудовании.
Фоторезистор - позволяет Arduino реагировать на изменение освещения. Вы можете использовать его, например, чтобы включить компьютер когда взойдет солнце.
Кнопка - обычный переключатель, который позволяет замкнуть цепь. Обычно кнопка нажата, только тогда, когда ваш палец ее держит, как только вы отпустите палец, кнопка вернется в исходное положение.
Пьезодинамик - небольшой, но очень дешевый динамик, который очень просто программировать. Звук от него очень плохой, но для небольших проектов этого достаточно.
Резистор - этот элемент ограничивает поток электроэнергии. Он очень дешевый и используется чаще всего в любительских и профессиональных схем. Назначение - защита компонентов от перегрузки, также защищают от короткого замыкания.
Провода - используются для соединения различных компонентов с помощью печатной платы.
Начало работы c Arduino
Перед началом работы с Arduino необходимо соединить устройство с вашим компьютером. Это позволяет писать код и сразу выполнять его в Arduino. Вы можете скачать среду разработки на официальном сайте. Выбирайте файл для своей операционной системы. В Windows вас ждет привычный установщик, затем программа будет готова к работе. В Linux все немного сложнее. Рассмотрим процесс на примере Ubuntu. Вы убедитесь, что использование Arduino очень просто.
Сначала необходимо установить библиотеки gcc-avr и avr-libc:
sudo apt install gcc-avr avr-libc
Если машина Java еще не установлена, ее тоже нужно настроить и установить:
sudo apt install openjdk-6-jre
Затем распакуйте загруженный архив и перейдите в папку с файлами:
tar xzvf arduino-x.x.x-linux64.tgz
$ cd arduino-1.0.1
Для запуска среды осталось выполнить:
./arduino
Вне зависимости от того, какую операционную систему вы используете, все это будет точно работать с оригинальной платой. Если вы приобрели клон, то, скорее всего, вам нужны еще и драйвера.
Теперь, когда среда установлена, нужно проверить как все работает. Самый простой способ сделать это - использовать приложение пример Blink.
В среде разработки Arduino откройте меню "File" > "Examples" > "1.Basics" > "Blink". Это пример мерцает диодом, расположенным на плате. После этого вы должны увидеть код программы:
Чтобы загрузить программу на ваше устройство выберите в меню "Tools" -> "Board" версию вашей платы, например, Arduino Uno:
Затем, в меню "Tools" -> "Serial Port" выберите свое устройство. В Windows оно будет выглядеть, например, COM3, на Mac или Linux - /dev/tty.usbmodem или что-то подобное.
Далее, нажмите кнопку "Upload" в левом верхнем углу вашей среды. Подождите несколько секунд и вы увидите, что RX и TX светодиоды на плате мигают. Если загрузка прошла успешно, то вы увидите сообщение "Done uploading".
Затем вы увидите, что диод на плате мерцает. Дальше поговорим про подключение светодиода arduino.
Мерцание светодиода
Мы заставили мерцать светодиод на плате Arduino. Теперь давайте заставим мигать внешний светодиод. Вот схема:
Подключите длинную ножку светодиода (положительную, анод) к резистору 220 Ом, а затем к цифровому контакту 7. Короткую ножку (отрицательную, катод) к земле, любому порту Arduino, обозначенному GND. Это очень простая цепь. Теперь сделаем чтобы светодиод включался и выключался. Резистор необходим для защиты от слишком большого тока, иначе плата сгорит.
Вот необходимый код:
void loop() { // put your main code here, to run repeatedly: digitalWrite(7, HIGH); // включить LED delay(1000); // wait 1 second digitalWrite(7, LOW); // выключить LED delay(1000); // wait one second }
Метод setup запускается всегда, когда включается Arduino. Здесь мы настраиваем основные переменные. Метод pinMode устанавливает режим OUTPUT для седьмого контакта. Он будет использоваться в качестве вывода. Без этой строки Arduino не буде знать что с ним делать.
Метод loop будет выполняться снова и снова, пока Arduino не будет отключен. Это очень хорошо работает для простых проектов. В методе digitalWrite мы передаем параметр HIGH чтобы включить светодиод и LOW через 1 секунду для отключения. Как только этот код будет завершен, Arduino запустит его сначала. Вы можете поэкспериментировать и изменить время между включением и отключением.
Добавление кнопки
Светодиод работает, а теперь давайте добавим на схему кнопку.
Кнопка должна располагаться в середине макета. Соедините верхнюю правую ногу с Pin 4, нижнюю правую - с резистором на 10 000 Ом и GND. Нижнюю левую ногу соедините с питанием 5V.
Вы можете удивиться, зачем кнопке резистор? Он здесь выполняет две задачи. Резистор связывает кнопку с GND или по нашему - нулем, это гарантирует, что не будет ложных срабатываний. Вторая цель - ограничение тока. Без него 5V будет без ограничений протекать к GND, случится короткое замыкание и плата сгорит.
Когда кнопка не нажата ток не идет. Когда мы нажимаем кнопку, ток от контакта 5V идет к GND. Цифровой контакт Pin4 может обнаружить это изменение. Вот код:
boolean buttonOn = false; // кнопка не нажата
void setup() { pinMode(7, OUTPUT); // контакт светодиода pinMode(4, INPUT); // Контакт кнопки }
void loop() { if(digitalRead(4)) { delay(25); if(digitalRead(4)) { //Если кнопка нажата на протяжении 25 миллисекунд: if(buttonOn) // меняем состояние кнопки buttonOn = false; else buttonOn = true; delay(500); // ждем пол секунды } } if(buttonOn) digitalWrite(7, LOW); // выключаем else digitalWrite(7, HIGH); // включаем }
В результате светодиод будет работать только пока вы держите кнопку. Для получения данных о состоянии кнопки используется метод directRead. Мы проверяем ее состояние, затем ждем секунд и снова проверяем ее состояние, чтобы убедиться, что кнопка нажата. Если она нажата, то меняем состояние флага buttonOn.
Добавляем датчик света
Дальше, давайте используем датчик света, чтобы замерять уровень освещенности и передать данные об этом на компьютер. Вот схема:
Поскольку датчик света уже сам по себе является резистором, то не имеет значения его полярность. Один контакт подключите к 5V через резистор 10 000 Ом, а другой к GND. Также подключите этот контакт к аналоговому выходу 0. Аналоговый вход нужно использовать потому что LDR - аналоговый датчик и для его чтения нужна специальная схема. Код:
int light = 0; // текущая освещенность
void setup() { Serial.begin(9600); //инициализация серийного порта }
void loop() { light = analogRead(A0); // читаем значение LDR
//Сообщаем информацию компьютеру if(light < 100) { Serial.println("Очень светло!"); } else if(light > 100 && light < 400) { Serial.println("Достаточно света!"); } else { Serial.println("Темно!"); } delay(500); //Ожидаем пол секунды }
Метод Serial.begin (9600) сообщает компьютеру, что вы хотите общаться с ним, со скоростью 9600. Скорость не важна, но Arduino и компьютер должны использовать одинаковые значения. Метод analogRead читает данные из датчика, а Serial.println отправляет их на компьютер.
Загрузите код и не отключайте USB кабель, так как через него будут передаваться данные. Откройте "Serial Monitor" в верхнем правом углу. Здесь вы увидите поступающие каждые 0,5 с сообщения. Измените код так, чтобы отправлять значения LDR.
Получение звука
Теперь проиграем звук с помощью пьезодинамика. Вот схема:
Схема почти такая же, как и для светодиода. Подключите контакт плюс к цифровому выходу 9 через резистор 220 Ом, а отрицательный контакт к GND. Код:
void setup() { pinMode(9, OUTPUT); // настройка PIN 9 в качестве вывода }
void loop() { tone(9, 1000); // включаем звук delay(1000); // ждем секунду noTone(9); // выключаем delay(1000); // ждем секунду }
В метод tone нужно передать цифровой контакт, в нашем случае - 9 и частоту звука, который мы будем генерировать. Попробуйте изменить код, чтобы получить другую частоту.
Выводы
Вот и все. Мы рассмотрели основные возможности и начало работы Arduino Uno. Надеюсь, вы увидели что создавать простые электронные проекты очень легко, а использование arduino очень интересно. Как только немного разберетесь, вы сможете создавать намного более сложные проекты. А вы уже использовали Arduino? Или только планируете? Какие проекты уже делали? Напишите в комментариях!
Источник: www.makeuseof.com
Очень и очень поверхностная статья!
Если кого заинтересует Arduino - отправляйтесь сюда: http://rus-linux.net/forum/viewtopic.php?f=5&t=4386
Полезная статья, большое спасибо!!!