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

Arduino & Pi

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

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

108

Управление реле с дисплея DWIN и Arduino

Сегодня рассмотрим управление реле с помощью дешёвого, но не менее функционального дисплея компании DWIN.

Схема подключения Arduino модуля 8 реле и дисплея DWIN.

В коде можно поменять всего несколько параметров или оставить без изменений.

DEBAG - Отвечает за вывод в монитор порта отладочной информации. 1 - вкл. 0 - выкл.

Level – отвечает за тип подключённого реле. 1 - реле высокого уровня, 0 - реле низкого уровня.

relays_num – Количество подключённых реле. Максимум 16.

relays[relays_num] – массив пинов, к которым подклеены реле.

Страница проекта + скачать исходники

Купить дисплей на AliExpress. Купон на СКИДКУ: ARDUINOTEX

Заказ бесплатного образца сенсорного HMI дисплея.

Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

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

ESP8266 | Проблемы с TFT дисплеем

ESP8266 | Проблемы с TFT дисплеем

Всё произошло по классической схеме. После очередных изменений в скетче метеостанции всё проверил, всё работает нормально, отключил от сети и пошёл на работу, оставив плату на несколько дней в покое. Вернувшись к ней, включил и обнаружил, что дисплей не работает, хотя сама плата как прежде исправна, в чём убедился через монитор компорта. Стал проверять проводное соединение, всё подключено как прежде. Взялся измерять сопротивление между пинам дисплей и платы подключённых к макетной плате, бесконечности нигде нет, максимум 2 Ома на "G" и "VCC". Перепрашивал на разные скетчи, которые раньше работал. Вопрос, почему перестало работать?

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

Самодельный WiFi танк. ESP-32 + Arduino

Всем привет, хочу поделится с вами своим танком.

Я cделал танк для того, чтобы научится делать подобные машинки и набраться побольше опыта с платами Arduino и ESP. Ну и вообще просто захотелось собрать что-то такое что б ездило и жужжало =)


Основные компоненты, которые я использовал:

*Модуль ESP-32-cam – в роли камеры и контроллера, который отвечает за роботу с WiFi.

*Arduino Nano – контроллер, который отвечает за управление двигателями и прием/обработку данных с датчиков.

*L298N – драйвер для двигателей (выбран из-за харизматичного вида).

*Датчики, которые есть на борту – ультразвуковой дальномер US-025; барометр BMP280; модуль акселерометр и гироскоп MPU-6050; термометр и гигрометр DHT-11, датчик Холла A3144 в роли импровизированного тахометра.

*Бортовое питание – два аккумулятора 18650 2000 мА*ч; повышайка MT3608; зарядка usb type-c.

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

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


Важно!

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


Вид танка спереди. Можно увидеть зеленую плату с двумя «вылупнями» – это ультразвуковой датчик, немного похоже на глаза. Выше в очень аккуратном вырезе притаилась камера и хотя ее характеристики позволяют ей снимать мир в потрясающем разрешении в 2Мп (1600x1200) при практическом использовании ее разрешение меньше – 800x600.

Левый борт. Большинство датчиков размещены (с комфортом) на нижней зеленой плате, на правом краю платы можно увидеть рычажок который переключает танк в бесшумный режим – не будет пищать зуммер, который в свою очередь нужен для подачи танком служебных и оповещающих сигналов для разгона зевак на улице (что б не задавили танк). Так же видно торчащий как палка провод в правом нижнем углу, это датчик Холла, который закреплен напротив ведущей звездочки для подсчета ее оборотов (способ не очень, но работает). Этажом выше расположена Arduino Nano, отсюда она может эффективно распоряжаться своими подчиненными – датчиками и двигателями и общаться по выделенному каналу связи со своей подружкой ESP.

Правый борт танка. Тут можно увидеть: кнопку управления питанием, справа на белой коробке (корпус ESP) находиться красный рычажок, переводящий ESP в режим прошивки, чуть выше кнопка, выполняющая самую важную функцию – перезагрузку ESP. Слева на корме удобно устроился драйвер для двигателей L298N, его радиатор является важным элементом в дизайне танка. Ниже под гусеницей можно наблюдать два болта которые скрепляют крышку танка с его основным корпусом через петлю, данный элемент крепления намеренно сделан побольше для обеспечения структурной целостности и придания характерного вида танка.

Танк с открытой крышкой, вид спереди. Металлическая крышка выполняет несколько функций: обеспечивает эффективное использование пространства, облегчает монтаж элементов и самое главное придает танку бронирование (а танк ведь обязан его иметь). И просто это круто выглядит.

Танк с открытой крышкой, вид от кормы. На этой фотографии видно танковую батарею, моторы, спрятанный шнурок для прошивки ESP, плату зарядки аккумуляторов, которая позволяет танку быть в духе современности – type-C же. Можно еще увидеть кривой монтаж и вырез крышки, но все это элегантно скрывается не в фокусе.

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

Разобранный корпус для ESP. Сам корпус был сделан из остатков сигнализации (датчик движения), внутри обклеен фольгой для экранирования ESP от помех (и просто для красоты). Антенна взята от старого роутера. Данная коробка отлично дополняет стиль танка «из чего было – с того и собрал».

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

