Сообщество - Arduino & Pi

Arduino & Pi

1 493 поста 20 825 подписчиков

Популярные теги в сообществе:

60

GSM PPP протокол для ESP32 под Arduino IDE

Общая информация:

Большинство GSM модулей могут работать с интернетом не только через AT команды, а и через PPP (Point-to-Point Protocol).  Стандартные GSM модемы для компьютеров работают именно по PPP. Когда вы поключаете модем к компьютеру, то он стандартными AT командами переходит в режим PPP и потом вешается на сетевой протокол через PPPOS (PPP over serial) и таким образом может использоваться как нормальное подключение к интернету (как WiFi или Ethernet). Но библиотеки для работы с PPP довольно большие и перенести их так просто на любой контроллер  типа Arduino, STM не получится. Поэтому на контроллерах обычно используют AT команды.


Для чего он мне понадобился:

Когда я захотел добавить возможность на ESP32 обновлять прошивку с сервера через GSM, то столкнулся с тем, что загрузить файлы больше десятков килобайт через AT команды просто не удается. Тогда я сделал закачку файла по кусочкам с проверкой целостности каждого пакета. Таким образом конечно можно закачивать прошивку, но очень медленно это происходит (на загрузку 700кБ у меня уходило от 40 минут до несколько часов) и очень часто происходи сбой работы AT команд, а если еще в этот момент будет кто-то звонить или придет SMS, то вобще все плохо.


Порывшись в интернете я нашел очень мало примеров реализаций PPP под контроллеры, вот ссылки:

для ESP32 под esp-idf:

https://github.com/espressif/esp-idf/tree/master/examples/pr...

и на базе стандартного примера https://github.com/loboris/ESP32-PPPOS-EXAMPLE

для STM32F4:

https://habr.com/ru/post/419037/


Получается, что в ESP32 есть готовые библиотеки для работы с PPP,  но все примеры под esp-idf. Конечно же я проверил эти примеры, но я привык в Arduino IDE работать.  Поэтому я просто взял эти исходники и адаптировал под Arduino IDE. Я использовал версию arduino-esp32 1.02. Не все функции с esp-idf работали так как надо в arduino, но все получилось. Я специально убрал автоматическую обработку и отправку AT команд для входа в PPP и сделал ручной ввод, чтоб потом можно было добавить свой стэк AT команд или прикрутить библиотеку TinyGSM


Ссылка на код  - https://github.com/levkovigor/pppos_client


Что еще можно сделать:

1) Для обновления прошивки нужно при скачивание файла (отрезав Header) записывать его в SPIFFS и по окончании скачивание делать обновление (в Arduino IDE есть такой пример)

2) Можно попробовать соединить WiFi точку доступа с PPPOS - получится что-то вроде WiFi GSM роутера.

Пишите ваши идеи

Показать полностью
22

7-дюймового экрана с тачскрином (Waveshare) - видео пример работы

Видео к посту https://pikabu.ru/story/podklyuchenie_7dyuymovogo_yekrana_s_...


@Nosoropoped напомнил, что я обещал выложить видео с примером работы дисплея. Вот собственно сегодня записал. Устройства делались под квест-комнату. Пользователь должен ввести нужные значения и тогда откроются замки (реле). 


PS.: знаю что оформлено криво, но это не к нам. Мы делали только платы и корпуса, а раскрашивали их дизайнеры, которые оформляют квест-комнату, так что это заказчик будет с ними разбираться.

Показать полностью
183

Шапка для банана

Известный производитель банановых одноплатников представил еще одно интересное решение для организации простенького сетевого хранилища - плату расширения 4x SATA HAT.

Заявленные характеристики:
Чипсет PCIe-SATA – Marvell 88SE9215 четырехпортовый SATA-контроллер (6 Гбит/сек)

USB – два 4-контактных разъема USB 2.0

40-контактный разъем для NanoPi M4

Кнопка включения, перемычка кнопки включения

Светодиод питания, четыре индикатора SATA

Теплоотвод – радиатор охлаждения чипсета; 2-контактный разъем для вентилятора, ШИМ модуляция для выхода 12 В

Питание:

Вход 12В DC через цилиндрический разъем или 4-контактный разъем;
2A требуется для одного 3,5-дюймового жесткого диска или четырех 2.5-дюймовых жестких дисков;
5А нужно для четырех 3,5-дюймовых жестких дисков

4-контактный разъем питания MOLEX с выходом 12 В и 5 В для питания накопителей

Размеры – 65 x 56 мм

Вес – 33.48 грамм

Данная плата предназначена для работы совместно с одноплатником NanoPi M4.

Который имеет такие характеристики:
SoC – 6-ядерный процессор Rockchip RK3399 big.LITTLE,  2 Arm ядра Cortex-A72 до 2.0 ГГц, 4 ядра Cortex-A53 до 1.5 ГГц, графический процессор Mali-T864 с поддержкой OpenGL ES1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11 и AFBC, а также VPU с декодированием 4K VP9 и 4K 10-бит H265/H264

