Очень маленькая Arduino Leonardo от RobotClass

Arduino Leonardo — это старший брат Arduino Uno, на котором установлен микроконтроллер ATmega32U4. Главные отличия Leonardo от Uno, которые могут быть полезны нам с вам — начинающим робототехникам — это наличие дополнительных прерываний, аналоговых входов и поддержки HID.

Подробнее про HID мы поговорим в отдельном уроке. Вкратце, HID позволяет нам сделать с помощью платы Ардуино мышь или клавиатуру для компьютера.

Ардуино Лео-микро

Мы в RobotClass очень любим миниатюрные устройства. Наш любимый размер — 23×23 мм. Именно в такие габариты мы сумели вписать очень компактную Arduino Leonardo.

Arduino LEO-МИКРО ROC

Разумеется, физически невозможно разместить на такой крохотной плате все контакты микросхемы 32U4. Однако, мы постарались вывести всё самое необходимое. Вот так выглядит распиновка нашей платы Лео-микро.

Распиновка Arduino LEO-МИКРО ROC

Это полностью готовая к работе плата. При подключении к компьютеру она определяется как Leonardo. Скетчи на неё загружаются точно также — через среду Arduino IDE. В общем, никаких отличий от классической Leonardo, кроме меньшего количества контактов.

Подключение адресного светодиода к Лео-микро

В качестве примера подключим к Лео-микро модуль адресного светодиода.

Принципиальная схема

Подключение ws2812 к Лео-микро

Внешний вид макета

Подключение ws2812 к Лео-микро

На заметку. Контроллер Лео-микро имеет такие же размер и монтажные отверстия, как у линейки квадратных мини модулей от 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.

Программа не делает ничего хитрого, она просто заставляет светодиоды плавно менять цвет.

Если нужно сделать что-то очень миниатюрное, то плата Лео-микро будет самым подходящим вариантом. Всем роботам, успехов!

0

Изменено: