Uno Slot: распиновка, схема подключения и программирование

Uno Slot — платформа из линейки Slot для быстрой разработки компактных устройств из Troyka-модулей.

Плата выполнена на микроконтроллере ATmega328P, что означает полную программную совместимость с Arduino Uno.

Общие сведения

Платформа Uno Slot содержит на борту всё необходимое для быстрой и комфортной работы: 8-битный микроконтроллер ATmega328P, USB-разъём для программирования и отладки программы, 15 цифровых входов/выходов, 4 адресных RGB-светодиода WS2812B и две служебные кнопки.

Uno Slot позволяет подключить до четырёх Troyka-модулей. Используемые пины для связи сенсоров и модулей с Uno Slot зависят от конкретного устройства, точнее: от типа его коммуникации, сигнала и протокола. Обратитесь к странице с обзором сенсоров, чтобы определить как организована коммуникация с каждым устройством. После чего можно приступать к работе с модулем.

Программирование через Arduino IDE

Установка и настройка

  1. Подключите плату к ПК или ноутбуку по USB.
  2. Для начала работы с платформой Uno Slot на языке C++ скачайте и установите на компьютер интегрированную среду разработки Arduino IDE.
  3. Плата Uno Slot по программной части аналогична Uno, поэтому в программе смело выбирайте: Инструменты Плата Arduino Uno.

После выполненных действий платформа Uno Slot готова к программированию через Arduino IDE.

Подробности о функциях и методах работы Uno Slot на языке C++ читайте на Arduino Core’s.

Пример работы

В качестве примера повторим первый эксперимент «Маячок» из набора Матрёшка. На плате уже есть встроенный пользовательский светодиод, подключенный к 13 пину микроконтроллера.

blink.ino
void setup() {
  // initialize digital pin LED_BUILTIN as an output
  pinMode(LED_BUILTIN, OUTPUT);
}
 
void loop() {
  // turn the LED on (HIGH is the voltage level)
  digitalWrite(LED_BUILTIN, HIGH);
  // wait for a second  
  delay(1000);
  // turn the LED off by making the voltage LOW                    
  digitalWrite(LED_BUILTIN, LOW);
  // wait for a second
  delay(1000);
}

После загрузки встроенный светодиод 13 начнёт мигать раз в полсекунды. Это значит всё получилось и можно смело переходить к экспериментам на Uno Slot.

Как управлять адресными светодиодами на UNO slot

Четытре светодиода подключены ко второму цифровому пину. Управлять ими можно как обычной адресной светодиодной лентой.

Вы сами можете выбрать библиотеку для управления. Например скетч для включения светодиодов с помощью библиотеки "fastled".

fastled.ino
// Подключаем библиотеку FastLED
#include <FastLED.h>
 
// Указываем, к какому порту подключен вход ленты DIN
#define LED_PIN 2
// Указываем, какое количество пикселей у нашей ленты
#define NUM_LEDS 4
// Устанавливаем последовательность цветов
#define COLOR_ORDER GRB
// Указываем тип светодиодного чипсета
// Библиотека поддерживает APA102, WS2811, WS2812, WS2813
// TM1809, TM18094,TM1803, UCS1903, GW6205, LPD8806, WS2801,
// SM16716, APA102, APA102HD, P9813, LPD6803
#define CHIPSET     WS2812
// Устанавливаем яркость светодиодов (от 10 до 255)
#define BRIGHTNESS  60
// Устанавливаем частоту мерцания светодиодов
#define FRAMES_PER_SECOND 60
 
// Создаем переменную leds для управления нашей лентой
CRGB leds[NUM_LEDS];
 
void setup() {
  // Задержка для инициализации светодиодов
  delay(3000);
  // Передаём ленте параметры инициализации
  FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  // Передаём ленте яркость
  FastLED.setBrightness( BRIGHTNESS );
}
 
void loop(){
  // Включаем все светодиоды
  for (int i = 0; i < NUM_LEDS; i++){
    // Красный цвет
    leds[i] = CRGB::Red;
  }
 
  // Передаем цвета ленте
  FastLED.show();
  // Ждем 500 мс
  delay(500);
 
  // Выключаем все светодиоды
  for (int i = 0; i < NUM_LEDS; i++){
    // Черный цвет, т.е. выключено
    leds[i] = CRGB::Black;
  }
 
  // Передаем цвета ленте.
  FastLED.show();
  // Ждем 500 мс
  delay(500);
}

Программирование через XOD IDE

Установка и настройка

Пример работы

Элементы платы

Микроконтроллер ATmega328P

Сердцем платформы Uno Slot является 8-битный микроконтроллер семейства AVR — Microchip ATmega328P с тактовой частотой 16 МГц. Контроллер предоставляет 32 КБ Flash-памяти для хранения прошивки, 2 КБ оперативной памяти SRAM и 1 КБ энергонезависимой памяти EEPROM для хранения данных.

Преобразователь USB-UART

Связь микроконтроллера ATmega328P с USB-портом компьютера обеспечивает USB-UART преобразователь на микросхеме Silicon Labs CP2102. При подключении к ПК Uno Slot определяется как виртуальный COM-порт.

