====== 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}}