Canny 3 tiny pro на каком микроконтроллере

Canny 3 tiny pro на каком микроконтроллере ОБД2

Введение

Внимательный читатель может задать вопрос: «А почему ты купил Arduino, если до этого упоминал CraftDuino?», все весьма банально. CraftDuino опять сломалась. Один раз DrZugrik мне её починил, а сейчас «самоизоляция», да и не хотелось мне человека беспокоить по пустякам.

Вот так, мы плавно подошли к материальной базе. Для этой статьи я использовал:

Доплеровский датчик движения RCWL-0516:

В магазине, где я покупал оба датчика в описании на сайте было написано, что они для Arduino, но на практике оказалось, что никаких специальных библиотек не надо и на Canny всё запустилось без проблем.

Микроконтроллер Arduino Uno:

Микроконтроллер Canny 3 Tiny — версия с клеммой колодкой и кабельным жгутом:

Одноплатный компьютер Raspberry PI 3 Model B:

«Перетягивание диода» или устраиваем соревнование между CANNY 3 TINY PRO и Arduino

к комментариям – к полной версии
– понравилось!

В предыдущей статье, посвящённой моим попыткам погрузится в увлекательный мир программирования микроконтроллеров, я грозился сделать обзор на “обновку”. К сожалению, мне сейчас не хватает навыков и времени чтобы сделать, что-то достойное полноценного обзора. Однако, я всё-таки решил подготовить забавы ради, короткую статью на тему игрушечного соревнования CANNY 3 TINY PRO и неоригинальной Arduino Nano. Соревноваться контроллеры будут в своеобразном аналоге перетягивания каната, на роль которого был выбран двухцветный светодиод марки BL-L2519EGW.

Итак в сегодняшнем материале мы подключим оба контроллера к светодиоду и будем подавать случайный сигнал на его выводы. Правила простые – кто большее напряжение подаст у того и кристалл в светодиоде загорится ярче. Попутно мы воспользуемся ЦАП на контроллере CANNY и доработаем стандартный ГСЧ с помощью составного функционального блока.

В статье не будет сложной электроники или мудрёного программирования, так что она вполне подойдет новичкам.

CANNY 3 TINY — простой и экономичный визуально программируемый логический контроллер CANNY, предназначенный для применения в задачах, не требующих взаимодействия с CAN и использования расширенных возможностей более сложных контроллеров CANNY.

Шесть универсальных каналов ввода-вывода с поддержкой UART/RS-232, Dallas 1-Wire, АЦП, ШИМ, АСч, энергонезависимая память данных, способная сохранить критически важные данные при сбоях питания, и встроенные средства управления энергосбережением, позволяющие экономно расходовать заряд аккумуляторного источника питания, открывают широкие возможности для создания автономных устройств на базе CANNY 3 Tiny.

Canny 3 tiny pro на каком микроконтроллере

Контроллер поставляется в двух вариантах комплектации:

CANNY 3 Tiny – для автономного применения, с установленным разъемом X1 и кабельным жгутом

CANNY 3 Tiny OEM – для встраиваемого применения, только плата контроллера, без разъема Х1

Типовые применения контроллеров CANNY 3tiny:

Canny 3 tiny pro на каком микроконтроллере

Canny 3 tiny pro на каком микроконтроллере

Цифровые последовательные интерфейсы

CANNY 3 Tiny PRO — простой и экономичный визуально программируемый логический контроллер CANNY, представленный в бескорпусном исполнении и используемый как встраиваемый, либо как независимый модуль, предназначенный для применения в задачах, не требующих взаимодействия с CAN и использования расширенных возможностей более сложных контроллеров CANNY. Компактные размеры и расположение контактов позволяют установить контроллер на мекетную плату, либо встроить в корпус уже имеющегося или разрабатываемого электронного устройства, в том числе методом поверхностного монтажа.

21 канал ввода-вывода, поддержка UART/RS-232, Dallas 1-Wire, Virtual COM Port, АЦП, ЦАП, ШИМ, АСч, энкодера, энергонезависимая память данных, способная сохранить критически важные данные при сбоях питания, и встроенные средства управления энергосбережением, позволяющие экономно расходовать заряд аккумуляторного источника питания, открывают широкие возможности для создания автономных устройств на базе CANNY 3 Tiny PRO.

Типовые применения контроллеров CANNY 3 Tiny PRO

Просмотр полной версии : Русская ардуина

Что в ней Русского?

Что в ней Русского?
Наглядная графическая среда разработки )
http://www.canny.ru/cannylab

Своя среда, фиг пойми что, процессоры не понятно какие, в общем фигня какая то 🙁 Там больше для авто подогнано, ежели просто ардуина 🙂 Сложно описалово почитать?

Если это “ардуино”, то все очень печально для отечественных изделий подобного рода. Довольно специализированная сфера применения определенная самим производителем на которую есть хоть что-то. Не, конечно можно и разрабатывать все с нуля, но если для ардуино есть тысячи готовых скетчей, то тут ничего.
Ну и цена. К примеру, Canny Nano – 26 баксов. Идиотизм какой то, кому он нужен за такую цену?

Графическая “среда” с визуальными связями это конечно хорошо. только детям оно поможет мало без знания “работы” МК. А что, для простых “ардуин” эту “среду” нельзя было сразу приспособить?

Самая визуальная среда программирования HiAsm, русскоязычная, автор (Дай Бог ему здоровья!) наш, свободно распространяется, интуитивно понятна, а для радиолюбителей, привыкших читать схемы (именно так называются исходники в HiAsm) пример на рисунке 🙂 (выкладывал на форуме).

Нафиг, лучше китайских Микро мешок купить за эти деньги :ржач:

Нафиг, лучше китайских Микро мешок купить за эти деньги :ржач:
+1
А детям, которым в силу возраста еще трудно работать с кодами, удобнее s4a.cat (http://s4a.cat) трудно что то придумать.
Как то так: http://www.youtube.com/playlist?list=PLfDmj 22jP9S4PF4WhauB-amMqoxf9vMTU

наша АРДУИНА – самодельная!

Arduino своими руками с USB портом (http://cxem.net/arduino/arduino61.php)
Nanino – самодельная Arduino (http://cxem.net/arduino/arduino113.php)
Делаем сами Arduino Uno Mini (http://cxem.net/arduino/arduino124.php)
EGYDuino – клон Arduino своими руками (http://cxem.net/arduino/arduino140.php) :super:

Леонид3,
Самая визуальная среда программирования HiAsm, русскоязычная, автор (Дай Бог ему здоровья!) наш, свободно распространяется, интуитивно понятна, а для радиолюбителей, привыкших читать схемы (именно так называются исходники в HiAsm)
Леонид, тут дело в принципе построения визуализированного алгоритма, не сочтите за пропоганду той или иной “продукта” (главное, чтоб детям было более понятно).
А, что касается, где ж “клипать” эти МК (и почем), вопрос остается открытым.

Ардуина в минимальной комплектации 😛

Не угадал вот русская , считает ВСЕ

Я бы еще понял, если бы это было импортозамещение, но так ведь это не оно. Тогда зачем? “Мы тоже такое можем”? Не вижу причин, чтобы такое покупать.

рекомендую – http://www.freeduino.ru/arduino/atmega.html

Микроконтроллеры ATmega328 220 руб. поставляются с прошитым загрузчиком Arduino Duemilanove (boot-loader), и готовы к работе сразу после установки в Вашу Arduino-совместимую плату, или в составе самостоятельно разработанного устройства.

жесть какая
китайская ардуина вся целиком стоит 1,45 долл (http://www.ebay.com/itm/New-Pro-Mini-atmega328-Board-5V-16M-Arduino-Compatible-Nano-NEW-M43-/301723336845?hash=it em46401cc08d:g:bA4AA OSwgQ9VzBlt) еще и с доставкой
даже по курсу 76 это в два раза дешевле чем просто микроконтроллер

Тогда уж лучше модуль на STM32F103 (http://www.ebay.com/itm/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Arduino-/201414966215?hash=it em2ee5447bc7:g:X-oAAOSw6BtVVACk) (там даже есть слово Arduino :ржач:). Цена сравнима, а возможностей как в плане периферии, так и в скорости/объеме памяти – знааачительнб больше.

Тогда уж лучше модуль на STM32F103 (http://www.ebay.com/itm/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Arduino-/201414966215?hash=it em2ee5447bc7:g:X-oAAOSw6BtVVACk) (там даже есть слово Arduino :ржач:). Цена сравнима, а возможностей как в плане периферии, так и в скорости/объеме памяти – знааачительнб больше.
За то в удобстве освоения таки с Arduino не сравнить. Для начинающих и для детей Ардуино несравнимо удобнее, а для простых поделок на этом уровне памяти и скорости вполне хватает. К тому же, безумное количество готовых шилдов, модулей, и проектов с подробными описаниями для повторения.
Вот, как рекомендующему STM вопрос есть. Аналог Scratch for Arduino http://s4a.cat существует для этой платформы?

жесть какая
китайская ардуина вся целиком стоит 1,45 долл (http://www.ebay.com/itm/New-Pro-Mini-atmega328-Board-5V-16M-Arduino-Compatible-Nano-NEW-M43-/301723336845?hash=it em46401cc08d:g:bA4AA OSwgQ9VzBlt) еще и с доставкой
даже по курсу 76 это в два раза дешевле чем просто микроконтроллер
150 руб. Готовая плата Nano. http://ru.aliexpress.com/item/Freeshipping-Nano-3-0-controller-compatible-for-arduino-nano-CH340-USB-driver-NO-CABLE/32341832857.html?spm =2114.03020208.3.1.H tGRdL&ws_ab_test=searchweb 201556_1,searchweb20 1644_5_10001_10002_1 0005_10006_10003_100 04_62_10007_61,searc hweb201560_6,searchw eb1451318400_6148
Шнурком к компьютеру подключил и вперед. Для попробовать, не нужно даже ничего более подключать. В поставке стандартной среды разработки уже есть готовые рабочие примеры. Поморгать светодиодом на плате можно практически сразу же.

Тогда уж лучше модуль на STM32F103 (http://www.ebay.com/itm/1pcs-STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-Arduino-/201414966215?hash=it em2ee5447bc7:g:X-oAAOSw6BtVVACk) (там даже есть слово Arduino :ржач:).

Ага удобная штука, светодиодами уже поморгал:ржач: Кодил в Arduino IDE.

Выше определенного уровня не прыгнешь на ней. Лично я перешел на STM32, когда увидел, что даже в самых дешевых вариантах есть ADC 12 bit 1 MSPS. Т.е. в (100!) раз быстрее, чем в Atmega8. Опять же – встроенное USB 2.0, для которого снаружи надо всего пару резисторов припаять. Много есть приятностей.

Отмечу некоторые важные моменты при работе с контроллером, которые вы не найдёте в помощи F1 к программе:

1.Для подключения входов и выходов блоков к физическим выводам контроллера нужно навести указатель мыши на вывод блока, щёлкнуть левую клавишу и провести линию связи на небольшое расстояние, затем дважды кликнуть левой клавишей мыши. Получится линия с точкой (именованная связь). Затем по этой линии кликнуть правой клавишей мыши. В выпавшем меню выбрать “Переименовать”, затем выбрать из списка нужный вывод: I1 – I9 – это входы, Q1-Q7 – это выходы, RedLed и GreenLed – соответственно красный и зелёный светодиоды, установленные непосредственно на самом микроконтроллере, “Кнопка” – это кнопка на плате контроллера, Т1 и Т2 – аналоговые значения от подстроечных резисторов R1 и R2 с платы контроллера (интервал 0-1023).

2.В симуляторе работа с EEPROM невозможна. Данные при симуляции в ячейках равны 0! Для примера в “Конфигурации” приведён пример составного блока (рис. 5), который выполняет функции энергонезависимого триггера. После выключения питания состояние триггера сохраняется. Блок имеет три входа: R, S и чтения ячейки EEPROM памяти и два равноценных выхода – один дискретный, а второй для записи в ячейку памяти. При написании программы нужно обязательно учитывать, что частая запись в EEPROM может повредить память. На время отладки в симуляторе нужно отключить вход и выход EEPROM блока от ячеек и просто соединить их между собой, как показано на рис. 6.

Canny 3 tiny pro на каком микроконтроллере

Рис. 5. Пример составного блока

Canny 3 tiny pro на каком микроконтроллере

Рис. 6. Вход и выход EEPROM блока

3.Для подавления “дребезга” контактов можно использовать составной блок из того же файла “Конфигурация.cfd”, блок 1 на рис. 7. Он предназначен для подавления “дребезга” контактов входных сигналов датчиков. У него три входа – собственно для входного сигнала, вход значения задержки фильтрации входного сигнала (задаётся константой) в миллисекундах и вход, который определяет, нужно ли инвертировать полученный сигнал (тоже задаётся константой).

Canny 3 tiny pro на каком микроконтроллере

Рис. 7. Блок 1

4.Для внешнего регулирования выдержки времени используются подстроечные резисторы R1 и R2. Для подключения их к таймерам лучше использовать составной блок задержки включения из примера в файле “Конфигурация.cfd”, блок 2 на рис. 7. Внутренняя схема блока 2 показана на рис. 8. Причина – значение, считанное с аналогового входа, немного меняется с каждым циклом опроса программой, и если подавать его непосредственно на вход, отвечающий за выдержку времени таймера вместо константы, то это приведёт к некорректной работе таймера в период отсчёта времени. Особенно это заметно на малых значениях входного аналогового сигнала. Поэтому по приходу положительного фронта на вход запуска таймера отмасштабированное значение с аналогового входа блоком 1 будет зафиксировано в триггере 3 и не будет меняться до следующего цикла запуска таймера 4. Блок 2 детектирует фронт сигнала – на его выходе появляется кратковременный импульс лог. 1, который разрешает запись значения выдержки времени в триггер 3. Для формирования других типов временных задержек можно модифицировать этот блок. Для формирования задержки на отключение надо заменить блок 2 на детектор спада импульса, а таймер 4 – на задержку отключения.

Canny 3 tiny pro на каком микроконтроллере

Рис. 8. Внутренняя схема блока 2 (по клику крупно)

Canny 3 tiny pro на каком микроконтроллере

Рис. 9. Примеры блоков, обеспечивающих простейшие алгоритмы

Блок 3 – это пример реализации энергонезависимого триггера, см. рис. 5. Лог. 1 на входе I2 триггер включается и включает светодиод зелёного свечения на плате микроконтроллера, лог. 1 на входе I3 отключает триггер и гасит светодиод. Подавлять дребезг для входов триггера не нужно. Состояние триггера сохраняется и после выключения питания. Если в вашей конструкции предполагается использовать больше энергонезависимых элементов, тогда нужно дополнить число регистров чтения и установки энергонезависимой памяти в рамке. Интервал адресов ячеек – от 0 до 63. Ячейки состоят из двух байтов, поэтому в них можно сохранять не только битовые значения, но и числовые от 0 до 65535 (0-FFFF).

Микроконтроллер подключают к компьютеру через разъём USB-micro. Никаких программаторов при этом не нужно. На микроконтроллер CANNY также не нужно подавать питание в режиме программирования – достаточно напряжения 5 В от разъёма USB. При первом подключении понадобится обновить системное ПО микроконтроллера – программное обеспечение, аналогичное операционной системе компьютера. Находим на панели инструментов вверху кнопку “Устройство” – “Системное ПО” – “Записать”. Нажимаем на неё. Находим в диалоговом окне в папке, куда устанавливали программу CannyLab, папку ссх. В ней открываем папку canny3tinypro. Выбираем файл конфигурации c3tprov00209.ccx. Программа выведет предупреждение “в устройстве уже содержится конфигурация”. Подтверждаем действие. Произойдёт обновление системного ПО.

После этого можно загружать программу. Для первого опыта можно загрузить файл “Конфигурацияю.cfd”. На панели инструментов выбираем “Устройство” – “Подключить”. После того как микроконтроллер успешно подключён, выбираем “Устройство” – “Диаграмма” – “Записать”. Программа может вывести предупреждение “В устройстве уже содержится диаграмма. Перезаписать?”. Подтверждаем.

После загрузки отключаем микроконтроллер – “Устройство” – “Отключить”. Теперь на контроллер можно подавать внешнее питание. Для удобства монтажа в шкаф на плате контроллера предусмотрены два клеммника под питание 230 В – в верхней части и в нижней. Переменное напряжение 230 В может быть подано на любой из этих клеммников.В устройстве применён контроллер CANNY 3 Tiny PRO. Микросхема DA1 – ULN2003D в корпусе SO16, если применить в другом корпусе, то придётся менять разводку печатной платы. Трансформатор питания Т1 – BVEI305 2051 мощностью 3 ВА 230В/9В, выходной ток – 334 мА. Диодный мост VD1 – MB6S с выходным током до 0,5 А. Конденсатор С1 – TKR222M1EJ21M ёмкостью 2200 мкФ на номинальное напряжение 25 В или любой подобный оксидный, С2 – GRM188R61H225KE11D типоразмера 0603 для поверхностного монтажа ёмкостью 2,2 мкФ. На плате есть место для конденсатора типоразмера 1206. Остальные конденсаторы С3-С11 – CC1206KRX7R9BB104 типоразмера 1206 ёмкостью 0,1 мкФ на номинальное напряжение 50 В. Резисторы R3-R26 – типоразмера 1206.

Стабилитроны VD2-VD10 – BZV55C4V7,115 с напряжением стабилизации 4,7 В. Подстроечные резисторы R1 и R2 – 3362P-1-103LF сопротивлением 10 кОм. Подойдут резисторы такого же типа сопротивлением в интервале от 1 до 10 кОм. Реле – TRC-12VDC-SD-AD – это миниатюрное реле на номинальное напряжение 12 В с одним замыкающим контактом, коммутирующим резистивную нагрузку током до 5 А при напряжении 230 В.

Кнопка SB1 – DTS-61R-V размерами 6х6х4,3 мм. Светодиоды индикации работы выходных цепей HL1-HL7 жёлтого свечения FYL-3014YD диаметром 3 мм.

Все вышеперечисленные компоненты смонтированы на печатной плате размерами 104х72 мм из фольгированного с одной стороны текстолита толщиной 1 мм. Элементы для поверхностного монтажа устанавливают со стороны печатных проводников. Чертёж печатной платы и схема расположения выводных элементов показаны на рис. 10. На плате есть одна перемычка. Схема расположения элементов для поверхностного монтажа приведена на рис. 11. Плата разрабатывалась под изготовление методом лазерно-утюжной технологии.

Canny 3 tiny pro на каком микроконтроллере

Рис. 10. Чертёж печатной платы и схема расположения выводных элементов

Canny 3 tiny pro на каком микроконтроллере

Рис.11. Схема расположения элементов для поверхностного монтажа

Платы микроконтроллеров с уже напаянными разъёмами представлены на рис. 1. Микроконтроллер удобно извлекать из гнёзд платы специальным экстрактором (рис. 12), который можно найти в интернет-магазинах.

Canny 3 tiny pro на каком микроконтроллере

Рис. 12. Экстрактор

Canny 3 tiny pro на каком микроконтроллере

Рис. 13. Рабочий вариант контроллера для установки на DIN-рейку

Рабочий вариант контроллера для установки на DIN-рейку показан на рис. 13. Пример работающего контроллера, смонтированного в электрошкафу, изображён на рис. 14.

Canny 3 tiny pro на каком микроконтроллере

Рис. 14. Пример работающего контроллера, смонтированного в электрошкафу

Canny 3 tiny pro на каком микроконтроллере

Рис. 15. Схемы внешних соединений

Пример схемы внешних соединений представлен на рис. 15. Питание контроллера 230 В подаётся на любую пару контактов разъёмов в верхней или нижней части платы контроллера. Входы 14 представляют собой “сухие” контакты выключателей и контактных датчиков.

Выходы – релейные, к выходу Q2 подключена катушка контактора КМ1, для гашения выбросов ЭДС самоиндукции параллельно обмотке включён варистор JVR07N361K65PU5, 230Vac/300Vdc, 1200A. Эта мера позволит избежать преждевременного износа контактов реле на плате контроллера. Гашением на катушке маломощного реле K1 можно пренебречь. Транзисторный выход задействован для управления лампой HL2, работающей в режиме маячка для индикации процесса работы. Выводы Q5 и Q6 задействованы во внешних цепях, и на схеме эти цепи не показаны.

Файл печатной платы в формате SprintLayout 6 и файл конфигурации находятся здесь.

1.Интегрированная среда разработки CannyLab v2.13. – URL: https://canny.ru/ downloads/ (07.12.22).

2.CANNY форум. – URL: https://forum. canny.ru/index.php (07.12.22).

3.Открытый корпус Sanhe 23-59 для монтажа печатной платы на DIN-рейку. – URL: https://silines.ru/23-59 (07.12.22).

Когда возникает необходимость решения задач по автоматизации различных объектов малой степени сложности, специалисты АСУТП традиционно применяют контроллер, например такой, как Siemens Logo!, а радиолюбители-самодельщики сами изготавливают устройства на интегральной или дискретной электронной базе. Сложность этих устройств варьируется от простейших схем на диодах, реле и транзисторах до схем на цифровых микросхемах и/или микроконтроллерах.

Стоимость же самого дешёвого промышленного контроллера – не менее 10000 руб. даже при наличии бесплатного программного обеспечения для написания прикладных программ.

Сделать бюджетное устройство на релейных или интегральных компонентах – оптимальный вариант, пока задача не содержит более нескольких временных задержек или счётчиков. С увеличением функционала сложность такой схемы возрастает в геометрической прогрессии.

В то же время отечественная фирма Canny (г. Москва) выпускает линейку бескорпусных микроконтроллеров под таким же наименованием CANNY Эти микроконтроллеры предназначены для работы в системах безопасности, автотранспорте, экспериментальном, лабораторном и учебном оборудовании, промышленной автоматике и прочем оборудовании. Отличительные особенности микроконтроллеров – встроенные средства отладки и загрузки программ в микроконтроллер и наличие бесплатной программы CannyLab для работы с этим микроконтроллером. Интегрированная среда CannyLab – это инструмент для разработки прикладных программ с использованием языка функциональных блоковых диаграмм CFD. Она предназначена для написания, отладки и записи прикладной программы во внутреннюю память программируемых логических микроконтроллеров CANNY. Для радиолюбителей, занимающихся цифровой техникой, написание программы не доставит затруднений – вплоть до полного переноса один к одному физической цифровой схемы в программный вид.

Процесс написания прикладной программы прост – вы просто выбираете на панели функциональных блоков подходящий блок, перетаскиваете его на рабочую область и соединяете мышкой его входы и выходы, согласно задуманному алгоритму. Также можно на любом этапе запустить отладчик-симулятор для тестирования программы. В нём возможно как циклическое (непрерывное) выполнение программы, так и пошаговая отладка с заданием точек останова и возможностью принудительно задать какие-либо значения на входах блоков. По окончании разработки полученная программа загружается в микроконтроллер. Для этого соединяют компьютер и микроконтроллер кабелем USB-micro и нажимают на кнопку загрузки. Питание на микроконтроллер при программировании подавать не нужно.

CANNY3 Tiny PRO можно свободно приобрести через поставщиков в Интернете. Микроконтроллер поставляется в комплекте с двумя 14-штырьковыми PLS-разъёмами. Для использования его в конструкции эти разъёмы надо впаять на плату в специально предусмотренные отверстия со стороны, противоположной микроконтроллеру и USB-разъёму (рис. 1).

Canny 3 tiny pro на каком микроконтроллере

Контроллер представляет собой плату, на которой находятся источник питания, реле и элементы согласования входных сигналов для микроконтроллера. При необходимости можно установить плату в специальный открытый корпус на дин-рейку. Размеры платы подогнаны под корпус Sanhe 23-59 (100 мм).

Canny 3 tiny pro на каком микроконтроллере

Схема контроллера показана на рис. 2. Источник питания собран на понижающем трансформаторе Т1, диодном мосте VD1 и сглаживающих конденсаторах С1 и С2. Полученное постоянное напряжение 12 В – нестабилизированное и используется для питания микроконтроллера, внешних цепей и реле. Контроллер имеет девять дискретных входов для плюсового напряжения, к ним можно подключить контакт от внешнего устройства, при подаче через который напряжения +12 В будет считаться сигналом лог. 1 для контроллера. Размыкание контакта будет лог. 0.

Для первого входного канала входной согласователь уровня состоит из резистора R10 и стабилитрона VD2. Он понижает входное напряжение 12 В до номинального напряжения микроконтроллера 4,7 В (лог. 1). Конденсатор С3 фильтрует возможные импульсные помехи. Светодиод HL8 и резистор R11 предназначены для индикации наличия входного сигнала. Для остальных каналов, со второго по девятый, схемы идентичны. Ещё один дискретный сигнал может быть получен от кнопки SB1, расположенной на плате контроллера, она может быть использована в прикладной программе микроконтроллера. Подтягивающий резистор к плюсовой линии питания для кнопки должен быть обязательно сконфигурирован в программе микроконтроллера. Нажатие на кнопку формирует уровень лог. 0 на входе микроконтроллера, поэтому для удобства работы с этим сигналом его нужн о инвертировать. Всё это выполнено в файле “Конфигурация.cfd”.

Кроме дискретных сигналов, в микроконтроллере можно задавать два аналоговых. Для этого служат два подстроечных резистора R1 и R2. Их можно использовать для возможности регулирования выдержек таймеров прикладной программы в процессе работы, задания частоты и скважности генераторов.

Контроллер имеет семь выходных дискретных каналов Q1-Q7, управление которыми идёт через микросхему DA1. Первые шесть каналов выполнены на реле K1-K6, причём каналы Q1-Q4 объединены в группу, а Q5 и Q6 имеют полную развязку от остальных. Канал Q7 не имеет выходного реле и предназначен для частых включений и выключений маломощной нагрузки, например, реализации ШИ-модуляции для регулирования мощности электронагревателя через твердотельное реле или управление сигнальной светодиодной лампой в режиме маячка.

Микросхема DA1 представляет собой семь каналов на транзисторах, включённых по схеме Дарлингтона с нагрузочной способностью до 500 мА и служит для согласования выходных сигналов микроконтроллера А1 с нагрузками. Дополнительные диоды, интегрированные в микросхему DA1, гасят выбросы ЭДС самоиндукции на катушках реле K1-K6. Реле K5 и K6 можно не устанавливать, тем самым увеличив число транзисторных каналов за счёт уменьшения релейных выходов. Цепи HL1-HL7 и R3-R9 служат для индикации включения выходных каналов.

При использовании транзисторных выходов нужно учитывать нагрузочную способность встроенного блока питания микроконтроллера до 300 мА и принимать решение об использовании отдельного блока питания для нагрузки.

Прикладная программа для микроконтроллера пишется в программе CannyLab. В момент написания статьи была актуальна версия v2.13.

Скачиваем и устанавливаем программу. Также понадобится файл “Конфигурация.cfd”. После установки запускаем программу. Программа предложит выбрать тип микроконтроллера, с каким она будет работать. Нажимаем на кнопку “Отмена”. Интерфейс самой программы интуитивно понятен. Вверху находится главное меню программы. Слева – панель функциональных блоков. Для установки блока на рабочую область достаточно перетянуть блок мышкой. Соединяются блоки связями – тоже мышью. Подробное описание работы интерфейса и каждого блока можно найти в помощи программы, нажав на клавишу F1.

Далее в пункте “Файл” выбираем “Открыть”. Находим на диске предварительно загруженный файл-заготовку под именем “Конфигурация.cfd”. Открываем его. В верхней части рабочего поля видим уже готовый шаблон в рамке с поименованными выводами для программы, согласно принципиальной схеме контроллера (рис. 3). Какие-либо изменения в него вносить не нужно, так как это повлияет на корректность работы всей прикладной программы. Эта часть программы является обязательной, без неё контроллер неработоспособен. Ниже, вне рамки, находятся составные блоки, об их назначении чуть позже.

Canny 3 tiny pro на каком микроконтроллере

Для проверки корректности написанной программы нужно воспользоваться функцией “Сервис” – “Проверить диаграмму”. После проверки можно проверить работу диаграммы на симуляторе. Для этого включаем симулятор: “Симулятор” – “Включить”. Попадаем в режим симуляции диаграммы. В нём имитируем работу программы. Для этого запускаем симулятор: “Симулятор” – “Запуск”. Отработка симуляции соответствует реальной работе программы в микроконтроллере. Для подачи сигнала на какой-либо вывод нужно щёлкнуть по нему правой клавишей мыши и выбрать из меню “Установить значение” (рис. 4). Для дискретного сигнала это лог. 1 или лог. 0, для аналоговых входов Т1 и Т2 с резисторов R1 и R2 – значения от 0 до 1023. Значения можно вводить как в десятичной форме, так и в шестнадцатеричной или в двоичной.

Canny 3 tiny pro на каком микроконтроллере

При написании программы очень удобно объединять отдельные части программы в составные блоки. Это пригодится при разработке сложных программ, при этом получается небольшой по размеру функциональный блок, на входы и выходы которого подаются сигналы, а внутри у него может быть сколь угодно сложная схема. Копируя такой составной блок, можно существенно ускорить процесс создания программы. Дополнительно можно ввести вход управления EN для этого блока. При подаче на этот вход лог. 1 блок будет выполняться, при лог. 0 блок будет выключен, на выходах останутся значения, бывшие в момент отключения.

Набор из 37 датчиков для Arduino

В китайских интернет-магазинах очень популярен дешевый набор из 37 модулей (преимущественно различных датчиков) для Arduino. Например:

Доставка в обоих магазинах бесплатная.

Canny 3 tiny pro на каком микроконтроллере

Набор из 37 датчиков. Фото с Aliexpress

Этот набор содержит датчики и другие модули, позволяющие реализовать практически любую идею начинающего изучать Arduino, и является хорошим дополнением к наборам Arduino Starter Kit (о том, как выбрать Arduino начинающему и о наборах Arduino Starter Kit мы писали в статье).

Подробнее про входящие в этот набор датчики мы напишем отдельно. А сейчас приводим список компонентов, входящий в набор:

Все цены приведены по состоянию на день выхода статьи.

Заклятые враги или лучшие друзья?

В настоящее время подумываем издать что-нибудь на тему Arduino, так как в 2015 году эта тема наконец-то стала проклевываться на российском рынке, как в виде книг, так и в виде комплектов-конструкторов. Однако проработка этой темы вдохновила нас на перевод замечательного материала с сайта «Digitaltrends», автор которого очень толково и объективно сравнивает Arduino с новейшим миниатюрным компьютером Raspberry Pi, анализирует достоинства и недостатки обеих технологий.

Перевод этого материала мы бы хотели опубликовать сегодня, а заодно добавить небольшой опрос в нашем традиционном стиле. Поделитесь вашими впечатлениями, предпочтениями, расскажите об опыте работы с той или иной из описанных платформ, если он имеется.

Итак, вы приглашаетесь под кат.

Canny 3 tiny pro на каком микроконтроллере

В настоящее время инженеры-любители, увлекающиеся конструированием в духе «сделай сам», не испытывают недостатка в специальных устройствах, позволяющих оборудовать любые изделия хорошей электронной начинкой. Одно из самых популярных решений такого рода — это дешевый микрокомпьютер Raspberry Pi, система на кристалле (SoC), использующая полнофункциональную версию ОС Linux (этот компьютер разрабатывался в обучающих целях). Также существует платформа Arduino — микроконтроллер, обладающий внушительной технической поддержкой (целое сообщество разработчиков) и имеющий сотни схем-расширений (так называемых «шилдов»).

После анонса о появлении компьютера Raspberry Pi многие могли подумать, что платформа Arduino морально устарела, однако вполне вероятно, что это слишком поспешное суждение. На самом деле, ниши применения обоих устройств отличаются, у каждого из них есть свои достоинства и недостатки, а также спектр задач, которые решаются по-разному. Кроме того, если опираться лишь на сухие данные спецификаций, то прямое сравнение двух платформ оказывается очень неоднозначным, учитывая, что процессор Arduino с частотой 16 MHz явно уступает процессору Pi с частотой 900 MHz.

Canny 3 tiny pro на каком микроконтроллере

Безусловно, Raspberry Pi является полнофункциональным компьютером. Он обладает всеми атрибутами настоящего компьютера: выделенным процессором, памятью и графическим драйвером для вывода через HDMI. На нем даже работает специальная версия операционной системы Linux. Поэтому на Raspberry Pi легко установить большинство программ для Linux. Стоит немного потрудиться — и Raspberry Pi можно использовать как полноценный медиа-сервер или эмулятор видеоигр. Хотя в Pi и отсутствует внутреннее хранилище данных, на этом компьютере можно использовать смарт-карты в качестве флэш-памяти, обслуживающей всю систему. Таким образом, можно быстро выгружать для отладки различные версии операционной системы или программных обновлений. Поскольку это устройство обеспечивает независимую соединяемость по сети, его можно настраивать и для доступа по SSH, либо пересылать на него файлы по протоколу FTP.

Canny 3 tiny pro на каком микроконтроллере

Платы Arduino – это микроконтроллеры, а не полноценные компьютеры. На них нет операционной системы как таковой, Arduino просто выполняет код, интерпретируемый прошивкой. В данном случае вы не имеете в распоряжении базовых инструментов, предоставляемых операционной системой, но, с другой стороны, такое непосредственное выполнение несложного кода протекает проще, а при работе не возникает никаких издержек, связанных с операционной системой. Основное назначение платы Arduino – взаимодействие с сенсорами и устройствами, поэтому Arduino отлично подходит для аппаратных проектов, где требуется просто реагировать на различные сигналы сенсоров и ручной ввод. Может показаться, что в этом нет ничего особенного, однако на деле Arduino – сложная выверенная система, значительно облегчающая управление устройствами. Она отлично подходит именно для сочленения других устройств и исполнительных механизмов, где полновесная операционная система просто не требуется, так как речь идет просто о регистрации действий и реагировании на них.

Требования к электропитанию для этих двух систем очень отличаются. Raspberry Pi для работы нужно постоянное напряжение 5V, более того, работа Raspberry Pi завершается программным процессом — как у обычного компьютера. Arduino, в свою очередь, начинает выполнять код сразу после включения и прекращает работу, когда вы вынимаете штепсель из розетки. Чтобы расширить функционал устройства с Arduino, вы подключаете устройство либо непосредственно к штырьковым контактам самой платы Arduino либо к платам расширений (шилдам) для нее. Существуют сотни разнообразных шилдов, каждый из которых предназначен для решения специфической задачи, может взаимодействовать с теми или иными сенсорами, а также с другими шилдами, которые вместе образуют полноценный управляющий блок.

Raspberry Pi сложно переносить с места на место, так как вы не сможете просто вставить в него две батарейки AA. Для работы этого компьютера необходимо обеспечить бесперебойное питание, а также подключить дополнительное оборудование, которое гарантирует подачу постоянного тока. В случае с Arduino весь процесс несколько упрощается, так как система требует всего лишь комплекта батареек, обеспечивающего напряжение не ниже определенного уровня; также нужен простой шилд для управления электропитанием. Даже при аварийном отключении тока на Arduino вы не рискуете ни повредить операционную систему, ни получить какие-либо программные ошибки. Стоит заново подключить Arduino к источнику энергии — и прибор просто возобновит работу.

В Raspberry Pi есть встроенный Ethernet-порт, который обеспечивает легкий доступ к любой сети и практически не требует настройки. Провести беспроводной Интернет на Raspberry Pi также не составляет труда: покупаете USB-адаптер для WiFi и устанавливаете соответствующий драйвер. Как только это сделано, можете использовать операционную систему для подключения к веб-серверам, обрабатывать HTML либо просто что-нибудь писать в Интернете. Можете даже использовать Raspberry Pi для создания виртуальной частной сети или в качестве сервера печати.

Canny 3 tiny pro на каком микроконтроллере

К сожалению, система Arduino без дополнительных модификаций не приспособлена для работы по сети. С ней нужно как следует повозиться, чтобы установить надежное соединение, но это вполне возможно. Вам потребуется дополнительная схема, оснащенная Ethernet-портом, также понадобится подключить кое-какие кабели и написать нужный код, чтобы все заработало. В общем, это достаточно сложная работа, поэтому некоторые компании выпускают платформы Arduino с уже встроенным функционалом Ethernet.

Как Raspberry Pi, так и Arduino обладают набором интерфейсных портов, однако аналоговые сенсоры гораздо проще подключать именно к Arduino. Микроконтроллер с легкостью интерпретирует различные сигналы на основе написанного вами кода и реагирует на них. Поэтому Arduino отлично подходит для тех случаев, когда вы планируете выполнять серии команд или реагировать на показания сенсоров, в зависимости от которых будет корректироваться работа сервоприводов и устройств.

В свою очередь, Raspberry Pi для эффективного взаимодействия с такими устройствами требует специального программного обеспечения — вероятно, это излишние сложности, если вы хотите просто автоматизировать поливку в саду или хранить пиво при нужной температуре. Во многих проектах Arduino и Raspberry Pi используются совместно, причем Arduino выступает в качестве управляющей платы, на которой выполняются команды, выдаваемые ПО Raspberry Pi. Информация с сенсоров подается на Raspberry Pi, где она записывается, либо в ответ на нее выполняются те или иные операции.

Итак, какая из двух технологий подойдет вам? Однозначного ответа нет, так как он зависит от конкретного проекта.

В каких случаях лучше выбрать Arduino? Это делается, если ваша основная задача – считывать данные сенсоров, менять значения на двигателе или других устройствах. Учитывая требования Arduino к электропитанию и простоту обслуживания этой системы, устройство вполне можно эксплуатировать не выключая, при этом почти не вмешиваясь в его работу.

Когда лучше остановиться на Raspberry Pi? Это делается при решении таких задач, которые было бы логично выполнять на персональном компьютере. Raspberry Pi упрощает управление потоком операций в разных ситуациях: если вы подключаетесь к Интернету для считывания или записи данных, воспроизводите какую-либо медиа-информацию или подключаетесь к внешнему дисплею.

Учитывая, что Arduino и Raspberry Pi решают разные задачи, в определенных ситуациях удобно использовать эти устройства совместно. Существует ряд возможностей соединения двух устройств; в таком случае вы получаете клиентский доступ к настройкам и коду через Pi, в то время как Arduino контролирует управление рабочими органами и собирает информацию с сенсоров. Существует немало вариантов такого соединения: по USB, локальной сети или в виде простого подключения портов ввода/вывода Arduino к Raspberry Pi.

Подключение схемы и программа для Canny 3 tiny

В интернете есть много примеров, как подключить Arduino по UART, про Canny примеров существенно меньше, поэтому начнем с него. Чтобы не раздувать объем статьи и не повторяться, напомню, что самые основные вопросы, того, как работать с Canny и средой разработки CannyLab я рассмотрел в этой статье, а пример подключения датчиков к аналого-цифровому преобразователю (АЦП) и передачу сообщения через Virtual COM-порт, я разобрал в этой статье.

Для тех, кто не станет это читать, а сразу попробует подключить датчики к АЦП, есть важное замечание. Не повторяйте мою ошибку, для того, чтобы выходы контроллера № 5 и №6, смогли работать в режиме АЦП надо поставить перемычки, как на картинке ниже. Это не сложно, даже я справился.

И еще один важный момент на выходах контроллера будет напряжение питания, то есть если вы вместо USB подключитесь от внешнего источника питания убедитесь, что напряжение на выходах не превысит допустимое для датчиков и UART.

Для этой статьи нам хватило бы и одной перемычки, но, если уж достали паяльник, зачем мелочиться?

Обратите внимание на клеммную колодку, в стандартной комплектации для этой версии контроллера идет родной кабельный жгут, он жесткий и наверняка удобный если использовать внутри автомобиля, а вот для опытов за столом — не очень. Я придумал ноу-хау, заменил родной жгут на жгуты, которые часто идут в комплекте с компьютерной техникой, ну или продаются в магазинах, торгующих DIY электроникой и это оказалось очень удобно. Они не плохо сидят в колодке, мягкие и при этом дают дополнительное удлинение.

Перейдем к схеме подключения:

Всё достаточно просто и не потребует каких-то особых навыков, думаю практически любой справится.

Вначале разберемся с питанием платы. «землю» мы возьмем с выхода «-» контроллера, а вот с плюсом все не так однозначно. На первый взгляд логичным кажется, подключится к клемме «+», но на практике это видимо клемма для ВХОДА +5В. Поэтому вместо нее мы настроим один из выходов, как вывод +5В, подав на него логическую единицу и подтянув к «плюсу». Я решил взять выход № 3.

Датчик давления подключается очень просто. По сути — это резистор. К одной его «ноге» подводим питание, а от второй «ноги» заводим провод на вход контроллера, подключенный к АЦП (либо № 5 либо № 6). Я выбрал № 6.

Кстати с датчиком давления я прогадал дважды. Вторым моим просчетом стало подключение датчика. Он не влезает в макетную плату, оказывается его надо подключать в винтовой клеммник или что-то похожее. Пришлось выкручиваться с «крокодилами».

Датчик движения подключается не намного сложней, в гнездо «Vin» подводим +5В с платы, в гнездо «GND» соединяем с «землей» на макетной плате, а гнездо OUT соединяем с любым цифровым входом контроллера, я соединил с выходом № 5 (мы не будем переключать его в режим АЦП).

Осталось подключить контроллер к «Малине» через UART. Для этого выход № 2 контроллера, который в режиме «UART» у нас становится выходом «TX», надо подключить к входу GPIO RX «Малины», также надо соединить «землю» на плате и GPIO «GND» Raspberry PI.

Многие советуют согласовать уровень напряжения до 3.3 В, и я даже пробовал подключать Canny через делитель, напряжения, но с ним работает хуже чем без него (или вообще не работает), поэтому в данном случае я подсоединился к UART «Малины» напрямую. Вроде ничего не сгорело. Все работает.

Возможно, у вас возникла мысль: «Почему он подключается» проводами к UART, когда можно по Bluetooth?». Действительно, в сети есть много примеров подключения Arduino через UART к модулю HC-06. Если верить форуму, то Canny тоже подключается к нему без проблем. Но я еще сам не пробовал. Мне хотелось подключиться с помощью проводов, а подключение по Bluetooth я решил отложить до следующего раза.

Вот как схема выглядит в сборе:

Перейдем к программе для контроллера (диаграмме):

В блоке «Установка параметров», мы включаем режим АЦП для канала (входа) №6, канал № 3 переводим в режим дискретного выхода и подаем туда логическую единицу (+5В в нашем случае) практически всё разбирали в этой статье.

Незнакомы нам только параметры настройки UART. Благо тут всё просто. У Canny 3 tiny всего 1 интерфейс UART (например, у Canny 7 их два). При включения режима UART выход № 1 становится RX, выход № 2 TX. Мы выберем привычную многим скорость передачи 9600 бод, а вот режим передачи данных ограничен. Доступное количество бит данных только 8 байт и 1 стоповый бит(у «старших» моделей контроллеров выбор побольше), Для того, чтобы включить UART необходимо в соответствующий регистр «Регистр установки конфиг UART1» записать заранее заданную константу:

На самом деле в нашем случае можно было выбрать константу, включающую только режим передачи UART, потому что мы ничего принимать назад не планируем. Но я решил показать более общий пример.

Если вы при создании диаграммы выбрали правильный контроллер, то CannyLab не позволит вам выбрать ту константу, которая бы для него не подошла. Поэтому выбрать заведомо опасный режим не получиться. Правда всегда остается возможность ввести константу вручную, но лучше так не делать.

В сообщении мы будем отправлять 10 символов (включая 2 проблема), поэтому запишем в В регистр установки длинны сообщения константу равную 10.

Про подтяжку 1 TX к единице я не уверен, но на всякий случай включил этот пункт, я так понимаю он нужен, чтобы не подтягивать резистором.

В блоке «Периодическая отправка по UART и VCP» Мы с помощью генератора ШИМ задаем отправку 1 раз в 2 секунды для того, чтобы в течение секунды контроллер не забивал канал постоянной отправкой сообщения, мы используем «Детектор заднего фронта». Который сработает только один раз в момент переключения с единицы на ноль, если контроллер готов в этот момент передать сообщение по UART, то на вход блока логического умножение придут две единицы на выходе соответственно тоже буде «1», которая даст команду контроллеру отправить сообщение через UART, а также на всякий случай для отладки в USB-COM порт (об этом я подробно писал в прошлой статье).

В блоке «Индикация» все совсем просто, если значения с датчика давления меньше определённого порога и при этом датчик движения сработал (даст «1» на выход), то мы включим зеленый светодиод контроллера как сигнал о тревоге.

Было бы круто, если бы система работала как в кино:

Но мы ограничимся только включением светодиода.

Вот наглядная демонстрация:

Остался последний блок «Формирование сообщения»

Мы получаем данные с АЦП, разрешение АЦП от 0 до 1023. ПО UART мы посылаем символы, а значит показания от датчика давления, надо преобразовать в строку. Поскольку максимальное число 1023 (4 цифры) значит нам потребуется 4 байта. «Конвертер числа в строку» на выходах выдает пару символов, у нас будет 2 пары символов, каждую из них мы отправим в регистры установки сообщения UART и VCP. Дальше нам надо записать разделитель, чтобы показания не сливались, рас уж CannyLab использует пару символов, то возьмем в качестве разделителя два символа «пробел». Аналогичным образом преобразуем показания датчика движения, он дискретный выдает либо 00 либо 01, значит нам нужна только одна пара символов. В самом конце сообщения запишем символы перевода каретки и новой строки.

Как я уже писал в статье про фоторезистор, у Canny нет своего монитора COM-порта, но можно использовать любой сторонний, а рас уж мы чуть позже будем использовать Arduino IDE, то воспользуемся встроенным в него монитором COM-порта.

Вот, я давлю пальцем на датчик давления и попутно двигаюсь:

Теперь переедем к Arduino.

Подключение схемы и программа для Arduino Uno

Про Arduino я не буду, так подробно рассказывать, ибо всё достаточно тривиально.

Обратите внимание! Поскольку у Arduino выход RX/TX работа на напряжении 5В, а у Raspberry PI на 3.3 В, люди советуют, подключать Arduino к UART «Малины» с помощью специальных модулей или хотя бы с помощью делителя напряжения. Модуля специального у меня нет, а вот делитель напряжения — всегда пожалуйста. Я взял 3 резистора номиналом 1000 Ом. И сделал отвод после второго резистора, на котором упадет 2/3 напряжения. Если округлить питание по USB до 5 В, то как раз получается 5*0.66=3.3 В .

Хотя напрямую Arduino к UART Raspberry PI я тоже подключал и вроде все работало.

Датчик давление подключим к «+» и к аналоговому входу «А1». Датчик движения к питанию и цифровому входу № 5.

Вот так схема выглядит в сборе:

Вот код скетча для Ardino:

void loop() <int adjustment = 250; int pressure_sensor = analogRead(A1) — adjustment; int motion_sensor = digitalRead(5);

Serial.print(pressure_sensor); Serial.print(» «); Serial.println(motion_sensor); if ((pressure_sensor

Код простой, единственное, что стоит объяснить это переменную «adjustment». Дело в том, что при подключении к Arduino датчик давления, даже без нагрузки временами показывал не нулевые значения, и я ничего лучше не придумал, как вычесть усредненное значение «шума», для унификации показаний с Canny.

Также, как и в прошлом случае, мы реализовали индикацию встроенным светодиодом, в том случае если датчики сработали:

Какие бывают датчики для Arduino и Raspberry Pi?

Датчиков, называемых также сенсорами, существует огромное множество и в первую очередь они имеют разное назначение.

Canny 3 tiny pro на каком микроконтроллере

Разные датчики. Фото с DX.com

Основные датчики (по назначению):

Это далеко не все по назначению датчики. Существуют также датчики определения влажности, огня, дыма и т.д. В принципе, можно подобрать датчики практически под любую задачу.

Все датчики имеют свои собственные методы взаимодействия. Некоторые можно просто подключить к плате, а подключение других требует дополнительных манипуляций. Например, могут потребоваться резисторы или дополнительные источники питания.

Датчики отличаются по типу сигнала на выходе: аналоговый или цифровой.

Выбирая датчики, можно заметить, что чаще всего упоминается совместимость с Arduino и не упоминается совместимость с Raspberry Pi. Если датчик выдает цифровой сигнал, то его можно подключать к GPIO-портам Raspberry Pi. Если же датчик выдает аналоговый сигнал, то подключить напрямую такой датчик к Raspberry Pi можно только с помощью аналого-цифрового преобразователя (АЦП), который часто включают в платы расширения Raspberry Pi.

Разные датчики могут сильно отличаться по цене, стоимость датчика может составлять $1 или $5, датчики с очень большой точностью определения сигналов могут стоить значительно дороже.

37 датчиков за $37 для Arduino и Raspberry Pi

Canny 3 tiny pro на каком микроконтроллере

Какие бывают датчики для Arduino и Raspberry Pi? Сколько они стоят? Предлагаем обзор интересного дешевого набора из 37 датчиков за $37.

Canny 3 tiny pro на каком микроконтроллере

Изучая Arduino или Raspberry Pi, самое интересное, что можно сделать (после мигания светодиодами, подключения потенциометра, кнопки, двигателя и др.) — это, конечно, использование датчиков. Датчики позволяют определять, что происходит во внешней среде, и действовать на основе этой информации. Датчики, наверное, можно назвать органами чувств робота.

«Как зеницу ока. » или делаем простенькую охранную систему на базе микроконтроллера (Canny или Arduino) и Raspberry PI

Во время подготовки статьи, про распознавание микроконтроллеров с помощью TensorFlow и OpenCV мне одновременно на глаза попались Craftduino, Canny 3 tiny и Raspberry PI, после чего я решил, что будет здорово еще раз объединить их в одной статье. Я долго думал, о чем писать, а потом стыдно признаться, вспомнил, что я здоровый дядька, а еще ни разу не подключал ничего по UART. «В жизни надо попробовать всё» — подумал я. Но писать только про подключение к UART скучно, поэтому незамедлительно были заказаны всякие «игрушки», среди которых были новенькая Arduino, и пара датчиков.

Итак, сегодня мы будем делать охранную систему для моей любимой ручки. Вы удивлены почему именно ручка? Секрет прост, я весьма неопытен во всяких там вопросах электроники и поэтому, когда заказывал датчик давления думал, что он будет действовать по всей площади, а оказалось, что он работает только для определенной контактной площадки. Как ни странно, но во всём доме не оказалось ничего достаточно увесистого, устойчивого и подходящего по размерам, кроме этой ручки. Ну и кроме моего пальца, но экспериментировать с ним я был не готов .

В статье я поделюсь своим опытом подключения датчика давления и доплеровского датчика движения, к микроконтроллерам. Сами контроллеры через проводной интерфейс UART подключим к GPIO Raspberry PI 3. Затем напишем на Python простенькую программку для отображения статуса охранной системы, а в конце подключим смартфон к «малине» с помощью VNC, чтобы следить за охранной системой на удалении от компьютера.

Хотите оставить Индиану Джонса не у дел? Тогда милости прошу под кат.

Как всегда вначале поясню, что я сам новичок в вопросах DIY электроники и потихоньку учусь от статьи к статье. Поэтому не стоит воспринимать, то что я напишу, как истину в последней инстанции. Наверняка всё можно сделать лучше.

Вот о чем пойдет речь сегодня:

Raspberry PI и программа для мониторинга на Python

Для начала, надо включить UART, а также SSH и VNC, чтобы потом подключаться к «Малине» с помощью смартфона

Зайдите в настройки Raspberry PI и включите SSH, VNC, UART, как на картинке:

Еще я на всякий случай отключил Bluetooth.

Напишем простую программу на Python, я использовал встроенную IDE и никаких дополнительных модулей Python не устанавливал. У меня был образ Raspbian with desktop, средний по размеру, который занимает примерно 1,1 Гб.

В нашей программе для мониторинга, мы будем использовать для вывода информации как консоль, так и графический интерфейс. Для реализации GUI я решил использовать Tkinter. Я правда пользуюсь им второй раз в жизни, но мне и надо было всего пару текстовых полей и диалоговое окно.

Импорт библиотек я, пожалуй, пропущу.

После импорта мы задаем установки для UART, сам порт, скорость и время ожидания.

Дальше размещаем по табличной верстке (по сетке) текстовые поля (Label) У нас будет 4 поля из них 2 неизменных, а в двух других будет отображен статус датчика.

Далее создадим бесконечный цикл. В начале цикла будем обнулять метку тревоги counter . Затем прочитаем, данные из последовательного порта. Чтобы не смотреть на всяике записи типа “”, перекодируем сообщение в UTF-8. Затем уберем начало и конец строки, чтобы остались только цифры. Далее разделим строку, обратите внимание разделитель 2 пробела, а не 1. Чтобы программа не вылетала при некорректном сообщении дальнейший код, который завязан на получение сообщение запихнем в условную конструкцию, которая сработает, только если сообщение можно разделить на 2 части. Ну и выведем в консоль показания датчика давления и датчика движения.

Проверяем сработал датчики, если всё нормально, то система пишет «ОК», если один из датчиков сработал счетчик увеличивается на 1 и выдается предупреждение.

В последнем блоке мы обновляем элементы формы Tkinter, после чего проверяем, сколько датчиков сработало. Если в цикле сработало оба датчика то появляется модальное окно с сообщением о тревоге.

Здесь важно отметить, что датчик движения держит на выходе «1» в течение двух секунд с момента фиксации движения. Так, что как правило система успевает сработать.

Ниже снимки экрана, демонстрирующие работу программы:

Сработали оба, система ждет квитирования оператором:

Вроде всё как и планировали.

Заключение

В заключение рассмотрим подключение к Raspberry PI со смартфона. В принципе сложного ничего нет, если вы можете подключиться с компьютера, то и с телефона сможете. Вам надо знать только IP «Малины», имя пользователя и пароль. На своём смартфоне под управлением ОС Android я установил VNC Viewer, но наверняка можно и другой клиент.

Пользоваться, не очень удобно, но работает:

Каждый раз обещаю себе, что не буду писать длинную статью, но вот опять черновик перевалил за 10 печатных страниц. В статье показан простой в реализации пример самодельной охранной системы, простор для фантазии открывается огромный.

Если я пойму, что статья вам была интересна, то набросаю попозже еще одну про подключение через Bluetooth адаптер.

Код ошибки:  Bimmercode и bammerCodes [ Android ]
Оцените статью
OBD