Arduino Leonardo — это старший брат Arduino Uno, на котором установлен микроконтроллер ATmega32U4. Главные отличия Leonardo от Uno, которые могут быть полезны нам с вам — начинающим робототехникам — это наличие дополнительных прерываний, аналоговых входов и поддержки HID.
Подробнее про HID мы поговорим в отдельном уроке. Вкратце, HID позволяет нам сделать с помощью платы Ардуино мышь или клавиатуру для компьютера.
Ардуино Лео-микро
Мы в RobotClass очень любим миниатюрные устройства. Наш любимый размер — 23×23 мм. Именно в такие габариты мы сумели вписать очень компактную Arduino Leonardo.
Разумеется, физически невозможно разместить на такой крохотной плате все контакты микросхемы 32U4. Однако, мы постарались вывести всё самое необходимое. Вот так выглядит распиновка нашей платы Лео-микро.
Это полностью готовая к работе плата. При подключении к компьютеру она определяется как Leonardo. Скетчи на неё загружаются точно также — через среду Arduino IDE. В общем, никаких отличий от классической Leonardo, кроме меньшего количества контактов.
Всё, что необходимо для данного урока, включая саму плату Лео-Микро можно приобрести в магазине RobotClass:
Подключение адресного светодиода к Лео-микро
В качестве примера подключим к Лео-микро модуль адресного светодиода.
Принципиальная схема
Внешний вид макета
На заметку. Контроллер Лео-микро имеет такие же размер и монтажные отверстия, как у линейки квадратных мини модулей от ROC. Взяв четыре латунные стойки и 8 самых маленьких болтиков с резьбой М3, можно скрепить вместе плату контроллера и модуль светодиодов. Ниже в видео можно заметить именно такой сборный модуль!
Пример программы можно взять из нашего урока, посвящённого как раз модулю адресных светодиодов:
#include <Adafruit_NeoPixel.h>
#define PIN 6 // мы подключили модуль к контакту №6
#define NUMPIXELS 4 // количество светодиодов в модуле
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
byte state = 0;
void setup() {
pixels.begin(); // инициализация библиотеки
}
void loop() {
for(int v=0; v<255; v+=15){
pixels.clear();
if( state ){
pixels.setPixelColor(0, pixels.Color(v,0,255-v));
pixels.setPixelColor(2, pixels.Color(v,0,255-v));
} else {
pixels.setPixelColor(1, pixels.Color(v,0,255-v));
pixels.setPixelColor(3, pixels.Color(v,0,255-v));
}
state = !state;
pixels.show();
delay(200);
}
for(int v=0; v<255; v+=15){
pixels.clear();
if( state ){
pixels.setPixelColor(0, pixels.Color(255-v,v,0));
pixels.setPixelColor(2, pixels.Color(255-v,v,0));
} else {
pixels.setPixelColor(1, pixels.Color(255-v,v,0));
pixels.setPixelColor(3, pixels.Color(255-v,v,0));
}
state = !state;
pixels.show();
delay(200);
}
for(int v=0; v<255; v+=15){
pixels.clear();
if( state ){
pixels.setPixelColor(0, pixels.Color(0,255-v,v));
pixels.setPixelColor(2, pixels.Color(0,255-v,v));
} else {
pixels.setPixelColor(1, pixels.Color(0,255-v,v));
pixels.setPixelColor(3, pixels.Color(0,255-v,v));
}
state = !state;
pixels.show();
delay(200);
}
}
Для работы программы потребуется библиотека Adafruit_NeoPixel, которую вы легко сможете скачать через менеджер библиотек в Arduino IDE.
Программа не делает ничего хитрого, она просто заставляет светодиоды плавно менять цвет.
Если нужно сделать что-то очень миниатюрное, то плата Лео-микро будет самым подходящим вариантом. Всем роботам, успехов!