Контроллер Совместимый с UNO3 на DIN реку + Табло TFT +Часы+Джойстик

wasq
Offline
Зарегистрирован: 26.05.2018

       Многим нравиться делать свои изделия на ардуинках + модулях для них и соединять все это проводками и класть этот ворох гирлянд в коробочку. Лично мне это не по душе. Делал не сколько конечных контроллеров для дома, полностью законченных, часть из них ардуино совместимых, т.е. писать для них программы, грузить и отлаживать можно из IDE ARDUINO.

       Но каждый раз разрабатывать новые контроллеры для конкретного применения стало скучно. Использовать промышленные контроллеры простые типа ОВЕНа мне не интересно, они не свободно программируемые, там прошита своя система, которая программируется средствами ЭЛЕКТРИКА и инженера АСУТП ( ему понятными схемами или операторами ) и полного доступа к ресурсам контроллера нет.

       И вот решил сделать и сделал простейший законченный универсальный контроллер, который можно отнести к свободно программируемым. Что это — в нем не прошита ни какая система, кроме загрузчика для АРДУИНО. В вашем распоряжении все средства для его программирования и БИБЛИОТЕКИ для использования всех использованных ресурсов. Он полностью совместим в IDE ARDUINO с платой UNO3 ( реализация на ATMEGA328P). Конструктивно он выполнен для недорогого ( 170 руб ) китайского корпуса на DIN рейку, хотя упаковать его можно и в любой самодельный корпус. Назвал его АРДА. ( Ардуино Домашняя/Доступная Автоматизация).

Основные параметры АРДЫ -

1. Микроконтроллер ATMEGA328P

2. Питание 220 В 50Гц. С защитой от помех, бросков и т.п.

3. Выхода 4 шт реле по одной группе 5А 220В.

4. Аналоговых входов 4 шт. - могут быть использованы как потенциометрические, датчик дока, датчик терморезистора/термистора.

5. Цифровые 4 шт. могут быть использованы как сухой контакт ( не изолированные ) или с опторазвязкой напряжением на входе от 5В до 24 В.

       Также в составе табло на цветном TFT 128х160 со своим контроллером и ПО, джойстик на 5 положений ( вместо клавиатуры), часы реального времени с батарейным питанием и USB адаптор для загрузки ПО или связи с ПК.

       Данное табло общается с АРДОй по интерфейсу I2C. Написаны и отлажены простые библиотеки для данной АРДЫ, написана тестовая программа, на базе которой можно легко создавать свои простые программы управления и меню, а также и самостоятельно писать свои библиотеки, вся информация открыта. Все написано на простом Си, без всяких там классов и объектов. Из библиотек АРДУИНО использована только функция analogRead() - чтобы вам было понятнее, хотя я АЦП программирую напрямую и по прерываниям, а также Srial для связи с ПК.

Вот вид АРДЫ в сборе на собранном макете с имитацией входных и выходных сигналов.

Это вид АРДЫ со снятой передней панели.

Это вид ТАБЛО АРДЫ с его ТЫЛА

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

Чтоб не загромождать пост, и если кому интересно фото и видео это в указанном файле архиве = https://cloud.mail.ru/public/3HDM/5raZbfzwT 

Т.к. не известно это заинтересует кого либо или нет, то более подробную публикацию оставлю на потом, если будет интерес.

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Серьезный подход. Только что-то я диодов паралельно катушкам реле не вижу. И еще используемый БП зарекомендовал себя не с лучшей стороны в плане долговременной надежности даже при номинальной нагрузке. А сколько все это богатство по максимому потребляет?

b707
Offline
Зарегистрирован: 26.05.2017

честно говоря, я не понял, в чем прикол "такого" на ДИН-рейку:

конструкция, устанавливаемое на рейку - должна быть законченным устройством, а тут выше и ниже рейки наблюдается какой-то "шмурдяк" :) с торчащими проводами