USB-UART преобразователь общается с микроконтроллером ATmega328P по интерфейсу UART через сигналы RX и TX, которые параллельно выведены на контакты D0 и D1 платы Uno Slot. Во время прошивки и отладки программы, не используйте эти пины в своём проекте.

Разъём micro-USB

Разъём micro-USB предназначен для прошивки платформы Uno Slot с помощью компьютера. Для подключения к ПК понадобится кабель USB (A — Micro USB).

Светодиодная индикация

Имя светодиода Назначение
PWR Индикатор питания платформы.
13 Пользовательский светодиод на D13 пине микроконтроллера. Используйте определение LED_BUILTIN для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.
RX и TX Мигают при прошивки и обмене данными между Uno Slot и компьютером.
LED1-LED4 На платформе расположено четыре адресных светодиода WS2812B по одному в каждом слоте. Каждый светодиод состоит из контроллера WS2812 и трёх кристаллов: R – красный, G – зелёный и B – синий. Изменяя ток одного, двух или трёх кристаллов одновременно, можно получить практически любой цвет излучения из видимого спектра. Электрически светодиодные модули WS2812B соединены между собой в цепочку, где первый светодиод подключен к D2 цифровому пину управляющей платы Uno Slot. Для работы через Arduino IDE используйте библиотеку Adafruit NeoPixel.

Кнопка RESET

Кнопка предназначена для ручного сброса прошивки — аналог кнопки RESET обычного компьютера.

Пользовательская кнопка

Пользовательская кнопка подключённая к D4 цифровому пину микроконтроллера. Кнопка пригодиться для создания и теста простых программ, без подключения дополнительных тактильных сенсоров.

ICSP-разъём

ICSP-разъём предназначен для загрузки прошивки в микроконтроллер ATmega328P через внешний программатор. Одна из таких прошивок — Bootloader платы Uno Slot, который позволяет прошивать платформу по USB.

Разъём Slot Connector

Если вам не хватает GPIO-пинов платформы Uno Slot, обратите внимания на плату расширения Slot Expander, которая предоставляет десять дополнительных пинов ввода/вывода. Slot Expander общается с центральной платформой через интерфейс I²C и позволяет изменять программно свой адрес, а это означает возможность подключить около сотни Slot Expander к Uno Slot: каждое расширения добавляет новые десять GPIO-пинов.

Расширение Slot Expander подключается к Uno Slot через специальный разъём Slot Connector в виде двух металлизированных отверстий. Для физической коммуникации и передачи данных также понадобиться переходник Slot Connector совместно с винтами, шайбами и гайками.

Имя контакта Назначение
5V Питание
GND Земля
SDA Линия данных I²C
SCL Линия синхронизации I²C

Подробнее о расширении читайте в технической документации на Slot Expander.

Распиновка

Пины питания

  • 5V: На вывод поступает напряжение 5 В от разъёма micro-USB.
  • GND: Выводы земли.

Пины ввода/вывода

  • Цифровые входы/выходы 22 пина: D0, D1, D3, D5, D6, D9D16
    Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 20 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
  • ШИМ 5 пинов: D3, D5, D6, D9D11
    Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ не меняется и установлена в 8 бит.
  • АЦП 5 пинов: A0A2, A6 и A7
    Позволяет представить аналоговое напряжение в виде цифровом виде. Разрядность АЦП не меняется и установлена в 8 бит.
  • TWI/I²C пины SDA/18 и SCL/19
    Для общения с платами расширения и сенсорами по интерфейсу «I²C». Для работы используйте библиотеку Wire.
  • SPI пины MOSI/11, MISO/12 и SCK/13
    Для общения с платами расширения и сенсорами по интерфейсу «SPI». Для работы — используйте библиотеку SPI.
  • Serial пины: RX/D0 и TX/D1
    Для общения с платами расширения и сенсорами по интерфейсу «UART». Для работы — используйте библиотеку Serial. Выводы шины также параллельно соединены с соответствующими выводами USB-UART преобразователя CP2102 для прошивки и отладки программы: во время работы по USB, не используйте эти пины в своём проекте.

Принципиальная и монтажная схемы

Габаритный чертёж

Характеристики

  • Микроконтроллер: ATmega328P
  • Тактовая частота: 16 МГц
  • Порты с АЦП: 5
  • Разрядность АЦП: 10 бит
  • Порты с ШИМ: 5
  • Разрядность ШИМ: 8 бит
  • Аппаратные интерфейсы SPI: 1
  • Аппаратные интерфейсы I²C: 1
  • Аппаратные интерфейсы UART: 1
  • Flash-память: 32 КБ
  • EEPROM-память: 1 КБ
  • Оперативная память: 2 КБ
  • Напряжение логических уровней: 5 В
  • Порты общего назначения: всего 13
    • 13 ввода-вывода (GPIO)
    • 2 дополнительных ввода (GPI)
  • Максимальный ток с пина ввода-вывода: 20 мА
  • Максимальный выходной ток пина 5V: ограничен источником питания
  • Габариты: 50,8×50,8 мм

Ресурсы