Для управления танком я создал приложение при помощи Unity (игровой движок). Конечно, можно было сделать нативное приложение для андроида, но чисто для прикола почему бы не сделать его на Unity, да?


Главный экран приложения. Вверху в шапке можно видеть всю нужную информацию, например качество связи, заряд батареи, последнюю отданную команду движения и пару-тройку датчиков. Внизу управление. Слева выход, журнал. Справа настройки, данные датчиков и кнопка послать звуковой сигнал. Уровень сигнала ноль, потому что это уровень сигнала от репитера (вторая ESP, в роли маршрутизатора для увеличения радиуса действия), но на тот момент танк был подключен напрямую.

Экран настроек. Можно поменять размер картинки, качество видео. Из прикольного автонастройка качества видео, если связь ухудшается и видео начинает идти с задержками, то приложение автоматически посылает сигнал танку для перенастройки качества сигнала. Работает не прям что идеально, но вполне сносно. Так же есть галочка для снятия защиты двигателей, не смотря на название двигатели оно не защищает, это защищает сам танк от зависания, когда на низком заряде двигатели выжимают последние капли из батареи и напряжения не хватает для контроллеров (да можно было бы сделать раздельное питание, но мне хотелось единое).

Экран данных с датчиков. Ничего такого просто датчики, просто данные. Часть из них к тому же не очень-то и настроена.

Демонстрация работы танка ниже на видео. Видео ускорено в 3 раза.

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

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


Бонусная фотография – танк на вечерней прогулке

Показать полностью 13 1
89

Управление 16 реле с компьютера

Сегодня рассмотрим 2 способа управления модулем 16 реле. Первый способ управления - с компьютера. Для этого напишем программу на Python. Второй пример - с использованием Arduino и матричной клавиатуры 4х4.

Управление реле с помощью Arduino и матричной клавиатуры.

Скачать код и библиотеки можно на сайте.

Управление реле с компьютера.

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

Для обоих проектов используется плата RoboIntellect controller 001. Подробнее о ней рассказываю в видео.

Купить плату можно с быстрой доставкой на OZON.


Надеюсь моя информация будет полезной.

Спасибо! Всем добра!

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

Ищу M5Stack Core2 в Москве

Сила Пикабу, помоги! Для проекта нужен M5Stack Core2.

Ближайшая возможная доставка с алиэкспресса - аж в конце июня.

Мб у кого-нибудь есть, кто готов продать? Если в Москве или в СПБ - вообще идеально!

37

Нужна помощь в правке скетча ардуино

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

Поэтому решил переделать на датчиках Sharp 2Y0A21

однако этот датчик аналоговый.



Нашел для него скетч


const int IRpin = A2; // аналоговый пин для подключения выхода Vo сенсора

void setup() {

Serial.begin(9600); // Запуск последовательного порта

}

void loop() {

// получаем сглаженное значение и переводим в напряжение

float volts = analogRead(IRpin)*0.0048828125;

// и в расстояние в см

float distance=32*pow(volts,-1.10);

Serial.println(distance, DEC); // выдаем в порт значение

delay(10);

}


Данный скетч выдает расстояние до объекта в см


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


то есть нужно прописать при значении <=100 датчик считался вкл

при значении >=101 датчик считался выкл


Вот начальный кусок кода (нашел все куски где записан PirSensor (то есть цифровой датчик)


#define SENSOR_START A1 // пин датчика движения

#define SENSOR_END A2 // пин датчика движения

struct PirSensor {

int8_t effectDirection;

int8_t pin;

bool lastState;

};

PirSensor startPirSensor = { 1, SENSOR_START, false};

PirSensor endPirSensor = { -1, SENSOR_END, false};

void handlePirSensor(PirSensor *sensor) {

if (systemOffState) return;

int newState = digitalRead(sensor->pin);

if (newState && !sensor->lastState) {

Serial.print("PIR sensor ");

Serial.println(sensor->pin);

timeoutCounter = millis(); // при срабатывании датчика устанавливаем заново timeout

if (systemIdleState) {

effectDirection = sensor->effectDirection;

if (ROTATE_EFFECTS) {

curEffect = ++effectCounter % EFFECTS_AMOUNT;

}

stepFader(effectDirection == 1 ? 0 : 1, 0);

systemIdleState = false;

}

}

sensor->lastState = newState;

}


Вот ссылка на исходник https://github.com/degterjow/LEDstairs


версия 1.2

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

Нужна помощь Ардуино

Привет. Раз пошла волна взаимопомощи, попробую её попросить)

Устройство должно подключиться к вайфай и работать через приложение ,так же должно работать просто от включения. Когда включаю ничего не происходит. Если ты из спб (Невский район) готов подъехать.
Телега prager78

66

Дрон из Raspberry Pi и ESP32 (или мои первые шаги в робототехнике)

Я как-то четыре года назад пытался тут продвинуть свой пикабу с блэкджеком и шлюхами (можете чекнуть историю постов), само собой ничего не вышло, но зато полученные навыки смог применить устроившись веб-разработчиком, так я проработал 3 года, выгорел к херам, и начал посматривать на робототехнику, как способ не отупеть от бессмысленного перекрашивания кнопок. Короче зацените мою очередную поделку. Видос я записал на английском, дабы охватить более широкую аудиторию, но добавил русские субтитры.

Отличная работа, все прочитано!