wasq
Offline
Зарегистрирован: 26.05.2018

   Для РЕЛЕ используются ключи со встроенными диодами ( интелектуальные ключи ) типа NUD3124D корпус SOt23-6 в одном корпусе Два ключа Сразу. По источнику питания - работают в 5-6 устройствах уже более 5 лет.

    Я использую на входе его два резистора по 50..70 ом как ограничитель пикового тока при запуске, что резко повышает его надежность ( т.к. пиковый ток при запуске более 10А и он может запросто сгореть ), за одно они работают как предохранители = уголь на них махом испарится при не исправности источника питания и предохранит все, да еще с конденсатором выполняют роль фильтра и туда и обратно. Но резисторы ТОЛЬКО ВЫВОДНЫЕ !! Потребляет все хозяйство макс 0,4А и источник дает 0,7А.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

конструкция, устанавливаемое на рейку - должна быть законченным устройством, а тут выше и ниже рейки наблюдается какой-то "шмурдяк" :) с торчащими проводами

вид АРДЫ в сборе на собранном макете с имитацией входных и выходных сигналов.

wasq
Offline
Зарегистрирован: 26.05.2018

b707 пишет:

конструкция, устанавливаемое на рейку - должна быть законченным устройством, а тут выше и ниже рейки наблюдается какой-то "шмурдяк" :) с торчащими проводами

Повторюсь - ЭТО МАКЕТ СОБРАННЫЙ НА ПАНЕЛИ ПВХ == для отладки ПО с имитацией входных и выходных сигналов, вот имитаторы на проводках и подключены, вместо реальных датчиков и механизмов.

 

b707
Offline
Зарегистрирован: 26.05.2017

wasq пишет:

 Я использую на входе его два резистора по 50..70 ом как ограничитель пикового тока при запуске, что резко повышает его надежность

его - кого? Блока питания?

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

вид АРДЫ в сборе на собранном макете с имитацией входных и выходных сигналов.

извиняюсь, исходный текст не читал... слишком мелко.

wasq
Offline
Зарегистрирован: 26.05.2018

b707 пишет:

его - кого? Блока питания?

 

Да питания, вот входные цепи питания = 

b707
Offline
Зарегистрирован: 26.05.2017

Напишите, если не сложно,  С2 какой берете? и варистор?

Я много использую именно этот БП, но мне не приходилов голову ставить какие-то элементы со стороны внешней сети

 

asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

wasq пишет:

 Потребляет все хозяйство макс 0,4А и источник дает 0,7А.

4 включенных реле + дисплей +контроллер и всего 400мА? Что-то не верится.

wasq
Offline
Зарегистрирован: 26.05.2018

Реле 70 мА * 4 = 280 мА, два контроллера по 20 мА = 40 мА. У дисплея жрет только подсветка - я установил = 30мА. ИТОГО = 280+40+30 = 350 мА и плюс  про запас на USB адаптер, часы и оптопары если они будут питаться от внутреннего источника ( перемычки режим сухой контакт по 6 мА ).

 

wasq
Offline
Зарегистрирован: 26.05.2018

        Схема платы БАЗА. На ней реализованы входа/выхода, питание, связь с ТАБЛО. Схема проста и читается легко. На форуме картинки хорошего качества не получается грузить, если хочется подробнее рассмотреть с хорошим качеством — Ссылка Схемы Базы АРДЫ и Спецификации.

Схема = https://cloud.mail.ru/public/xtig/2zhaxDS9z

Спецификация = https://cloud.mail.ru/public/3MZm/4nBW61onj

