====== Uno Slot: распиновка, схема подключения и программирование ======
[[amp>product/uno-slot?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|Uno Slot]] — платформа из [[amp>collection/slot?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|линейки Slot]] для быстрой разработки компактных устройств из [[amp>collection/troyka?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|Troyka-модулей]].
{{ :products:uno-slot:uno-slot.4.jpg?nolink&400 |}}
Плата выполнена на микроконтроллере [[#микроконтроллер_atmega328p|ATmega328P]], что означает полную программную совместимость с [[amp>product/uno-slot?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|Arduino Uno]].
===== Общие сведения =====
Платформа Uno Slot содержит на борту всё необходимое для быстрой и комфортной работы: 8-битный микроконтроллер ATmega328P, USB-разъём для программирования и отладки программы, 15 цифровых входов/выходов, 4 адресных RGB-светодиода WS2812B и две служебные кнопки.
Uno Slot позволяет подключить до четырёх [[amp>collection/troyka?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki |Troyka-модулей]]. Используемые пины для связи сенсоров и модулей с Uno Slot зависят от конкретного устройства, точнее: от типа его коммуникации, сигнала и протокола. Обратитесь к странице с [[:troyka-modules|обзором сенсоров]], чтобы определить как организована коммуникация с каждым устройством. После чего можно приступать к работе с модулем.
===== Программирование через Arduino IDE =====
{{ :products:uno-slot:uno-slot-arduino.1.png?nolink |}}
==== Установка и настройка ====
- Подключите плату к ПК или ноутбуку по USB.
- Для начала работы с платформой Uno Slot на языке C++ [[https://amperka.ru/page/arduino-ide|скачайте и установите]] на компьютер интегрированную среду разработки Arduino IDE.
- Плата Uno Slot по программной части аналогична Uno, поэтому в программе смело выбирайте:
//Инструменты//
//Плата//
//Arduino Uno//.{{ :products:uno-slot:uno-slot-arduino.2.png?nolink |}}
После выполненных действий платформа Uno Slot готова к программированию через Arduino IDE.
Подробности о функциях и методах работы Uno Slot на языке C++ читайте на [[https://www.arduino.cc/reference/en/|Arduino Core’s]].
==== Пример работы ====
В качестве примера повторим первый эксперимент [[:конспект-arduino:светильник-с-управляемой-яркостью|«Маячок»]] из набора [[amp>product/matryoshka-z?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|Матрёшка]]. На плате уже есть встроенный пользовательский светодиод, подключенный к ''13'' пину микроконтроллера.
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'' начнёт мигать раз в полсекунды.
{{ :products:uno-slot:blink.gif?nolink |}}
Это значит всё получилось и можно смело переходить к [[мини-проекты-arduino-breadboard:оглавление|экспериментам]] на Uno Slot.
==== Как управлять адресными светодиодами на UNO slot ====
Четытре светодиода подключены ко второму цифровому пину. Управлять ими можно как обычной адресной светодиодной лентой.
Вы сами можете выбрать библиотеку для управления. Например скетч для включения светодиодов с помощью библиотеки "fastled".
// Подключаем библиотеку FastLED
#include
// Указываем, к какому порту подключен вход ленты 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(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 =====
==== Установка и настройка ====
==== Пример работы ====
===== Элементы платы =====
{{ :products:uno-slot:uno-slot-annotation.png?nolink |}}
==== Микроконтроллер ATmega328P ====
Сердцем платформы Uno Slot является 8-битный микроконтроллер семейства AVR — {{ :products:uno-slot:atmega-328p.pdf |Microchip ATmega328P}} с тактовой частотой 16 МГц. Контроллер предоставляет 32 КБ Flash-памяти для хранения прошивки, 2 КБ оперативной памяти SRAM и 1 КБ энергонезависимой памяти EEPROM для хранения данных.
==== Преобразователь USB-UART ====
Связь микроконтроллера [[#микроконтроллер_atmega328p|ATmega328P]] с USB-портом компьютера обеспечивает USB-UART преобразователь на микросхеме {{ :products:uno-slot:cp2102-datasheet.pdf |Silicon Labs CP2102}}. При подключении к ПК Uno Slot определяется как виртуальный COM-порт.
USB-UART преобразователь общается с микроконтроллером [[#микроконтроллер_atmega328p|ATmega328P]] по интерфейсу UART через сигналы ''RX'' и ''TX'', которые параллельно выведены на контакты ''D0'' и ''D1'' платы Uno Slot. Во время прошивки и отладки программы, не используйте эти пины в своём проекте.
==== Разъём micro-USB ====
Разъём micro-USB предназначен для прошивки платформы Uno Slot с помощью компьютера. Для подключения к ПК понадобится [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|кабель USB (A — Micro USB)]].
==== Светодиодная индикация ====
^ Имя светодиода ^ Назначение ^
| PWR |Индикатор питания платформы. |
| 13 | Пользовательский светодиод на ''D13'' пине микроконтроллера. Используйте определение ''LED_BUILTIN'' для работы со светодиодом. При задании значения высокого уровня светодиод включается, при низком – выключается.|
| RX и TX |Мигают при прошивки и обмене данными между Uno Slot и компьютером.|
| LED1-LED4 |На платформе расположено четыре адресных светодиода {{ :products:uno-slot:ws2812b-datasheet.pdf |WS2812B}} по одному в каждом слоте. Каждый светодиод состоит из контроллера WS2812 и трёх кристаллов: R – красный, G – зелёный и B – синий. Изменяя ток одного, двух или трёх кристаллов одновременно, можно получить практически любой цвет излучения из видимого спектра. Электрически светодиодные модули WS2812B соединены между собой в цепочку, где первый светодиод подключен к ''D2'' цифровому пину управляющей платы Uno Slot. Для работы через Arduino IDE используйте библиотеку [[https://github.com/adafruit/Adafruit_NeoPixel|Adafruit NeoPixel]].|
==== Кнопка RESET ====
Кнопка предназначена для ручного сброса прошивки — аналог кнопки ''RESET'' обычного компьютера.
==== Пользовательская кнопка ====
Пользовательская кнопка подключённая к ''D4'' цифровому пину микроконтроллера. Кнопка пригодиться для создания и теста простых программ, без подключения дополнительных тактильных сенсоров.
==== ICSP-разъём ====
ICSP-разъём предназначен для загрузки прошивки в микроконтроллер [[#микроконтроллер_atmega328p|ATmega328P]] через внешний программатор. Одна из таких прошивок — Bootloader платы Uno Slot, который позволяет [[#разъём_micro-usb|прошивать платформу по USB]].
==== Разъём Slot Connector ====
Если вам не хватает GPIO-пинов платформы Uno Slot, обратите внимания на плату расширения [[amp>product/slot-expander?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|Slot Expander]], которая предоставляет десять дополнительных пинов ввода/вывода. Slot Expander общается с центральной платформой через интерфейс I²C и позволяет изменять программно свой адрес, а это означает возможность подключить около сотни Slot Expander к Uno Slot: каждое расширения добавляет новые десять GPIO-пинов.
Расширение Slot Expander подключается к Uno Slot через специальный разъём Slot Connector в виде двух металлизированных отверстий. Для физической коммуникации и передачи данных также понадобиться переходник [[amp>product/slot-connector?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|Slot Connector]] совместно с винтами, шайбами и гайками.
{{ :products:uno-slot:uno-slot-connector.png?nolink |}}
^ Имя контакта ^ Назначение ^
| 5V |Питание|
| GND |Земля|
| SDA |Линия данных I²C|
| SCL |Линия синхронизации I²C|
Подробнее о расширении читайте в [[:продукты:wifi-slot-expander|технической документации на Slot Expander]].
===== Распиновка =====
[[this>_media/products:uno-slot:uno-slot-pinout.pdf|{{:products:uno-slot:uno-slot-pinout-preview.png}}]]
==== Пины питания ====
* **5V:** На вывод поступает напряжение 5 В от разъёма micro-USB.
* **GND:** Выводы земли.
==== Пины ввода/вывода ====
* **Цифровые входы/выходы** 22 пина: ''D0'', ''D1'', ''D3'', ''D5'', ''D6'', ''D9''–''D16''\\ Логический уровень единицы — 5 В, нуля — 0 В. Максимальный ток выхода — 20 мА. К контактам подключены подтягивающие резисторы, которые по умолчанию выключены, но могут быть включены программно.
* **ШИМ** 5 пинов: ''D3'', ''D5'', ''D6'', ''D9''–''D11''\\ Позволяет выводить аналоговые значения в виде ШИМ-сигнала. Разрядность ШИМ не меняется и установлена в 8 бит.
* **АЦП** 5 пинов: ''A0''–''A2'', ''A6'' и ''A7''\\ Позволяет представить аналоговое напряжение в виде цифровом виде. Разрядность АЦП не меняется и установлена в 8 бит.
* **TWI/I²C** пины ''SDA/18'' и ''SCL/19''\\ Для общения с [[amp>collection/boards?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|сенсорами]] по интерфейсу «I²C». Для работы используйте библиотеку [[https://www.arduino.cc/en/Reference/Wire|Wire]].
* **SPI** пины ''MOSI/11'', ''MISO/12'' и ''SCK/13''\\ Для общения с [[amp>collection/boards?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|сенсорами]] по интерфейсу «SPI». Для работы — используйте библиотеку [[https://www.arduino.cc/en/Reference/Spi|SPI]].
* **Serial** пины: ''RX/D0'' и ''TX/D1''\\ Для общения с [[amp>collection/boards?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|платами расширения]] и [[amp>collection/sensors?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|сенсорами]] по интерфейсу «UART». Для работы — используйте библиотеку [[https://www.arduino.cc/en/Reference/Serial|Serial]]. Выводы шины также параллельно соединены с соответствующими выводами USB-UART преобразователя [[#преобразователь_usb-uart|CP2102]] для прошивки и отладки программы: во время работы по USB, не используйте эти пины в своём проекте.
===== Принципиальная и монтажная схемы =====
{{ :products:uno-slot:uno-slot-schematic.png?direct&690 |}}
{{:products:uno-slot:uno-slot-layout-top.png?direct&330 |}}
{{ :products:uno-slot:uno-slot-layout-bottom.png?direct&330|}}
===== Габаритный чертёж =====
[[this>_media/products:uno-slot:uno-slot-dimensions.pdf|{{:products:uno-slot:uno-slot-dimensions-preview.png}}]]
===== Характеристики =====
* Микроконтроллер: 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 мм
===== Ресурсы =====
* [[amp>product/uno-slot?utm_source=man&utm_campaign=uno-slot&utm_medium=wiki|Uno Slot]] в магазине.
* [[https://github.com/amperka/hardware-drawings/blob/master/uno-slot.svg|Векторное изображение Uno Slot]]
* {{ :products:uno-slot:atmega-328p.pdf |Datasheet на микроконтроллер ATmega328P}}
* {{ :products:uno-slot:cp2102-datasheet.pdf |Datasheet на USB-UART преобразователь CP2102}}
* {{ :products:uno-slot:ws2812b-datasheet.pdf |Datasheet на адресный светодиод WS2812B}}