Рейтинг
24.04
голосов: 22

О блоге

Описание интерфейсных решений. Примеры работы с железом со стороны компа.

Администраторы (1)

Модераторы (0)

Модераторов здесь не замечено

Читатели (173)

dcoder vvzvlad hexFF foxit Moocher XANDER WildCat kest hexanaft Vga Alatar mzw Reverb tda2030 mist grand1987 dievgen kvm labor neiver

Все читатели блога

Работа с СОМ-портом на Си в linux

Каждый, кто постоянно занимается электроникой и программирует встраиваемые устройства, неизбежно сталкивается с необходимостью работы с СОМ-портом под линуксом. Чаще всего появляется задача сопрячь какой-то датчик, либо удалённое устройство с одноплатником. Да, что греха таить, сейчас в 2020 году UART, наверное, самый распространённый интерфейс для обмена данными, несмотря на всю его архаичность.
Поэтому умение работать с СОМ-портами в linux особенно важно. И вот, казалось бы, UART, древнейший интерфейс, всё должно быть известно и понятно, и даже опытные программисты ломают зубы, работая с ним в линуксе. Особенный цирк с конями начинается при работе с передачей сырых данных по RS-485. Не знаю ни одного программиста, который бы не хватил горя при разработке ПО для таких решений. Самое забавное, что с более новомодным i2c работать в линуксе куда проще и понятнее, чем с ортодоксальным UART. Чтобы не было путаницы дальше, всё семейство UART (RS-232, RS-485, UART 5V, UART 3,3 и т.д.) по тексту я буду называть COM-порт или UART. Мы говорим в статье не о физическом интерфейсе, а о программной стороне вопроса.
В этой статье я хочу показать, как писать свои программы, работающие с UART в ОС Linux. И неважно на каком языке вы пишете программу для работы с UART (python, c, c++, bash, php, perl и т.д.), принцип работы и грабли будут одни и те же, так как всё равно всё упирается в системные вызовы к ядру. А не понимание того, что там происходит и приводит к различным трудноуловимым багам.


Телетайп, на который БЭВМ могли выводить и получать данные. Фото взято здесь

Исторически сложилось, что СОМ-порт в UNIX использовался как терминал. То есть, как устройство для отображения и получения информации работы с ЭВМ. Отсюда идёт всё базовое наследие работы UART.

Читать дальше

Web сервер для интернета вещей на базе MQTT и WebSocket . Устройства на базе ESP8266

Недавно встала задача сделать прототип системы удаленное управление устройствами через интернет(что то типа IOT:) и получение с них температуру, влажность, сигнализация голосом и визуально о том что появилось движение на объекте и что бы можно было сделать фото что произошло и передать удаленно. Так же управление 4 реле и чтение состояния входов. Все должно работать только через броузер(CHROME) как на компьютере так и через смартфон. Надо было написать прошивки под ESP8266, написать софт для работы с платой и камерой(CSI) на ORANGEPI ONE и сделать WEB часть для отображения и управления. Надо было соединить эти 4 устройства в одну систему и показать в реальной работе. Сами устройства были уже готовы, осталось только все запрограммировать. Понятно, что все должно работать без внешних IP адресов и сложной настройки.Подключил устройство к домашней WIFI сети и оно в системе. Так же так как это прототип то решено было показать все с минимальными затратами(взлетит/не взлетит :) Была выбрана такая схема, все устройства являются MQTT клиентами, подключаются через бесплатный брокер с уникальными ID, WEB страницы управления располагаются на любом бесплатном хосте. Все должно работать без всяких серверных языков (php,node и пр) Задача не вдруг :) Для устройств программу сделал достаточно быстро, были наработки, а вот с WEB частью пришлось повозиться. Но все обошлось при помощи WebBuilder(визуальная часть) и js(websocket) Тестирую уже в течении недели полет, нормальный. Сейчас подключено 4 устройства.Датчик движения (охрана+температура+влажность+ освщенность), плата управления вентиляторами (устанавливаются длительность задержки после выключения чтобы проветрить помещение), плата 4 реле (можно коммутировать 220В и с 4 входами) и также плата ORANGE PI c камерой чтобы получить фото с удаленного объекта. Rому интересно можно понажимать на лампочки включая у меня реле, получить картинку с моего стола и т, д Устройства работают сейчас в живую. Вообщем технология работает, все команды для каждого устройства простые текстовые можно легко встроить в любые другие системы. По дизайну просьба без претензий я «бантики» не умею рисовать, да и не люблю. Мне главное работа системы и железо. Далее дизайнеры сделают как надо.
Посмотреть вживую как работает можно тут filedn.com/lyI9jHg32lr4q58HE7GWfNH/www/modul/pir.html
Чтобы включить реле нажать на лампочку, сделать фото — нажать на камеру, включить оповещение голосом динамик. Датчик движения рядом со мной так что когда шевелюсь срабатывает:) Если кто будет тестить скажите я могу руку под камеру поставить показать что картинка живая, также если на чем не работает отпишитесь какой броузер. Я пробывал на XPOM и на Андроид. Сейчас так как это прототип и бесплатные брокер и хост, то секъюрностью не заморачивался. Все открыто. Далее сделаю, не проблема.Будут вопросы пишите. Сорри за бардак на столе :)