Небольшие комментарии по схеме.

       Аналоговые Входы — все они защищены диодами от кратковременных мощных помех диодами шотки, резисторами и конденсаторами. На длинных линиях в силовых шкафах обычно наводятся мощные помехи на входные цепи ( до 50-70В длительностью 1-2 млС ). Защита от них крайне необходима. В разъем ВГ4 устанавливается дополнительная плата с резисторами ( если необходимо ) шунтами для измерения тока или подтяжкой к +5В для работы с термисторами ( различными термо сопротивлениями ).

     Цифровые входы выполнены на оптопарах, от установленных перемычках зависит их работа — либо полностью гальванически изолированны и тогда входной напряжение должно быть 5..24В или это без развязки — простой сухой контакт.

     Контакты ВГ1 — без перемычки — для внутри схемного программирования ATMEGA328P. При этом питание от программатора подается только на кристалл ATMEGA328P. Когда перемычка установлена — питание всей схемы от 220В и программирование возможно только по UARTу через загрузчик.

     Контакты ВГ2 — для внутрисхемного программирования, контакты — VL1 для подключение к АРДЕ табло с джойстиком, часами и адаптеров USB.

     Источник питание к 220В подключен через выводные резистор ( 50..70 Ом ), которые осуществляют его плавный пуск ( ограничивают пиковый ток при старте до 3,5А), без оных пиковый ток при старте его может быть более 10...20А, что влечет быструю смерть источнику питания. Конденсатор дополнительно фильтрует входное напряжение, т.к. без резисторов и конденсатора помехи от соседних мощных исполнительных устройств ( коннекторы например ) могут перезапускать микроконтроллер. Варистор защищает от повышенного напряжения питания ( типа подвели не 220В а 380В ). Резисторы также играют роль ОЧЕНЬ БЫСТРОГО одноразового предохранителя, уголь с них испаряется гораздо быстрее чем сгорает плавкий предохранитель, тем более таких плавких предохранителей на 0,1 в принципе нет. Это очень важно для пожарной безопасности, будет хуже если источник питания или еще что то загорится.

FoxJone
Offline
Зарегистрирован: 19.04.2019

Серьезная заявка... Не шучу.  ОВЕН уже напрягся и выслал киллеров к ТСу (шучу). На самом деле продвинуть такую штуку в более-менее массовые продажи очень тяжко будет (и совсем не дешево). Имею опыт неоднократный.

По самой схеме - как я бы решал эту задачу.

1. Атмегу точно бы не ставил, ставил бы что то мощнее, но в той же ценовой категории. Например СТМ.

2. Джойстик явно лишнее. В смысле круто и все такое, но в пыльном шкафу в цеху джойстик ожидает очень много непредвиденных проблем. Я бы поставил несколько кнопок (плюс/минус/ввод/отмена/что то еще...). Тот же самый ОВЕН тоже не дураки, у них не зря там стоят резиновые кнопки. По той же самой причине USB надо закрывать крышкой.

3. Не увидел в описании слов RS-485. Какая автоматизация без связи то? Притом желательно сразу встроенный модбас, что бы был по умолчанию "искаропки".

Вроде все, пока замечаний в голову не приходит. Если не секрет, какова ее стоимость?

wasq
Offline
Зарегистрирован: 26.05.2018

FoxJone пишет:

1. Атмегу точно бы не ставил, ставил бы что то мощнее, но в той же ценовой категории. Например СТМ.

2. Джойстик явно лишнее.

3. Не увидел в описании слов RS-485.

 какова ее стоимость?

   Будут версии и помощнее, но в плане ПЗУ и ОЗУ ( типа ATMEGA128 или 256),  СТМ для простых решений не нужен, он нужен ОВНу для работы в нем медленного интерпретатора. Для 4-6 реле и 2 поплавков или датчиков давления ( температуры) - этого достаточно, тем более, что в табло  18кБ ПО уже со шрифтами и аватарками.

  Джойстик ТОЧНО ЛИШНИЙ - согласен, буду ставить 3-4 кнопки, этого достаточно. Опыт - у джойстика большой люфт и удлиненная ручка болтается  и ее приходится стабилизировать герметиком.

   RS-485 - будет присутствовать в других реализациях ТАБЛО для АРДЫ, там есть и адаптор USB, для более дорогого варианта будет и RS-485, а протокол МотБас есть в библиотеках АРДУИНЫ.

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

    Стоимость всего вместе - в зависимости от доставки и ряда обстоятельств =  (2*110 AVR) + (2*100 платы) + (4*45 реле) + ( 75 питание ) + (6*20 клеммы) +(4*6 опто) + ( 100 мелочь) + ( 200р TFT) + ( 30+30 часы и CH340 ) + ( мелочь табло 75 )+ ( корпус 175) = 1 431 руб.  Т.е. можно уложиться для такого простого варианта в цену комплектующих 1 500 руб. на данном этапе курсов валют.

