Сообщество - Arduino & Pi
Добавить пост

Arduino & Pi

1 379 постов 20 581 подписчик

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

ESP01 не могу прошить

Здравствуйте, не могу прошить ESP 01 через FTDI FT232. Делаю всё, согласно статье на Хабре https://habr.com/ru/post/547330/

Скетч компилируется и загружается на плату, но после разединения gpio0 и GND, и перезапуска платы монитор порта ничего не отображает, а пишет что такого компорта нет. Скорость менял согласно в кода 9600.

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

ESP01 не могу прошить Android, Apple, Esp8266

AHT10 вешает систему на ~94%

Есть Arduino с обвесом из датчиков AHT10, HTU21, дисплея 16x2 (все по i2c), энкодера. Питается arduino 12 вольтами (2А), датчики от 5v пина. 12V нужны в этой схеме для питания вентилятора и трансформатора для мембраны увлажнителя, но речь не о них, т.к. в отключенном состоянии проблема не решается.

Опытным путем удалось выяснить что ардуинка виснет когда aht10 превышает 92-93% влажности.

Работает так, что доходит показатель до 93, после этого зависает и если ребутнуть, то показатель встает в ~85% влажности.

AHT10 менял, все тоже самое.

Все разведено и спаяно на макетной плате. Датчики подключены монтажными проводами 0.14 мм (МГТФ), без скруток и т.п.

Ставил кондер 220мф и 0.1мф по питанию, без изменений.

В матчасти МК и радиоэлектроники новичок, может есть  у кого мысли как эту проблему решить? Фотки как все собрано, схемы и код могу прислать, если нужно.

AHT10 вешает систему на ~94% Электроника, Электрика, Электричество, Arduino, Самоделки

LCD1602 и русский шрифт. Библиотека для Arduino IDE

Демонстрация шрифта из библиотеки BigRus1602

Как опознать дисплей со встроенными кириллическими буквами?

Дисплей LCD1602 популярен у разработчиков из-за дешевизны и простоты использования. Единовременно на экране отображается 2 строки по 16 символов в каждой. Существуют дисплеи с встроенной кириллицей. Опознать дисплей с кириллицей можно по буквам CT или CP в конце заголовка, например, WH1602B-YYH-CT. На таком дисплее русские буквы выводятся без привлечения излишних библиотек "из коробки". Вот только цена в разы выше чем на обычный англо-китайский экран. Тем не менее есть способ заставить эти дешёвые дисплеи печатать кириллические буквы.



Русифицируем дисплей


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


Есть два основых варианта использования библиотеки:

1. Вывод текста в режиме бегущей строки

2. Для вывода часов или таймера в виде ЧЧ:ММ


Особенности библиотеки BigRus1602 :

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

- 2 встроенных шрифта: «строгий» и «мягкий».

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

- Переключение режимов: бегущая строка | статичный текст.

- Подходит для работы с модулем LCD KeypadShield для Arduino Uno.


Подключаем библиотеку

Для начала необходимо добавить библиотеку в среду Arduino IDE.

Если вы не делали этого раньше, просто следуйте инструкции, это не сложно:

1. Запускаем программу Arduino IDE.

2. В меню сверху находим Скетч->Подключить библиотеку->Добавить .ZIP библиотеку...

3. В открывшемся окне указываем путь к архиву с библиотекой на вашем компьютере.

LCD1602 и русский шрифт. Библиотека для Arduino IDE Arduino, Lcd дисплей, Гифка, Видео, YouTube, Длиннопост

Минимальный код для вывода кириллических букв.

Библиотека принимает данные типа byte, int, long и массив char[].

// В этом примере текст прокручивается по экрану слева направо:
#include "BigRus1602.h"
char text[] = " АЛХИМИЯ"; // обязательно заглавные буквы
//Пины для подключения LCD Keypad Shield
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
BigRus1602 lcdRus(&lcd);
void setup()
{
lcdRus.begin();
lcdRus.scrollText(true); // включаем скроллинг текста
lcdRus.print(text); // выводим текст на экран единожды
}
void loop()
{
}

Скроллинг текста по экрану

//Scroll speed
#include "BigRus1602.h"
char textSlow[] = " МЕДЛЕННО";
char textFast[] = " БЫСТРО";
//Пины для подключения LCD Keypad Shield
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
BigRus1602 lcdRus(&lcd);
void setup()
{
lcdRus.begin();
}
void loop()
{
//второй аргумент - временной интервал между сдвигами, вводить его не обязательно(по умолчанию 1000 мс)
lcdRus.scrollText(true, 500);
lcdRus.print(textFast);
lcdRus.scrollText(true, 1000);
lcdRus.print(textSlow);
}

Объединение нескольких слов для вывода на экран

В этом примере показано как объединить несколько слов вместе и вывести их на экран при помощи функции .getCarret().