Практика, использование модуля на интерфейсном чипе CH376S (часть 3)

CH376S
(часть 1)
(часть 2)

*Представленные материалы в статьях являются моей изыскательской работой в практическом использовании CH376, поэтому они вряд ли тянут на учебное пособие, но уверен, что облегчат сообществу easyelectronics, освоить этот чип, не наступая на разнообразные подводные камни, которых тут хватает.

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

Перед началом хотелось бы, всё-таки определиться к какому классу устройств принадлежит данный чип, так вот в Datasheet производитель часто его именует как MCU (Micro Controller Unit или по-русски Микроконтроллер), такчто именование CH376 как микроконтроллер не ошибочно.

*И ещё, чтобы флешь накопитель правильно работал и у вас не было проблем, необходимо отформатировать флешь с размером секторов 512 dec байт.

В этой статье попробуем поработать с файлами.


Читать дальше
  • +2
  • 05 апреля 2020, 21:25
  • Saylon

Подключение и использование модуля на интерфейсном чипе CH376S (часть 2)

(Часть 1)
(Часть 3)
Из этой статьи вы узнаете о дополнительном инструменте, который нам понадобится, сделаем первые шаги по работе с файлами — откроем файл, узнаем его размер и разберемся с конвертацией полученных результатов.

Всем здравствуйте, продолжим наше знакомство с интерфейсным чипом CH376S.
Для дальнейшей работы нам понадобится как-то конвертировать полученные или наоборот подготавливаемые данные, для этого будем использовать инструментарий:


Читать дальше

Первое подключение и использование модуля на интерфейсном чипе CH376S (часть 1)

(часть 2)
(часть 3)
     Прежде чем начать, сообщу что данная запись (ну и надеюсь последующие) это выдержки из моих экспериментов по работе с данным модулем, хочу как-то систематизировать эту работу для себя и думаю это будет интересно многим. Есть очень хорошая статейка (eng) для Arduino, где описывается работа с этим устройством, хотя там есть некоторые ошибки, которые автор признал, но в коде не поправил, и только из комментариев это можно узнать. Моя цель не писать скетчи для Arduino, а научиться использовать данную микросхему для микроконтроллеров AVR (хотя в этой области я ещё профан), что необходимо для моего проекта, о котором как-нибудь поведаю.
     Модуль для Arduino на микросхеме CH376S (File manage and control chip CH376) можно использовать для чтения, записи и др. с USB flash устройств (поддерживает файловые системы FAT12/FAT16/FAT32 объёмом не более 32Gb).


Схема подключения к модулю



Читать дальше

CP2102 - еще один переходник USB-COM

Универсальный переходник CP2102 USB-COM.


Особенности моего донгла:
  1. «Универсальный» режим питания CP2102-модуля, а также подключаемого MCU модуля:
    USB/Внешнее питание/Сдвоенное питание.
  2. Дополнительные линии DTR/RTS для бутлоадера (проверено на бутявках Arduino/AVR, STM32)
  3. USB-супрессор
  4. Авто-Толерантность RX/TX к уровням сигнала MCU 3.3-5V (ну это заслуга создателей CP2102, привет FT232!)



Читать дальше
  • +5
  • 20 марта 2019, 23:51
  • maxxir
  • 3

ОСРВ Windows-3

Функциональный ШИМ генератор на Питоне

В прошлой статье ШИМ использовался для поворота шагового двигателя, но оказалось, что запаса по частоте вполне хватает для создания например, низкочастотного функционального генератора. Более того, если использовать двойной Н-мост с Али (типа L298N), генератор можно сделать мощным, двухканальным, с возможностью сдвига фаз да еще и биполярным и все это за сто рублей -).

Читать дальше
  • +3
  • 18 октября 2018, 11:01
  • basil
  • 1

Программный USB на микроконтроллерах STM8-STM32

Всем, привет!

Когда делать было не чего я сделал программную реализацию низкого уровня USB на базе STM8.
За прошедшее время было много писем о продолжении проекта и переноса его на STM32.

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



Читать дальше
  • +4
  • 19 апреля 2017, 09:11
  • ZiB

ОСРВ WINDOWS-2

Управление шаговым двигателем из Питона

Так, светодиоды и Cом порт это конечно хорошо, но хотелось бы чего-нибудь посерьезнее-). Оптимальным вариантом для обработки данных в реальном времени был бы вентильный двигатель, но — вентильного двигателя у меня под руками нет, поэтому придется пилить шаговый-) Шаговый двигатель конечно не так нагляден — обратная связь для вращения в противоположность вентильному не нужна, разве что для управления в реальном времени, но управление в реальном времени — дело будущего. Пока к сожалению придется ограничиться чисто зрелищной стороной вопроса — осциллограф из Китая не приехал пока-). И хотя разобраться что где криво работает пока нельзя-(, но в данном случае главное это демонстрация быстродействия питонского приложения в реальном времени.

Читать дальше
  • +1
  • 19 ноября 2016, 10:19
  • basil
  • 2

ОСРВ Windows

ЖЕЛЕЗНЫЙ ТЕСТ



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

Читать дальше