Оперативная память – двухканальная 4 ГБ LPDDR3-1866 или двухканальная 2 ГБ DDR3-1866

Хранение данных – разъем для модуля eMMC, слот для микро SD карты.

Видеовыход

HDMI 2.0a до 4K 60 Гц с поддержкой HDCP 1.4/2.2

4-полосный разъем MIPI-DSI

Аудио – 3.5 мм аудио разъем, HDMI цифровой аудиовыход, микрофонный разъем

Камера – один или два 4-полосных разъема MIPI-CSI (один мультиплексированный с MIPI-DSI), двойной ISP до 13 Мп

Сеть – Гигабитный Ethernet, двухдиапазонный WiFi 802.11 a/b/g/n/ac, Bluetooth 4.1 с двумя u.FL разъемами для антенн

USB – 4 порта USB 3.0, один порт USB 2.0 type-C с режимом OTG и входным питанием

Разъёмы:

40-контактный разъем GPIO с 3x 3 В/1.8 В I2C, до 1x 3 В UART, 1x 3 В SPI, 1x SPDIF_TX, до 8x 3 В GPIO, 1x 1.8 В 8-канальный I2S

24-контактный порт расширения с 2 интерфейсами USB 2.0, PCIe x2, 1x PWM

Отладка – 4-контактный разъем UART (3 В, 1.5 Мбит/сек)

Разное – кнопка включения и индикатор, пользовательский индикатор, 2-контактный разъем для RTC батареи

Питание – 5 В / 3 А через порт USB-C; RK808-D PMIC

Размеры – 85 x 56 мм (8-слойная печатная плата)

Итоговый бутерброд выглядит следующим образом:

Разработчик предоставляет образы 64-бит FriendlyCore 18.04, 64-бит FriendlyDesktop 18.04 и 32-бит Lubuntu 16.04 с Linux 4.4, Uboot-2014.10 для NanoPi M4, поддерживающие работу с 4x SATA HAT. На форуме OMV есть информация что Openmediavault на Armbian Stretch также поддерживается.

Тесты скорости производителя показывют достойный результат с одним SSD:

Производительности для домашнего файлохранилища должно вполне хватить. Однако если взглянуть пристальнее то не всё совсем идеально. Используемый чипсет Marvell 88SE9215 не поддерживает RAID и второе - в нем реализован одноканальный PCI Express 2.0. Вполне возможно что одноканальная шина приведет к падению производительности при четырех подключенных накопителях.
Интересной особенностью является возможность подачи питания на "материнскую" плату от блока питания платы расширения

Кроме того есть возможность использовать стандартный компьютерный блок питания:

Что также позволяет использовать различные варианты питания накопителей.
Энергопотребление такого файлового хранилища по результатам замеров пользователя на форуме OMV не более 25 Вт при трех подключенных HDD 2.5" под нагрузкой, а в режиме простоя не более 15 Вт.
Цены на сайте производителя
4x SATA HAT  $25
NanoPi M4 2 GB  $50
12V 2A  PSU  $10

Показать полностью 6
26

Развеем мифы о робототехнике в ArduBlock - Arduino Uno

Развеем мифы о робототехнике в ArduBlock ! Да Это Очень громко сказано! Значит просто соберём робота на платформе Arduino! Напишем несколько программ для нашего Мобильного робота в начале рассмотрим как собрать программу чтобы заставить робота двигаться вперёд назад и развороты. Вторым этапом будет Управление роботом при помощи с ik пульта. Третий этап установка лине сенсора и Ездим по линии, установим дальномер и Если есть препятствие то просто остановим робота. Следующей программой напишем программу Примитивный робот пылесос. Да робот просто будет ездить и не натыкаться на стены. И последней программой будет программа Управление робота с двух осевого Джойстика.

Показать полностью
17

LyRa: портативная игровая консоль на Raspberry Pi CM3L

В этом месяце на площадке Kickstarter была организована кампания по сбору средств на производство портативной игровой консоли LyRa от разработчиков из Creoqode. Любопытное устройство, построенное на основе мини-платы Raspberry Pi Compute Module 3 Light, уже собрало достаточно средств, а значит, в скором времени оно должно появиться на рынке.

Разработчики оснастили новинку 5-дюймовым LCD-дисплеем, который поддерживает разрешение 800 × 480 пикселей. Основой консоли является 64-разрядный процессор с четырьмя вычислительными ядрами ARM Cortex-A53, который работает на частоте 1,4 ГГц.


Конфигурация дополняется 1 Гбайт оперативной памяти формата LPDDR2. Для хранения данных предусмотрена карта памяти microSD на 16 Гбайт, которую при необходимости можно заменить на более ёмкий вариант. В наличии интерфейсы Micro-USB 2.0, HDMI, а также 3,5-миллиметровый разъём для гарнитуры. Автономную работу обеспечивает аккумуляторная батарея на 3000 мА·ч.

