Начиная обзор проектов и возможностей применения микроконтроллера Arduino Mega 2560 стоит рассмотреть характеристики этого устройства, поскольку именно они будут определять потенциальную область его применения.
Arduino Mega 2560 — это плата с микроконтроллером ATmega2560, работающем на частоте 16МГц. Она имеет 54 цифровых входа/выхода, 15 из которых могут работать в режиме ШИМ (PWM), 16 аналоговых входов, 4 аппаратных последовательных порта UART для связи с компьютером и другими устройствами, разъем USB, разъем для внешнего питания, ICSP header и кнопку Reset.
Основные технические характеристики:
Микроконтроллер | ATmega2560 |
Рабочее напряжение | 5V |
Входное напряжение (рекомендуемое) | 7-12V |
Входное напряжение (пределы) | 6-20V |
Цифровые разъемы ввода/вывода | 54 (из них 15 обеспечивают выход PWM / ШИМ, широтно-импульсной модуляции) |
Аналоговые разъемы ввода | 16 |
Постоянный ток на один разъем ввода/вывода | 20 mA |
Постоянный ток на один разъем ввода/вывода (3.3V) | 50 mA |
Flash-память | 256 KB из которых 8 KB используются на загрузчик |
SRAM | 8 KB |
EEPROM | 4 KB |
Частота | 16 MHz |
Встроенных индикаторных светодиодов (LED) | 13 |
Габаритные размеры (Длина х Ширина) | 101.52 mm х 53.3mm |
Вес | 37 g |
Чтобы начать работу с этим микроконтроллером, достаточно просто подать на плату питающее напряжение от источника питания, батарей или просто по кабелю USB компьютера.
ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ Arduino Mega 2560
№1. Настраиваемый таймер обратного отсчета
Таймер обратного отсчета на базе Arduino Mega 2560 является одним из органичных применений микроконтроллера для работы с дисплеем из 4-х 7-ми сегментных цифр. Таймер можно удобно настроить с помощью кнопок, а не путем загрузки измененного кода программы. Для работы таймера написан код, который упростит его использование и настройку. Этот код также может быть использован в других проектах с 4-значным 7-сегментным дисплеем. В частности, у него есть функция, которая отображает заданное число (0-9999) для заданного временного интервала. Такая функция действительно удобна, поскольку по умолчанию вы можете отображать только одну цифру за раз.
Для реализации этого проекта необходимы следующие компоненты:
Наименование | Количество, шт. | |
Микроконтроллер Arduino Mega 2560 | 1 | |
Дисплей с 4-мя 7-сегментными цифрами | 1 | |
Кнопки | 4 | |
Динамик | 1 | |
Соединительные провода | 21 | |
Макетная плата без пайки, полный размер | 1 |
Подробная инструкция по сборке проекта:
Схема соединений:
Источник: Adjustable Countdown Timer
№2. Arduino Biped (Малыш Dino)
Baby Dino - двуногий робот на базе Arduino. Для своего движения он задействует пять сервоприводов: по два для каждой ноги и один для головы. Он также использует ультразвуковой датчик для обнаружения препятствий и их избегания. А теперь посмотрим, как это сделать!
Для реализации этого проекта необходимы следующие компоненты:
Наименование | Количество, шт. | |
Микроконтроллер Arduino Mega 2560 | 1 | |
Батарея 9В | 1 | |
Ультразвуковой датчик SparkFun Ultrasonic Sensor - HC-SR04 | 1 | |
Серво-мотор SG90 Micro-servo motor | 5 |
Схема соединения элементов:
Итак, Малыш DINO — робот-динозавр, сделанный из картона (раскрой деталей прилагается в источнике). Он может двигаться на 2 конечностях, находить препятствия и обходить их справа или слева.
Для начала сборки убедимся, что все необходимые детали (из списка выше) есть в наличии и перейдём к сборке сервоприводов. Необходимо будет скачать программу, загрузить её на Arduino, присоединить сервоприводы согласно диаграмме и проверить их ориентацию. Далее необходимо скачать дизайн-макет, распечатать его на принтере на картоне и вырезать по контурам. Финальная сборка включает присоединение сервоприводов, присоединение ультразвукового сенсора, прокладку кабелей и подсоединение батареи питания. И это всё! Робот готов.
Автор проекта сообщает, что полная сборка занимает у него около 4-х часов.
Источник: Arduino Biped (Baby Dino)
№3. Выведем на дисплей график температуры
Вы когда-нибудь хотели профессионально отобразить данные на ЖК-дисплее? Этот проект направлен на то, чтобы позволить вам создать свой собственный персонализированный график данных, отображающий все, что вы хотите, за считанные секунды. В этом проекте создадим график, отображающий на TFT ЖК-дисплее значения температуры в реальном времени за секунды и хронологию за предыдущий период. Для индивидуальной подстройки — просто отредактируйте 2 переменные и выберите цвет вашего графика.
График будет отображать температуру в реальном времени, с интервалом в 6 секунд, значение будет отображаться точкой, точка будет соединена с другими точками линией. Секунды, прошедшие с момента запуска кода, будут отображаться на оси x с диапазоном значений на оси y.
Проект работает просто: Arduino Mega считывает значение датчика DHT 11 и сохраняет температуру в переменной, а затем отображает значение на настраиваемом графике. Вот диаграмма, иллюстрирующая обзор функций.
Для реализации этого проекта необходимы следующие компоненты:
Наименование | Количество, шт. | |
Микроконтроллер Arduino Mega 2560 | 1 | |
Датчик температуры и влажности DHT11 Temperature & Humidity Sensor (4 pins) | 1 | |
Дисплей 2,8" — Elegoo 2.8 inch TFT LCD Shield | 1 | |
Соединительные провода | 3 | |
Макетная плата (универсальная) | 1 |
Схема соединения элементов:
Порядок выполнения проекта:
Шаг 1: Комплектация компонентами.
В этом проекте для получения данных о температуре используется датчик температуры и влажности DHT 11, но можно использовать любой датчик.
Шаг 2: Соединение цепи.
Прикрепите датчик DHT 11 к Arduino Mega.
Шаг 3: Ввод кода
Код состоит из 3 основных частей:
- Настройка графика
- Считывание температуры
- Построение графика
Вы можете продолжить эксперименты с проектом, попробовать отредактировать константы originX, originY, sizeX и sizeY, чтобы изменить размер и положение вашего графика на экране. К основному эскизу прикреплен файл заголовка, он содержит цветовые коды некоторых цветов, попробуйте изменить цвет диаграммы и полос. Вот и все, ваш персональный график готов.
Источник: TFT Graphing: Live History Graphs
№4. Управление электроникой с помощью смартфона
Чтобы отрегулировать яркость вашей настольной лампы / светильников в студии, если вы фотограф, скорость потолочного вентилятора, отрегулировать громкость вашего домашнего кинотеатра или контролировать скорость двигателя, вам нужно физически отрегулировать потенциометр / диммер или сдвинуть/повернуть что-нибудь подобное. Но можно ли это сделать с помощью смартфона или планшета? Положительный ответе на этот вопрос и реализует данный проект, объединяющий в единую систему радиопередатчик, Android-смартфон и Arduino.
Для управления яркостью устройств Вам просто нужно вращать свой смартфон или планшет на Android (не нужно его разблокировать, не нужно настраивать какой-либо ползунок), просто держите телефон на столе и вращайте его.
Давайте начнем!
Шаг 1: Необходимые материалы
Для реализации этого проекта необходимы следующие компоненты:
Наименование | Количество, шт. | |
Микроконтроллер Arduino Mega 2560 | 1 | |
Плата расширения 1Sheeld | 1 | |
Светодиоид (универсальный) | 1 | |
Резистор <1кОм | 3 | |
Шаг 2: О плате расширения 1SHEELD
На данной плате расширения построен веь этот проект. Если вы знаете об Arduino и его платах расширения, таких как GSM и WIFI, то покупка каждой из них для использования стоит не дешево. Чтобы заменить их всех одной, египетские изобретатели создали универсальную плату расширения, которая подключается к вашему смартфону Android через Bluetooth и использует все его датчики и возможности подключения. Вы также можете использовать более одной платы расширения одновременно, например GSM, WIFI, акселерометр, гироскоп и т.д.
1sheeld - http://www.1sheeld.com/
Шаг 3: Правильно установите 1sheeld
Шаг 4: Загрузите библиотеку 1sheeld
Вам необходимо скачать и разместить библиотеку 1sheeld отсюда - https://github.com/Integreight/1Sheeld-Arduino-Lib ...
А затем извлеките её в нужное место в библиотеках arduino:
Шаг 5: Код
Откройте IDE Arduino, затем скопируйте и вставьте этот код.
Код основан на 10 простых командах analogWrite.
Код:
#include <OneSheeld.h>
int ledPin1 = 11;
float xOrientation;
void setup() {
/* Start communication. */
OneSheeld.begin();
pinMode(ledPin1,OUTPUT);
}
void loop() {
// Check X-axis orientation.
xOrientation = OrientationSensor.getX();
// Map orientation to brightness
if(xOrientation < 102) analogWrite(ledPin1,xOrientation * 2.5);
// Or turn off the LED if the orientation is > 125 degrees
else analogWrite(ledPin1, 0);
}
Шаг 6: Загрузите код
Откройте IDE arduino, скопируйте, вставьте этот код и загрузите.
Шаг 7: Загрузите приложение 1sheeld
Загрузите его из Playstore, откройте, включите Bluetooth, подключитесь к 1sheeld и затем выберите Orientation Shield.
Шаг 8: Припаиваем резистор к светодиоду
Припаяйте резистор к светодиоду, а затем прикрепите светодиод к Arduino к контакту №. 11. (вы можете изменить пин-код в коде)
Шаг 9: Дальнейшее использование
Вы можете увидеть работу в реальном времени на видео:
Теперь вам решать, что вы хотите контролировать, например, если вы хотите включить свет, то можете использовать реле, если вы хотите отрегулировать яркость лампы, то можете сделать диммер с помощью MOSFET, как показано в этой инструкции. Таким образом, вы сможете управлять скоростью потолочного вентилятора, мощного галогена или обогревателя.
Будьте осторожны при подключении любой индуктивной нагрузки к цепи, не забудьте при этом использовать обратный диод.
Источник: Control electronics by sliding your phone
№5. Самодельный музыкальный синтезатор с использованием Scratch software и Еvive
В этом проекте предлагается создать простое детское пианино с 8 клавишами. Оно программируется в Evive с помощью программного обеспечения mblock.
Давайте начнем!
Шаг 1: Необходимые материалы
Для реализации этого проекта необходимы следующие компоненты:
Наименование | Количество, шт. | |
Микроконтроллер Arduino Mega 2560 | 1 | |
STEMpedia evive | 1 | |
Макетная плата (универсальная) | 1 | |
Соединительные провода (комплект) | 1 | |
Резистор 1кОм | 8 | |
Кнопка 12мм — SparkFun Pushbutton switch 12mm | 8 |
Шаг 2: Установка программного обеспечения Scratch на ваш компьютер
Прежде всего вам необходимо установить программу mblock на свой компьютер. Вы можете скачать его с официального сайта: http://www.mblock.cc/download
Шаг 3: Изготовление импровизированной клавиатуры
Что нужно сделать:
- Возьми макетную доску. Поместите кнопки между двумя наборами отверстий, как показано на фото.
- Есть две стороны кнопки слева и справа. Подайте питание на левую сторону 5 вольт, вы можете сделать это, подав 5 вольт на боковой шину макетной платы.
- Заземлите правую сторону с помощью резистора высокого номинала.
- Теперь вам нужно ввести данные с кнопки, что вы можете сделать, присоединив правую сторону переключателя к цифровым контактам Evive.
- Повторите эти шаги, чтобы настроить переключатель 8.
- Подключите эти переключатели к цифровым контактам 2-9 Evive.
Шаг 4: Используемые тона
Мы использовали 8 звуков различной частоты в этом проекте.
Шаг 5: Сборка проекта в mblock
Теперь схема готова, и нам просто нужно запустить проект на mblock. При открытии скретча вы увидите интерфейс скретчинга по умолчанию. Дополнительные разъяснения смотрите в видео.
Шаг 6: Загрузите Evive и посмотрите, как он работает
После того, как вы полностью создали проект, вам необходимо загрузить свой проект на Evive.
Подключите Evive с помощью USB-кабеля. Затем в mblock перейдите к подключению, а затем к последовательному порту вы увидите COM #, который является портом, к которому подключен ваш Evive. После подключения к Evive загрузите в него проект после сохранения проекта, нажав кнопку «загрузить в arduino» справа.
Шаг 7: исследуйте Evive
Evive - это встраиваемая платформа с открытым исходным кодом для всех возрастных групп, которая помогает им учиться, создавать, отлаживать свои робототехнические, встраиваемые и другие проекты. Evive, в основе которой лежит Arduino Mega, предлагает уникальный визуальный интерфейс на основе меню, который устраняет необходимость многократно перепрограммировать Arduino. Evive предлагает мир устройств IoT, сенсорной поддержки и поддержки исполнительных механизмов в одном небольшом портативном устройстве.
Источник: DIY piano using scratch and evive
№6. Автономный Arduino Mega Track-робот
Автор этой идеи искал веселый проект на выходные, чтобы можно было использовать запасные части, которые были у него в наличии дома. Копаясь в своем ящике для хлама, он нашел гусеничное шасси, которое купил незадолго до этого на Amazon только потому, что оно выглядело круто. Тогда он решил, что однажды им воспользуется. Судя по всему, это был именно тот день!
Автор проекта в свое время построил несколько роботов с колесами и ногами, но никогда не работал с гусеницами для привода. Он подумал, что будет интересно построить автономного гусеничного робота. Так и начался этот проект!
Поскольку, как упоминалось, опыт сборки роботов уже был, то нашлись и Arduino Mega, а так же плата управления моторами Arduino Motor Shield Rev3, так что все основные комплектующие были уже на руках!
Далее был закреплен Arduino Mega и батарейный отсек, поставляемый с шасси, с помощью двустороннего скотча. Потом присоединена плата расширения Arduino Motor Shield Rev3. Плата может управлять двумя двигателями постоянного тока, используя несколько цифровых контактов на Arduino.
Теперь, когда была собрана система привода, потребовались датчики, чтобы робот не наезжал на препятствия. В проекте применяется четыре ИК-датчика Sharp с диапазоном действия 10-80 см. Они размещаются для работы в четырех направлениях и их необходимо прикрепить к роботу, поэтому было решено собрать сенсорный подуль на макетной плате. Для этого датчики были смонтированы на пустой плате и закреплены с помощью клея Gorilla Glue.
Чтобы упростить калибровку и добавить возможность устранения неполадок с кодом Arduino на плате датчика, был добавлен OLED-дисплей для отображения показаний датчика и текущего направления робота.
Также было решено добавить на плату датчик мини-вольтметр, чтобы можно было контролировать напряжение батареи и узнавать заранее о разрядке литиевых батарей типа 18650. Вот вид сверху готового робота, готового к тестированию.
Был написан код для Arduino, чтобы получить разумный отклик от датчиков и ожидаемую реакцию двигателей. В процессе испытаний были некоторые проблемы на разных поверхностях пола, и один из двигателей явно вращался немного медленнее, чем другой. Поэтому были внесены несколько поправок в код и движения робота стабилизировались.
Возможно, движения и траектории всё еще не идеальны, но система довольно хорошо помогает избежать столкновений.
Для реализации этого проекта понадобились следующие компоненты:
Наименование | Количество, шт. | |
Микроконтроллер Arduino Mega 2560 | 1 | |
Arduino Motor Shield Rev3 | 1 | |
DFRobot Black Gladiator - Tracked Robot Chassis | 1 | |
ИК-датчики Sharp с диапазоном действия 10-80 см SHARP GP2Y0A21YK0F | 4 | |
Модуль дисплея ElectroPeak 0.96" OLED 64x128 Display Module / 0.96" SSD1306 128X64 Yellow & Blue OLED LCD Display with I2C IIC SPI Serial | 1 | |
Конденсатор Capacitor 100 µF | 1 | |
Мини-вольтметр Mini 3-Wire | ||
Держатель для 2-х батарей Battery Holder, 18650 x 2 |
Источник: Autonomous Arduino Mega Track Robot
Ну и в завершение данной статьи, давайте коснёмся проекта для автоматизации дома.
№7. Проект полной домашней автоматизации на базе Arduino с голосовым управлением и беспроводной связью
Для реализации этого проекта понадобились следующие компоненты:
Наименование | Количество, шт. | |
Микроконтроллер Arduino Mega 2560 | 1 | |
Arduino Nano R3 | 1 | |
RFID IC, 13.56 MHz | 1 | |
Модуль HC-05 Bluetooth Module | 3 | |
Модуль дисплея ElectroPeak 0.96" OLED 64x128 Display Module / 0.96" SSD1306 128X64 Yellow & Blue OLED LCD Display with I2C IIC SPI Serial | 1 | |
Датчик температуры | 1 | |
ИК пульт ДУ (универсальный) | 1 |
Система управляет газовым котлом обогревателя, освещением в квартире, вентилятором и медиаплеером.
Есть два автономных модуля на базе Arduino, которые обмениваются данными по синхронизированному каналу Bluetooth - автоматически подключаются и синхронизируются друг с другом, поэтому на экранах нет устаревшей или отсутствующей информации.
Центральный блок принимает команды и переключает соответствующее локальное устройство или пересылает команду на блок термостата для выполнения.
Вся система может быть заблокирована с помощью RFID-карты — для нее был разработан полнофункциональный обработчик RFID-карт.
Центральный блок оборудован системой голосового взаимодействия: произносится приветственное сообщение, когда пользователь подключается, а при попытке несанкционированноых действий система смеётся, например, если пытаться разблокировать её, например, с помощью карты RFID, не указанной в списке.
На этом видео подробно показаны все фукнции системы:
Источник: Voice Controlled Full Home Automation - Without Wires
Несколько проектов, с которыми мы познакомились в этой статье, показывают насколько разнообразно можно использовать микроконтроллер Arduino Mega 2560 в сочетании с платами расширения и дополнительным аппаратным и программным обеспечением. По большому счёту, можно сделать вывод, что сложность проектов определяется исключительно вашим воображением.