По поводу STM32. Если нет безумного интерфейса с пользователь + интернета + картинок и мультяшек - то 32-64 кБ + озу 2-8 кБ и 16 Мил Опре Сек !!. Еще помню времена когда автоматизировал на Электронике 60 ( 1979-1983 ) имея всего Озу 8 кб и 16 к ПЗУ и всего 200 тыс Опер в Сек и Вы знаете - ВСЕ получалось в реальном времени. Просто сейчас не хотят утруждаться и пишут все сбором не оптимальных библиотек с ООП, который жрут все ресурсы - все для того, чтобы ничего не писать - страница кода и все. А вот 800.. 1200  страниц на ассемблере уже не приподъемно, ради этого и применяют уже STM32 - но тоже согласен, стоит копейки и думать не надо -= суй в него библиотеки - справиться.

 

FoxJone
Offline
Зарегистрирован: 19.04.2019

wasq пишет:
для более дорогого варианта будет и RS-485

адм485 стоит 40 рублей в Чипидипе (самом дорогом магазине из мне известных). Запаять его сразу на плату и не париться.

Upd. Блин, соврал... 80 рублей он там стоит. Но для своих плат я его по 40 брал, правда не в чипе.

wasq пишет:
а протокол МотБас есть в библиотеках АРДУИНЫ.

Ага-ага... Когда мне приспичило помодбасить (не для себя, а индустриальный проект по ТЗ заказчика), то мне вышло проще самому написать библиотеку, чем этот ардуиновский до ума доводить.

Впрочем, я ламер по сравнению с Петровичем или вон с B707. Им може проще было бы. Факт в том, что ардуиновская библиотека не работает без обработки напильником.

ShAlex13
Offline
Зарегистрирован: 19.01.2018

Что-то мне это напоминает ВМ8036, даже схемы почти похожи.

https://zen.yandex.ru/media/masterkit/zagorodnyi-dom-stal-umnym-c-pomosciu-bloka-bm8036-5b1a18ef55876b4b135b1e9e

только в нем можно еще и цифровые датчики цеплять

wasq
Offline
Зарегистрирован: 26.05.2018

FoxJone пишет:

адм485 стоит 40 рублей в Чипидипе (самом дорогом магазине из мне известных). Запаять его сразу на плату и не париться.

RS-485 это не просто микруху воткнуть типа AMD485. Так можно, если устройства питаются от одного источника питания в шкафу ( редко, но бывает). Чаще у каждого свой источник питания и без ГАЛЬВАНИЧЕСКОЙ развязки не обойтись. Тогда опто развязка ( две оптопары ) и + DC to DC преобразователь с гальванической развязкой. и все это уже до 200 руб и место на плате + разъем или клемник. Т.е. для дешевых устройств иметь его только при крайне необходимости - отдельная модификация.

wasq
Offline
Зарегистрирован: 26.05.2018

      Схема платы ТАБЛО, типа терминал. Схема проста и читается легко. На форуме картинки хорошего качества не получается грузить, если хочется подробнее рассмотреть с хорошим качеством — Ссылка Схемы Базы АРДЫ и Спецификации.

Схема = https://cloud.mail.ru/public/c1pb/31uDxsSvz