Наличие мини-платы Raspberry Pi CM3L говорит о том, что устройство сможет эмулировать множество классических игровых консолей. Используя интерфейс HDMI, пользователь может подключить LyRa к телевизору, что позволит получить доступ в Интернет.

Консоль достаточно проста в использовании и многофункциональна. Одна из функций заключается в возможности использования LyRa в процессе разработки. Через разъёмы GPIO поддерживается подключение до 8 датчиков или устройств, что позволит значительно расширить возможности.

Новинка будет предлагаться покупателям в двух вариантах. Первая версия (RTG) предлагает полностью готовое к использованию устройство, совмещающее в себе игровую консоль, компьютер и развлекательную систему. Второй вариант (DIY) предлагает пользователю самостоятельно собрать консоль из набора комплектующих. Сделать это можно примерно за 15 минут.

Если планы Creoqode не будут нарушены, то производство LyRa начнётся в ближайшее время. Доставка будет осуществляться по всему миру, поэтому заказать игровую консоль сможет любой желающий. Первые поставки готовых устройств намечены на декабрь 2019 года. Готовая версия игровой консоли обойдётся в $225, тогда как в разобранном виде новинка стоит $185.

www.cnx-software.com

Показать полностью 3 1
32

Электронный замок на  RFID-RC522 + Сервомотор - Реле - Эл.Магнит - Дисплей пишем программу на ArduBlock

Решил записать видео на тему как написать программу электронного замка на Ardublock! Может кто то из Вас захочет себе сделать электронный замок на Ардуино! Цель выполнения программы очень проста! Подносим карту с читывающему устройству и что то открывается, что то поворачивается и что то показывает, я про сервомотор, эл.магнит и дисплей! 

Показать полностью
15

Зависает Arduino UNO при запуске моторов 5V через реле

Доброго времени суток. Прошу совета

Делаю систему, которая поливает растения по расписанию. Общий список устройств в проекте: Ардуино УНО, 8ми канальное реле, 3 насоса, светодиодная панель, вентилятор 92x92 мм, RGB светодиод, генератор тумана, OLED экран, часы ds3231, датчик влажности, ультразвуковой датчик расстояния, кнопка, переменный резистор, блок питания 12V, 3 A, блок питания 24V 1A

В проблеме участвуют:

• Arduino UNO

• Насосы для полива(В проекте одновременно не включаются) DS766

• Электромагнитное реле на 8 каналов

Суть проблемы: Проект работает таким образом, что каждый день в определённое время (определяется через ds3231) с помощью реле включаются насосы для полива на несколько секунд (меньше минуты). В большинстве случаев, как только включается насос, почти сразу, как я понимаю – зависает Ардуино, код перестаёт выполнятся и насос продолжает работать до принудительного перезапуска микроконтроллера. Иногда такого сбоя не возникает и насос благополучно выключается и код продолжает выполняться. По такому же принципу включается светодиодная панель от того же блока питания через реле – всегда работает корректно (Ранее в проекте только свет включался каждый день в определённое время на несколько часов – за пару месяцев ни разу контроллер не зависал)

Как подключено: Ардуино питается от 12V БП через Vin, насосы включаются через реле по сигналу от Ардуино. Питание к насосам подведено от 5V пина Ардуино (Примерная схема на скриншоте). Земля у всех компонентов соединена

Что пробовал сделать:

• Подводил отдельное питание к насосам от второго блока питания(на 5V).

• Между VCC и землей насоса установил диод 1N4007(скриншот)

• Между 5V и землёй Ардуино ставил электролитический конденсатор на 470 uF и параллельно керамический конденсатор на 0.1 uF

• Как эксперимент - просто включал насос через delay через реле и зависаний не было


Из наблюдений – если подавать 12 V через Vin и когда бесконечно начинает работать зависший насос, то начинает очень сильно греться стабилизатор на Ардуино. Если подавать меньше напряжение, например 7V, то такого сильного нагрева не было. И если просто включить насос от 5V ардуино и оставить минут на 5 – нагревание сбализатора было небольшим за всё время.

Очень рад буду любым советам. Заранее спасибо

Зависает Arduino UNO при запуске моторов 5V через реле
Показать полностью 1
33

ArduBlock - и сегодня  только моторы, программируем, подключаем и тестируем!

Рассмотрим подключение и написание программы для запуска моторов на Ardublock. Первым у нас будет китайский СервоМотор, далее перейдём к шаговым  моторам. Шаговые моторы бывают двух типов  на 4 и 6 контактов. Рассмотрим подключение шагового мотора  через Драйвер L293D и транзисторную сборку  ULN2004A. И последним у нас будет Бесколлекторный мотор! Напишем программу усилим сигнал сигнал и запустим мотор. Может кому то будет полезна эта информация и вы сможете применить это в своих проектах.

Показать полностью
Отличная работа, все прочитано!