//Sequence of words
#include "BigRus1602.h"
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
BigRus1602 lcdRus(&lcd);
void setup()
{
lcdRus.begin();
for (uint8_t i = 0; i <= 100; i++) //имитируем загрузку
{
lcdRus.print(i);
lcd.setCursor(lcdRus.getCarret(), 1);
lcd.print("% ");
delay(50);
}
delay(3000);
}
void loop()
{
lcd.clear();
for (uint8_t min = 0; min < 30; min++)
{
for (uint8_t sec = 0; sec < 60; sec++)
{
lcdRus.print(min);
lcdRus.print(":", lcdRus.getCarret() -1);
lcdRus.print(sec, lcdRus.getCarret() -1);
//заполним "хвост" строки пробелами чтобы избежать появления артефактов от старого текста. Можно заменить на lcd.clear()
lcdRus.print(" ", lcdRus.getCarret() -1);
delay(1000);
}
}
}

Чтение данных последовательного порта и вывод на ЖК-экран

//SerialRead
#include "BigRus1602.h"
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
BigRus1602 lcdRus(&lcd);
void setup()
{
lcd.begin(16, 2);
lcdRus.begin();
Serial.begin(9600);
lcdRus.scrollText(true);
}
void loop()
{
char serialText[30];
if (Serial.available())
{
//чем больше символов в строке, тем больше нужно времени чтобы принять ее
delay(100);
int availableText = Serial.available();
for (int i = 0; i < availableText; i++)
{
serialText[i] = Serial.read();
serialText[i + 1] = '\0';
}
lcdRus.print(serialText);
}
}

Символы доступные в BigRus1602

Чтобы увидеть все доступные в библиотеке символы, просто загрузите демонстрационный код:

//Simple print
//Демонстрация всех символов
#include "BigRus1602.h"
//библиотека позволяет выводить данные типа byte, int, long и char[]
char text[] = " АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ 1234567890 !?-.,:;";
//Пины для подключения LCD Keypad Shield
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
BigRus1602 lcdRus(&lcd); //указатель &lcd обязателен
void setup()
{
lcdRus.begin();
lcdRus.print("ЛСД");
delay(3000);
lcdRus.scrollText(true);
}
void loop()
{
lcdRus.print(text);
delay(3000);
}

Смена шрифта

В библиотеке доступно два шрифта: Strong и Smooth. Чтобы выбрать один из них откройте файл BigRus1602Font.h. Путь к этому файлу выглядит примерно так C:\Users\Admin\Documents\Arduino\libraries\BigRus1602\ В указанном файле нужно раскомментированую одну из строк. Остальные строки должны быть закомментированы.

Если нужно сэкономить память контроллера, оставьте раскомментированым только строку BC_ONLY_NUMBER

//#define BC_STRONG_FONT //угловатые буквы и цифры
#defineBC_SMOOTH_FONT //скругленные буквы и цифры
//#define BC_ONLY_NUMBER //только цифры (для экономии памяти)

Шрифты для дисплея соданы при помощи утилиты для генерации символов ЖК-экран. Подробнее об этой утилите смотрите здесь.


Смотрите ролик с процессом создания шрифта и разбор представленного кода

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

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

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

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

Управление реле с дисплея DWIN и Arduino Электроника, Arduino, Видеоблог, Своими руками, Самоделки, Конструктор, Видео, Длиннопост, YouTube

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

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

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

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

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

Управление реле с дисплея DWIN и Arduino Электроника, Arduino, Видеоблог, Своими руками, Самоделки, Конструктор, Видео, Длиннопост, YouTube

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

Управление реле с дисплея DWIN и Arduino Электроника, Arduino, Видеоблог, Своими руками, Самоделки, Конструктор, Видео, Длиннопост, YouTube

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

Управление реле с дисплея DWIN и Arduino Электроника, Arduino, Видеоблог, Своими руками, Самоделки, Конструктор, Видео, Длиннопост, YouTube

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

Управление реле с дисплея DWIN и Arduino Электроника, Arduino, Видеоблог, Своими руками, Самоделки, Конструктор, Видео, Длиннопост, YouTube

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

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

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

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

ESP8266 | Проблемы с TFT дисплеем Esp8266, Дисплей, Самоделки, Метеостанция, Радиолюбители, Arduino

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

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

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

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

Я 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.

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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


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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост

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

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

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


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

Самодельный WiFi танк. ESP-32 + Arduino Arduino, Esp32, Самоделки, Своими руками, Электроника, Микроконтроллеры, Робот, Видео, Длиннопост
Показать полностью 13 1

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

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

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

Управление 16 реле с компьютера Arduino, Электроника, Видеоблог, Самоделки, Своими руками, Электрика, Конструктор, Видео, Длиннопост, YouTube

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

Управление 16 реле с компьютера Arduino, Электроника, Видеоблог, Самоделки, Своими руками, Электрика, Конструктор, Видео, Длиннопост, YouTube

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

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

Управление 16 реле с компьютера Arduino, Электроника, Видеоблог, Самоделки, Своими руками, Электрика, Конструктор, Видео, Длиннопост, YouTube

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

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


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

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

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

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

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

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

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

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