Спецификация = https://cloud.mail.ru/public/7zGB/3eHaS7vvN

       На Atmege 328P выполнен контроллер дисплея TFT 128х160 1,8 дм. Со своим законченным ПО, со встроенными командами, шрифтами и аватарками ( различными графическими картинками для отображения состояний автоматики). На Мк1 согласователь уровней 3.3В у индикатора и 5В у всей схемы. Управление ТАБЛО ( Терминала ) происходить по интерфейсу I2C ( TWI ). На МК1 ( неудачное обозначение микросхем, только сейчас заметил ) адаптор USB-UART, он полностью автономен, просто расположен на этой плате и питается только от ПК. На МК2 часы реального времени + календарь. Разъем/Штыри ВГ1 — для заливки ПО в ТАБЛО. Разъем VL1 для соединения по шлейфу с платой БАЗА или с любым другим , вами любимым, контролером.

Вид ТАБЛО фронт

Вид ТАБЛО тыл

Вид ТАБЛО работа

sadman41
Offline
Зарегистрирован: 19.10.2016

ShAlex13 пишет:

Что-то мне это напоминает ВМ8036, даже схемы почти похожи.


Да, в принципе, подобных штук на рынке хватает и в России (https://ab-log.ru/, например), не говоря про заграницу.
Другое дело, что они так и остаются микросерийным изделием для энтузиастов. Ибо как только дело доходит до объемных внедрений, у клиента встаёт вопрос с гарантией, стабильностью работы, сертификацией, а у производителя - с производством, налогами, поддержкой пользователей, персоналом... Цена сразу скочет втрое и приехали - вот тебе тот же Овен, только с детскими болезнями.

wasq
Offline
Зарегистрирован: 26.05.2018

Не было ни какого желания конкурировать с ОВНОм. Даже и не думал об этом.

     С производством хоть мелко серийным хоть серийным у меня проблем нет, а также с гарантией и т.п. Мало того - для серии такой прибор вообще не нужен, т.к. в серии 99% потребителей Электрики и Автоматчики ( АСУ ТП ) им эти понты с Си и Ардуиной вообще не нужны. Их учили не этому, и весь мир так не поступает.

    Это хобби, и для тех у кого хобби, и кому хочется самому что сделать, кому то по молодости или занятие на заслуженном отдыхе. Делюсь своими поделками, может кому то тоже захочется сделать ЗАКОНЧЕННОЕ устройство, а нее обвешивать Ардуинку  как елочную гирлянду модулями.

 

Теперь по Цене, открою тайну. Формируемая цела производителя электроники

ЭТ0 = ( цена всего купленного на изделие ) * кОэфф.

И  ваш кОэфф может гулять от 1,6 до 4 и даже 5 в зависимости от вложения интеллекта ( инженерного/программного  искусства )  и степень переработки РУДЫ ( типа корпуса сами из из гранул делаете или покупаете ). Реально кОэфф ниже 2 не опускается, только если это миллионные партии.

Т.е. контроллеры подобного типа дешевле типа 50$ стоить не могут от производителя + доставка.

Скоро будет ПО.

 

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

wasq пишет:

Теперь по Цене, открою тайну. Формируемая цела производителя электроники

ЭТ0 = ( цена всего купленного на изделие ) * кОэфф.

Это неверная формула.

Верная выглядит примерно так:

ЭТ0 = (цена_комплектующих + цена_разработки/размер_партии)*кОэфф

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

rkit
Онлайн
Зарегистрирован: 23.11.2016

wasq пишет:

Теперь по Цене, открою тайну. Формируемая цела производителя электроники

ЭТ0 = ( цена всего купленного на изделие ) * кОэфф.

Нет. Цена равна максимальной сумме, которую покупатель готов заплатить за продукт.  От этого пляшут, а не от коэффициентов каких-то, или себестоимости.

wasq
Offline
Зарегистрирован: 26.05.2018

andriano пишет:

ЭТ0 = (цена_комплектующих + цена_разработки/размер_партии)*кОэфф

rkit пишет:

Нет. Цена равна максимальной сумме, которую покупатель готов заплатить за продукт.

      Способы расчета БЕЗГРАНИЧНЫ. Главное остаться на рынке хотя бы лет на 25, кто остался - того метод был в данный момент реально работающим. Экономисты этого не знают, т.к реально работающий метод - супер секрет данного бизнеса и он экономистам не доступен, они - экономисты могут только фантазировать.

 

wasq
Offline
Зарегистрирован: 26.05.2018

Используемые файлы для компиляции тестовой программы АРДА.

Все файлы находящиеся в каталоге вместе с основным файлом

A0_in_test_fun_1.h , A0_in_setdata_scr.h, A0_in_text_screen.h, A0_in_pc_command.h, A0_in_test_sbor.h.

Являются набором функций данного теста АРДы , роль библиотек они не используют. Файлы находящиеся в папке «libarda» используються в качестве библиотечных, просто я их так храню для прощей демонстрацией и объединять их с библиотеками АРДУИНО не собираюсь. Написаны они просто, без *.cpp и С++, все как включаемый файлы типа *.h.

Вот их перечень и назначение ==

TWI_I2C_master.h == Своя библиотека для работы с I2C/TWI, на прерываниях, не отвлекает основную программу. Правда весь код теста написан не для экономии времени, в тестах реальное время ни к чему, поэтому тупо ждем окончания процесса передачи/приема по I2C.

Terminal_ARDA_V01.h == Своя библиотека обслуживания ТЕРМИНАЛА/ТАБЛО по интерфейсу I2C, все что нужно и есть в нем (ТАБЛО) для вывода на экран и определение состояния джойстика. Работает используя библиотеку TWI_I2C_master.h.

ConsDrawPicto.h == Набор #definoв аватарок/графических примитивов, которые знает Терминал/Табло для их вывода на экран.

DS1307_TWI.h == Своя библиотека работы с часами/календарем реального времени DS1307. Работает используя библиотеку TWI_I2C_master.h.

ARDA3_PROSTO_V01.h == Своя библиотеками простейших функция работы в пинами АРДы ввода/вывода и АЦП.

WDT2.h == Своя библиотека для таймера 2 и собаки таймера WDT. Можно настроить время прерывания и указать свою функцию для ее отработки. WDT сбрасывается в этих прерываниях, следовательно если нет сброса WDT значить программа зависла и она перезапускается. В данном тесте это используется только для мигания курсора в меню тестовой программы, хотя реально я так строю программы с псевдореальным временем и с реакцией на событие не более 1 прерывания от таймера.

Архив программы ТЕСТ АРДЫ = https://cloud.mail.ru/public/3hNj/2sQ4QLoS9

Архив HEXа прошивки ТАБЛО ( это готовое устройство ) = https://cloud.mail.ru/public/2xxK/4FgAGrziP

seri0shka
seri0shka аватар
Offline
Зарегистрирован: 19.11.2018

Очень заинтересовал проект, очень похож на то, что я воплощаю уже примерно года три. Правда, версия с дисплеем у меня пока в разработке, а в предыдущих версиях (минимум четыре ревизии только на платах, изготовленных в Китае, и несколько более ранних)) в качестве индикации состояния входов и выходов светодиоды. Зато во всех версиях от 16 до 34 входов и от 16 до 30 выходов (транзисторные, не релейные)- именно потому и пришел к выводу, что на дисплее организовать индикацию проще. Из-за специфики применения аналоговые входы не применял, кнопок не ставил, а насчёт часов даже мысль не приходила. Ну и питание 24 вольта. Основной идеей было свести стоимость изготовления практически к нулю, все комплектующие вместе с корпусом и платой укладываются в 10 у.е. В качестве мозгов Atmega8 или Atmega128 (Atmega64) в разных версиях, они просто мне доступны минимум вдвое дешевле чем Atmega328.

Целевое назначение- замена релейных схем управления с контактными и бесконтактными выключателями с напряжением 24 в, и с реле или электромагнитами пневмоклапанов тоже на 24 в на выходах (интеллектуальное реле). Исполнение в корпусе на динрейку шириной около 100 мм.

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