#PWM #UART #I2C #SPI #CAN
Это вступительная статья к циклу материалов с подробными инструкциями по созданию проектов на основе Repka Pi - для создания интересных DIY проектов и для обучения автоматике и робототехнике, цифровой технике и программированию.
Различная вспомогательная автоматика на основе цифровой техники сейчас применяется повсеместно как в домашних DIY проектах, так и в промышленных решениях, активно входит в образовательный процесс, чтобы будущие инженеры осваивали этот важный и востребованный пласт навыков и знаний начиная со школы, а при обучении в колледжах и вузах в качестве своих курсовых и дипломных задач создавали проекты промышленного уровня.
Степень доступности в проектах с системами управления автоматикой стала такой, что высокотехнологичные решения высокой сложности проникают практически во все сферы деятельности. Во многом это стало возможно благодаря стандартизации - по сути промышленные протоколы взаимодействия всех уровней доступны сейчас в широко распространённых микроконтроллерах с прекрасной документацией и многочисленными примерами кода и огромным количеством разнообразных библиотек.
Стандартная пирамида уровней построения таких систем управления выглядит примерно так:
При этом возможности современных контроллеров зачастую такие, что для небольших проектов один микроконтроллер совмещает в себе все функции полевого уровня, уровня контроллера и уровня управления, так же при этом обеспечивая и возможности взаимодействия с другими устройствами (станки, роботы, целые технологические процессы и системы управления производством) посредством так называемых промышленных сетей). Это даёт возможность естественным образом переходить к построению масштабных систем управления:
И раз стал доступен в рамках решаемых задач и в образовательных проектах переход на более высокие уровни управления и интеграции, то разумно построение систем управления, основанных не на микроконтроллерах, а на процессорных системах, где одновременно портами ввода/вывода и возможностью программирования логики работы с ними, так же становятся доступными все возможности операционных систем общего назначения - сетевые устройства, сложные графические интерфейсы, Web-сервер, стек программного обеспечения для построения модульных систем с широким функционалом, высокая производительность и много чего ещё. Как правило это всё реализуется на так называемых встраиваемых компьютерах, имеющих небольшие размеры и низкое энергопотребление, большое количество интерфейсов с контактами, на которое выведено большое количество портов ввода/вывода процессоров. Чаще всего сейчас это компьютеры построенные на процессорах с архитектурой RISC (наиболее распространены - ARM или RISC-V).
Основу этих интерфейсов составляют стандартные протоколы обмена данными, аппаратно реализованные в современных системах-на-кристалле (SoC) для обеспечения высокой производительности без значительной загрузки центрального процессора. Для успешной работы с периферией и построения систем автоматики ключевым является понимание трех наиболее распространенных из них: I2C, SPI и UART.
I2C (Inter-Integrated Circuit)
Это двухпроводная шина данных (линии SDA и SCL), спроектированная для подключения множества ведомых устройств (Slaves) к одному ведущему (Master). Ключевой особенностью является система адресации: каждое устройство на шине имеет уникальный адрес, и обмен данными инициируется ведущим устройством путем отправки этого адреса. Данный интерфейс оптимален для подключения целого спектра датчиков и модулей, не требующих высокой пропускной способности: сенсоров температуры и давления, акселерометров, часов реального времени и микросхем памяти.
SPI (Serial Peripheral Interface)
Интерфейс, разработанный для высокоскоростного обмена данными. В отличие от I2C, он использует большее количество линий (обычно четыре: MOSI, MISO, SCK и CS) и обеспечивает полнодуплексный режим — одновременную передачу и приём. Выбор конкретного ведомого устройства для связи осуществляется через его персональную линию Chip Select (CS). Благодаря своей производительности, SPI является стандартом для устройств, работающих с потоками данных: модулей флеш-памяти и SD-карт, цветных графических дисплеев, высокоскоростных аналого-цифровых преобразователей и радиомодулей.
UART (Universal Asynchronous Receiver-Transmitter)
Классический асинхронный последовательный интерфейс, предназначенный для двухточечной связи по двум линиям (RX для приема, TX для передачи). Его особенность — отсутствие отдельной линии тактирования, так как скорость обмена заранее согласовывается между устройствами. UART широко применяется для работы с модулями, управляемыми командами (GPS, GSM/LTE), и, что особенно важно для разработчика, служит для доступа к системной отладочной консоли, обеспечивая низкоуровневую диагностику системы.
Понимание принципов работы этих трех интерфейсов предоставляет доступ к огромному миру периферийных устройств, позволяя в полной мере использовать возможности 40-контактного разъема ввода/вывода.
Ещё чуть больше 10 лет назад такие встраиваемые компьютеры были преимущественно специализированными, относились к промышленным решениям и имели высокую стоимость. С появлением проекта универсального одноплатного компьютера с большим количеством выведенных на плате портов ввода/вывода (I/O) - Raspberry Pi - такие решения стали широкодоступными и массовыми.
А несколько лет назад - в 2022 году, в России появился свой массовый и широко доступный проект одноплатных компьютеров - Repka Pi, заменяющий Raspberry Pi и его многочисленные проекты-последователи со всего Мира, имеющий документация и поддержку на русском языке, собственные готовые библиотеки для работы с портами ввода/вывода и набирающий всё большую популярность в РФ и, что немаловажно, имеющий и доступную стоимость.
Построению систем управления на базе одноплатных компьютеров Repka Pi посвящён цикл статей с подробными инструкциями по созданию таких базовых проектов:
- Метеостанция - ссылка на описание,
- Игра “Охота на светлячка“ - ссылка на описание,
- Автоматизированная система полива - ссылка на описание,
- Сейф с замком с RFID-ключом - ссылка на описание,
- Парктроник или ультразвуковой парковочный ассистент - ссылка на описание,
- Охранная сигнализация - ссылка на описание,
- Игра “Змейка“ - ссылка на описание,
- Детектор уровня звука или шума - ссылка на описание,
- Умный будильник - ссылка на описание,
- Нейросетевой детектор объектов с системой управления исполнительными механизмами - ссылка на описание.
Всё перечисленные проекты являются базовыми примерами, которые можно самостоятельно творчески расширять, объединять - одним словом можно придумать и реализовать бесконечное количество своих замыслов для создания автоматики решения и типовых и уникальных задач.
Все материалы данного цикла разработаны на основе материалов учебного-методичесткого комплекса УМК “Репка“, предлагаемого в качестве готового коробочного продукта для образовательных организаций разработчиками проекта Repka Pi и РобоИнтеллект.
В УМК “Репка” всё идёт готовое и собранное под ключ, в т.ч. со специальной прошивкой операционной системы, с установленными библиотеками и средствами разработки, с адаптированными переходниками, блоками питания, корпусами и с методическими материалами и рекомендованными программами обучения и т.д. и т.п. - т.е. фактически в виде готового набора оборудования для оснащения под ключ учебных классов и лабораторий в школах и ВУЗах.
Конечно этот вариант более высокую стоимость, т.е. не совсем подходит для самостоятельного изучения автоматики, робототехники, программирования, основ цифровой техники, принципов управления, основ электротехники и даже работы с операционными системами семейства Linux. А что делать, если хочется в домашних условиях самостоятельно делать то же самое? Данный цикл статей как раз в более кратком виде рассказывает, как можно самостоятельно повторить эти базовые проекты и начать свой Путь в мир автоматики, программирования и Робототехники даже дома или в небольшом кружке.
Все используемые в проектах устройства условно делятся на такие группы:
-
исполнительные механизмы,
-
устройства ввода и вывода информации,
-
датчики.
Используемые комплектующие
Компонент | Ссылка на даташит | Ссылка на страницу покупки |
---|---|---|
Одноплатный компьютер Repka Pi 4 в корпусе с блоком питания и с EMMC модулем на 32 Гб | ||
Монтажная/макетная плата | – | |
Шлейф 40 pin | – | |
Переходник с шлейфа на макетную плату | – | |
Соединительные провода | – | |
Блок питания и провода для макетной платы | – | – |
Исполнительные механизмы: | ||
IRF520 | ||
KY-006 | ||
L9110S | ||
MG90S | ||
SRD-05VDC-SL-C | ||
ULN2003 | ||
Brushes DC motor | – | |
Pump | ||
Устройства ввода и вывода информации: | ||
FS1000A MX-RM-5V | ||
FYS-3611 | ||
IR receiver and LED | ||
KY-023 | ||
OLED SSD1306 | ||
RC-522 | ||
RGB LED | ||
TM1637 | ||
TTP223 | ||
VS1838b | ||
WS2812 | ||
Display 1602 I2C | ||
DS3231 | ||
HC-05 | ||
Keyboard 4x4 | ||
Max7219 Luma | ||
Max9814 | ||
One button | ||
Rotary encoder | ||
Three buttons | – | |
Variable resistor | ||
Variable resistor module | ||
Датчики: | ||
AM312 | ||
BME280 | ||
DS18b20_example | ||
FC-28_example | ||
GY-521_example | ||
HC-SR04_example | ||
HTU21D_example | ||
INA219_example | – | |
NTC_example | ||
photoresistor_example | – | |
TCRT5000_example |
На самом деле, если бюджет ограничен, то можно сэкономить и приобрести одноплатный компьютер Repka Pi 4 не в корпусе, а отдельно плату, не ставить на него EMMC модуль и самостоятельно приобрести и прошить SD карту и даже не использовать шлейф и переходник с шлейфа на макетную плуту - это не так удобно, надёжно и будет работать медленнее, но для начала в домашних условиях вполне подойдёт. А мы в наших статьях покажем как это делается в комплектации с оборудованием из комплекта УМК “Репка“ и так же кратко покажем, как это делать с более простым и экономичным вариантом самостоятельно дома.
Подготовка и подключение монтажной платы #
1. Подключим дополнительное питание 5V к макетной плате, используя блок питания и клеммы, входящие в комплект УМК Repka.
1.1. Если у вас нет набора УМК Repka, питание можно организовать с помощью подручных средств — любого провода и телефонного блока питания на 5V. Для этого разрежем провод и аккуратно зачистим его жилы:
1.2. После чего намотаем провода на штыри и закрутим их:
2. Выведем дополнительное питание на макетную плату:
3. Подключим переходник с шлейфа на макетную плату:
4. Соединим шлейф с переходником для подключения к макетной плате и Repka Pi 4:
5. Итоговый результат должен выглядеть таким образом:
Цикл статей будет расширятся, будут добавляться и усложняться проекты, сами инструкции так же будут расширяться и дополняться на основе Ваших вопросов им предложений.
Давайте вместе сделаем этот Мир лучше изучая автоматику и робототехнику, цифровую технику, программирование и делая интересные проекты!
Всё ссылки на статьи с подробными инструкциями по примерам проектов выше.
Успешных проектов!
Молодцы! Так держать!