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

Arduino & Pi

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

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

107

Где такое возможно?

Мне необходима компания или человек, который занимается изготовлением стенда( устройства или прибора) для проведения научных исследований. Коротко об устройстве, размер до 50 см в высоту и ширину, главная суть в реализации движения фито-лампочки по дуге над растением. Сам реализовать не в силах, максимум может подключить несколько ламп, чтобы они поочередно включались, и то буду рад помощи. Скорость движения либо пошаговая, либо очень медленная. Примерный рисунок набросал сейчас. Разумеется позже подготовлю конкретные размеры и элементы. Ломаю голову. Если есть похожие проекты или советы, буду рад видеть в комментариях. Всем заранее спасибо.

Где такое возможно?
64

Простой фильтр для пайки

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

Что нужно для сборки?

🔹 Фильтр РУ-60М

🔹Мотор (высота коруса не более 40мм / корпуса 27,5мм/ вала не менее 2,2мм. Мы использовали мотор и блок питания от старого струйного принтера.

🔹Корпус и крыльчатка печатаются на 3D-принтере. Скачать

🔹Разъем для подачи питания

🔹 БП в зависимост от мотора 12-32 вольт



Демонстрация корпуса

Возможные ошибки и способы их устранения

Чтобы исключить проблемы с устройством, рекомендуем проверить следующее:

✅ Как крыльчатка сидит на валу мотора, нет ли проскальзывания со свистом или треском. Чтобы исключить проскальзывания капните каплю клея на вал мотора с надетой крыльчаткой.

✅ Подайте правильное напряжение на мотор. Если мотор требует 32 вольта, то рекомендуем питать его от БП 32 вольта. Меньшее напряжение – меньшая производительность.


_____________________________

❕ Основное сопротивление воздушному потоку создает фильтр. Фильтр РУ-60М действительно хорош, но сложно протянуть через него воздух. Если ваш двигатель оказался слишком слаб, то замените фильтр на более простой сохранив при этом распечатанный корпус.



Видеопроцесс создания дымоуловителя

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

Продолжение поста «ESP01 не могу прошить»2

Может видео поможет разобраться, что я делаю не так.

Отдельное подключение от блока питания 3.3В и "Земли" к ESP не дало никаких положительных результатов. Компьютер перестал ее видеть вообще. Вернул подключение согласно схеме, но всё равно при отключении GPIO0 монитор порта, да и сам ноутбук в диспечере устройств перестаёт видеть плату и FT232RL.

Продолжение поста «ESP01 не могу прошить»
Показать полностью 1
40

Урок 1. Знакомство со средой разработки DGUS - DWIN

В данном уроке познакомимся со средой разработки DGUS (DWIN Graphic Utilized Software).

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

Среда разработки DGUS.

Для портретного расположения нужно указать поворот отображения в настройках файла .CFG.

Создание шрифтов.

По завершению уроков получим вот такой результат.

Страница урока + скачать исходники.

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

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


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

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

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

Миньон-копилка на 3D-принтере

Проект подойдет для тех, кто только начинает осваивать Ардуино. Код подробно прокомментирован, а требуемая элементная база минимальна.

Робот реагирует на движение. Если положить мелкий предмет ему в корыто, он открывает рот и забрасывает предмет внутрь себя. Для реализации проекта потребуется 3D-принтер, паяльник, установленная среда программирования Arduino IDE, простейшие навыки работы с Ардуино, большой адронный коллайдер и несколько электронных компонентов:

- Arduino pro mini

- Ультразвуковой дальномер HC-SR04

- Сервопривод SG90 или аналогичный

- Блок питания 5V или аккумуляторы

- Корпус напечатанный на 3D-принтере

- Светодиод и резистор 220 Ом (опционально)


Печатаем корпус

Качаем файлы для печати на 3d-принтере с Thingeverse и собираем по инструкции. При желании можно раскрасить корпус акриловыми красками.

Анимация с процессом сборки робота

Паяем электронику

Перед пайкой прошиваем контроллер. Здесь Качаем скетч для загрузки в Arduino IDE. Затем паяем по схеме.

Вместо Arduino Uno (на схеме) нужно использовать Arduino Pro Mini. Компактная плата легко умещается в голове робота, на то она и mini.


Для питания робота из его затылка выведен провод для подключения блока питания на 5 вольт.

И на прощание видео с процессом сборки и демонстрация результата.

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

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

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

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

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

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

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%
73

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

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

Библиотека принимает данные типа 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
Отличная работа, все прочитано!