#1 Re: Апаратні питання » Вибор потенціометра » Вчора 08:15:56

Xao_Asakura пише:

Для визначення положення панелі потрібно обрати потанціометр

Як потенціометр буде механічно зʼєднаний з віссю панелі? Напряму чи через якийсь редуктор або мультиплікатор?

Відштовхуватись потрібно від максимального кута що вимірюється. В наших широтах максимальний кут між азимутом сходу та заходу складає приблизно 260°. Враховуючи граничні умови, звичайного з механічним кутом 300° і ефективним кутом 256° має вистачити. Звісно, якщо не збираєтесь експлуатувати панель десь за полярним колом smile

Очевидно, потрібен лінійний потенціометр, тобто з індексом B. Далі дивіться на допуски, в залежності від потрібної вам точність.

Якщо буде механічний редуктор чи мультиплікатор, то кут множте на коефіцієнт редукції/мультиплікації. Точність зміниться відповідно.

Номінал в розумних межах суттєвий тільки в плані споживання струму. Через 1 кОм при 5 вольтах проходить 5 мА. Навряд чи це суттєво у вашому випадку. Якщо суттєво, то можна або збільшити номінал, або подавати напругу на потенціометр тільки при вимірюванні, наприклад раз на декілька хвилин. Але якщо візьмете занадто великий опір порядка мегаом, то можуть бути проблеми з шумами.

#2 Re: Програмування Arduino » Нужна консультация ардуино + Nextion экран. Заплачу. » 2024-10-27 10:53:33

Honey пише:

При використанні "попередній перегляд" один бекслеш зникає в вікні вводу тексту, тому доводиться ще раз розставляти дублі.

Дійcно, так працює. Виправив попередній пост. Дякую.

#3 Re: Програмування Arduino » Нужна консультация ардуино + Nextion экран. Заплачу. » 2024-10-26 21:49:12

shrek пише:
void SendString(String dev, String data) {
...
  dev = "";
  data = "";
}

Який сенс присвоєння у локальні змінні, коли вони далі у функції вже не використовуються?

shrek пише:
  for (int i = 0; i < 3; i++) {
    Serial2.print(0xff);
  }

Serial::print() перевантажена для різних типів аргументів. Тут ви передаєте int, що призводить до виводу символів десяткового представлення числа, тобто "255", а не символа з кодом 255 (0xFF).
Також нема особливого сенсу виводити символи в циклі по одному, це не дає тут ніякої переваги.

Спробуйте

Serial2.print("\xff\xff\xff");

А ще краще

Serial2.print(F("\xff\xff\xff"));

щоб не копіювати строку в ОЗУ, а читати прямо з флеші.

Також приклади є в документації.

#4 Re: Апаратні питання » Кому-то удавалось подружить esp8266 с i2c-OLED-дисплеем 128x64 ? » 2024-10-21 18:58:02

Може бути апаратний баг в самій esp8266, що мастер шини чутливий до таймінгів address ACK, а ssd1306 в ці таймінги не вкладається. Або ssd1306 порушує таймінги, але інші контроллери до цього більш толерантні.
Може бути програмний баг в реалізації Wire або самого сканера.

У мене теж оцей сканер на esp8266 не детектить ssd1306, пише "Unknow error at address ..." і "No I2C devices found". Хотів спробувати пару інших сканерів, але вони для esp8266 навіть не компіляться. Ви яким сканером користувались?
А i2cdetect на компі нормально бачить цей ssd1306 через адаптер ch341.

При цьому адафрутівська GFX на esp8266 із цим же ssd1306 працює без нарікань:
esp8266-ssd1306.jpg

Доречі, всі ssd1306 128x64, які мені попадались, ідуть з адресою 0x3C, а не 0x3D, як пишуть у прикладах.

#5 Re: Програмування Arduino » Проблеми з платою esp8266 » 2024-10-20 19:22:16

Як уже вказали вище, у вас щось наплутано з пінами. Або маркування пінів не відповідає дійсності, або скетч компілюється не для тієї плати.
Найперше, що потрібно перевіряти - чи є потрібний сигнал на тому піні, на якому його очікуєте. Якщо нема осцилографа чи хоча б тестера, то можна перевірити за допомогою світлодіода з резистором.

#6 Re: Апаратні питання » Проблема з завантаженням коду » 2024-10-18 04:45:03

anatoly4 пише:

avrdude: ser_open(): can't set com-state for ".COM4"

https://support.arduino.cc/hc/en-us/art … e-for-COMn

TL;DR: Ця помилка може виникати з новими версіями драйвера для CH341. Там рекомендують встановити версію 3.7.2022.01 і вимкнути автооновлення драйвера.

#7 Re: Програмування Arduino » L298N не работает мотор » 2024-10-17 22:31:13

spfi пише:

подключил монитор к L298N все работает но мотор не работает не крутиться

Що у вас куди підключено? Судячи по фото, живлення береться з шілда, 5V чи скільки там, і подається на вхід Vcc модуля, де стоїть ще один 5-вольтовий регулятор.

Якою програмою керується?

#8 Re: Апаратні питання » Робота з mysql висне ардуїнка » 2024-10-13 14:51:20

ijonhson пише:

Можливо десь треба явно указати що в мене w5500?

Якщо по DHCP адреса отримується, то з ethernet і з модулем все нормально.
Хіба що я б замінив mac_addr на щось випадково сгенероване, бо якщо в мережі буде ще один пристрій таким же MAC'ом, буде конфлікт.

Що мені не подобається, це оцей кастинг в C-стилі:

MySQL_Connection conn((Client *)&client);

Бачу, що так само у прикладах MySQL Connector'а. Що ж, це говорить про "якість" бібліотеки. В даному випадку це ніяк не має впливати. А взагалі, він там не потрібен, достатньо

MySQL_Connection conn(&client);

З вашим кодом, коли MySQL-сервер взагалі недоступний, conn.connect() завершується після трьох спроб зʼєднатись:

Initialize Ethernet with DHCP:
  DHCP assigned IP 192.168.1.176
...trying...
...got: 0 retrying...
...trying...
...got: 0 retrying...
...trying...
...got: 0 retrying...
Connection failed.

Коли клієнту (arduino) з його IP-адресою немає дозволу для віддаленого доступу до MySQL:

Initialize Ethernet with DHCP:
  DHCP assigned IP 192.168.1.176
...trying...
ERROR: Timeout waiting for client.
Error: -1 = Connection failed.

Коли логін або пароль невірні:

Initialize Ethernet with DHCP:
  DHCP assigned IP 192.168.1.176
...trying...
Error: 79 = Access denied for user 'baduser'@'192.168.1.176' (using password: YES).
Connection failed.

Ethernet 2.0.2
MySQL Connector Arduino 1.2.0

Дивіться логи MySQL-сервера. Впевніться, що в конфігурації MySQL-сервера вашому юзеру дозволений віддалений доступ з адреси, яку отримує ардуіна, або з будь-якої адреси в цій мережі.
Запустість сніфер на стороні сервера. Подивіться, що відбувається під час комунікації.

Схоже, що проблема в налаштуваннях аутентифікації на самому сервері, а не в ардуіно. Взагалі, вдається зʼєднатись із цими самими логіном/паролем з якого-небудь іншого пристроя? В конфігурації MySQL сервера конкретна адреса пристроя або вся мережа має бути дозволена для конкретного логіна .

#9 Re: Програмування Arduino » переривання по usart atmega » 2024-10-12 00:01:28

khalimon пише:

У періодичних пакетах (1 пакет на 0,8сек) на вході Rx (швидкість 9600) після певного прийнятого символу (конкретно цифра 5) необхідно порахувати довжину першого імпульсу (не важливо до якого символу він відноситься, важлива довжина саме першого імпульсу після прийнятої 5ки).

Яка максимальна довжина імпульсу? Яка необхідна точність? Якщо достатньо розрізняти імпульси довжиною від 100 мкс до 950 мкс із точністю приблизно 100 мкс, то можна просто прийняти наступний байт і подивитись скільки у нього нульових бітів у кінці, як це робиться при роботі з 1-Wire через USART.

Якщо ж умови по довжині та точності інші, то після прийому '5' працювати з RX як зі звичайним GPIO піном. На atmega328p в термінах ардуіни це пін з номером 0, в термінах AVR це PD0 (PIND & 0x1). Бажано при цьому вимкнути ресивер USARTа, щоб він не сприймав імпульс як передачу наступного символа, а по закінченню імпульса увімкнути знов. Як вимірювати - можна використати ардуінівську pulseIn() або свою аналогічну імплементацію з циклічним опитуванням. Якщо вимірювання має відбуватись паралельно з виконанням іншого коду, можна зареєструвати обробник Pin Change Interrupt на цей пін і читати micros(), або запускати/зупиняти один із решти таймерів атмеги. Як обробляти ситуацію, якщо імпульс так і не надійшов, або якщо надійшов довший ніж очікувалось - то вже залежить від специфіки вашої задачі.

#10 Re: Апаратні питання » Робота з mysql висне ардуїнка » 2024-10-10 15:44:33

ijonhson пише:
     if (conn.connect(server_addr,****, user, password)) {
      delay (4000);// тут висне
  }
  else
    Serial.println("Connection failed.");

delay() не висне, а затримує виконання на 4 секунди. Який в цьому сенс, навіщо воно тут потрібне?
Оскільки "...trying..." виводиться тільки один раз, а "Connection failed." не виводиться, то можна припустити що або зʼєднання успішно встановлено, або виконання затрималось у conn.connect(), а саме на

connected = client->connect(server, port);

або на

read_packet();
parse_handshake_packet();
send_authentication_packet(user, password, db);
read_packet();

в MySQL_Connection::connect.

Додайте який-небудь Serial.println("Connected.") замість того delay().

Непогано би на стороні сервера запустити сніффер, наприклад wireshark, і подивитись чи встановлюється зʼєднання, чи приходить хоча б TCP SYN з ардуіни на відповідний порт. Якщо приходить, то на якому етапі комунікація зупиняється.

UPD: при успішному виконанні conn.connect() в консоль має вивестить версія SQL-сервера.

#11 Re: Програмування Arduino » USB Відеокамера та комп'ютер - як їх з'єднати за допомогою ESP8266 ? » 2024-10-10 10:38:05

sxstalker пише:

а чи є в нас якісь курси де б мені як чайнику розтлумачили все "на пальцях" починаючи з самого простого ?

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

sxstalker пише:

dimich - ви би взялись за моє навчання? :-)

Нажаль, не маю для цього ні достатньо вільного часу, ні педагогічного таланту.

#12 Re: Програмування Arduino » USB Відеокамера та комп'ютер - як їх з'єднати за допомогою ESP8266 ? » 2024-10-07 16:25:40

sxstalker пише:

от стало цікаво, а хоч сам сигнал від мікрофону я зможу передати на комп'ютер? чи також будуть люті тормоза?

Зможете, якщо підключити зовнішній АЦП з інтерфейсом I2S. Наприклад, щось типу WM8782.
Вбудований в ESP8266 АЦП, наскільки мені відомо, можна читати тільки циклічним опитуванням, і при увімкненому WiFi максимально досяжна частота - щось біля 1 кГц, що явно недостатньо для звуку.

sxstalker пише:

просто хотілося на цьому прикладі зрозуміти для себе як взагалі передати щось через esp8266 на комп'ютер  smile

Що означає "передати щось на компʼютер"? Коли ESP8266 зареєструвалася в мережі і отримала адресу, і ви її пінгаєте з компʼютера, вона вже передає на компʼютер пакети ICMP echo response.
А в цілому, на рівні мережі, чим передача з ESP8266 має відрізнятись від передачі з будь-якого іншого пристроя? Для передачі потоку з гарантією доставки - TCP сокет, для передачі датаграм - UDP сокет. Якщо передача передбачає запит/відповідь, то зручно використовувати HTTP поверх TCP. Тоді клієнтом на компі може бути браузер. В ESP IDF в examples/protocols є приклади.

#13 Re: Програмування Arduino » USB Відеокамера та комп'ютер - як їх з'єднати за допомогою ESP8266 ? » 2024-10-04 21:53:40

sxstalker пише:

Не розумію як тоді працюють сучасні вай фай камери :-(

Сучасні камери працюють на високих частотах по інтерфейсу з диференційними парами, наприклад, MIPI D-PHY. Контролер, який приймає дані з камери, має апаратну підтримку такого інтерфейсу. Також використовується апаратне стиснення відеопотоку.

#14 Re: Програмування Arduino » USB Відеокамера та комп'ютер - як їх з'єднати за допомогою ESP8266 ? » 2024-10-04 17:45:31

sxstalker пише:

а що це мені дасть?

Ну якщо там дійсно цей інтерфейс і вдастся визначити розпіновку, то спочатку дивитись, чи є щось у фреймворку ESP для роботи з ним. Якщо нема, то портувати код з якоїсь іншої платформи або писати з нуля. Благо інтерфейс OV7670 непогано документований і є бібліотеки/приклади для всяких ардуіно. Коли (якщо) запрацює код роботи з камерою, тоді додати, наприклад, RTSP-сервер, який буде відправляти відеопоток клієнту. Для ESP32-CAM щось уже має бути готове в цьому плані. Якщо сама камера вміє віддавати готовий відеопоток, наприклад m-jpeg, то буде простіше; якщо ні, то потрібен буде ще код якого-небудь енкодера, щоб приймальна сторона могла розпізнати і відображати відеопоток.

Ви ж самі поставили собі задачу "як зробити X, тільки обовʼязково використовуючи Y", причому інформації про цей Y обмаль. Звісно, це буде набагато складніше і довше ніж спочатку обирати компоненти, які найкраще підходять для вирішення тієї чи іншої задачі.

#16 Re: Програмування Arduino » USB Відеокамера та комп'ютер - як їх з'єднати за допомогою ESP8266 ? » 2024-10-04 12:04:48

Для початку спробуйте пошукати по маркуванню чіпа. Якщо повезе і документація на нього є у відкритому доступі, то як мінімум буде від чого відштовхуватись.
Також подивіться, з якими USB VID:PID камера детектиться компом. По них теж можливо вдастся щось знайти.

#17 Re: Програмування Arduino » USB Відеокамера та комп'ютер - як їх з'єднати за допомогою ESP8266 ? » 2024-10-04 11:57:52

sxstalker пише:

якщо я наприклад відпаяю просто саму камеру та мікрофон, невже не можна передати відео з самої камери? чи потрібен обовязково сам чіп який декодує відео з камери?

Може й можна. Але потрібно знати, який саме протокол використовує та камера. Там же можливі різні варіанти. Сама по собі "камера" - це просто світлочутлива матриця. У неї на борту може бути контролер, який зчитує сигнал з матриці, кодує відеопоток у якомусь форматі і передає назовні по якомусь протоколу. Може бути так, що він заодно реалізує і функцію USB-пристрою, видає відеопоток відразу в USB. Може бути що USB-пристрій реалізовано на іншому чіпі, а чіп з камери передає йому відеопоток по одному з безлічі можливих протоколів. Не маючи схеми та документації на те залізо, що використане в камері, можна тільки здогадуватись про можливі варіанти реалізації. Може бути навіть так, що видається аналоговий сигнал і цифрується вже тим окремим контроллером (хоча це навряд чи).

#18 Re: Програмування Arduino » USB Відеокамера та комп'ютер - як їх з'єднати за допомогою ESP8266 ? » 2024-10-04 11:46:31

sxstalker пише:

а ESP32 підійде краще для цього?

Без поняття. На ESP32 я тільки "Hello World" в UART писав. Очевидно, залежить від формату відеопотоку, який камера вміє видавати, розподільчої здатності та фреймрейту.
Майте на увазі, що USB OTG присутня тільки на деяких ESP32 чіпах. І фірмварь повинна вміти працювати з відповідним USB Device Class / Device SubClass / Device Protocol. Тобто підтримка взаємодії з камерою як з USB-пристроєм має бути або в самому IDF фреймворку, або сторонніми лібами, або доведеться реалізувати самостійно.

Якщо знайдете яку-небудь імплементацію USB over network для ESP32 (якщо такі взагалі існують), то може виявитись простіше: ESP32 просто прокидає весь USB-протокол у мережу, а на компі підіймається віртуальний USB-пристрій, з яким софт працює як з локально підключеною USB-камерою. Чи вистачить ESP32 для такого сценарія - х.з., треба пробувати.

#19 Re: Програмування Arduino » USB Відеокамера та комп'ютер - як їх з'єднати за допомогою ESP8266 ? » 2024-10-04 07:31:17

Якщо у камери як у пристроя вцілому USB інтерфейс, а у ESP8266 немає USB, то як їх зʼєднати? Емулювати USB на ESP8266 програмно? hmm

Якщо чіп камери окрім USB вміє, наприклад, SPI і дозволяє переконфігурацію ззовні, або відомий апаратний інтерфейс між самою камерою і чіпом, то чисто теоретично щось можливо придумати. Але потрібна документація на чіп камери, також знадобиться апаратна модифікація. І не факт, що швидкодії ESP8266 вистачить для передачі відеопотоку. Подумайте, чи варте воно того.

Щоб не викидати (у мене б теж рука не піднялась), можна зробити, наприклад, примітивний настільний USB-мікроскоп що підключається до компа по USB. Спробуйте просто перевернути обʼєктив зворотнім боком.

#20 Re: Різне » Що за плата (дуже потрібно) » 2024-09-29 10:14:05

Logachev пише:

Задача стоїть з'ясувати що це за друга плата та знайти її для закупівлі так як треба реанімувати камеру та передати на фронт.

Навряд чи така плата буде десь у продажу. Таке малюється за півгодини в якому-небудь кікаді і замовляється у китайців. Там же один транзистор, два резистори і перемикач (якщо на зворотньому боці ще чогось нема). Якщо потрібен один єдиний екземпляр, то можна видряпати на текстоліті, або взагалі зібрати на шматку макетки, якщо допускається невелике збільшення габаритів у товщину. Тільки потрібно визначити, які зʼєднання на зворотній стороні. Бажано відʼєднати її від ардуіни і подивитись. Або хоча б продзвонити, але припаяну правильно продзвонювати не так просто.

Хоча не дуже розумію, навіщо її замінювати, бо ламатись на ній практично нічому. Якщо той єдиний транзистор згорів, то тільки його і замінити, навіть не відпаюючи саму платку.

#21 Re: Різне » Що за плата (дуже потрібно) » 2024-09-29 01:22:45

Схоже на інвертуючий буфер з відкритим колектором, тобто інвертуючий перетворювач логічних рівнів.
Зверху вниз по другому фото:
Жовтий і синій провода - живлення ардуіни.
Червоний нижче них через резистор іде в базу транзистора.
Червоно-чорний - загальний (земля).
Нижні чорний і червоний, схоже, просто напряму підключені до PD2 і PD3.

Колектор транзистора через перемикач підключений до RX ардуіни. Тобто на піні RX інвертований сигнал із входу "S" (червоний провід).

Але плата двостороння, на іншій стороні теж мають бути доріжки. R2 іншим кінцем, скоріш за все, підключений до піна 5V ардуіни. TX (останній праворуч в нижньому ряду) теж мабуть кудись підключений.

#22 Re: Апаратні питання » 2.4Ghz (NRF24L01 PA LNA) » 2024-09-20 21:15:21

Scar пише:

чи можливо реалізувати схему де один модуль NRF24L01 PA LNA буде передатчиком (transmitter) а інший модуль NRF24L01 PA LNA приймачем (reciever).

nRF24 використовує протокол ANT мережевого рівня. Як приймач, не будучи при цьому передавачем, зможе підтверджувати прийом пакетів (acknowledgement)? Як передавач, не будучи приймачем, зможе отримувати ці підтвердження?

#23 Re: Програмування Arduino » TM1637 помилка при компиляціі для чіпа атмега328 » 2024-09-19 17:26:13

khalimon пише:

При виборі саме чіпа атмега328 - видає помилку "ошибка коммиляции для atmega328"

В налаштуваннях IDE поставте галку "Show verbose output during: compilation" ("Показувати докладний вивід протягом: компіляція" в перекладеному інтерфейсі).

В якому саме пункті обираєте "чіп атмега328"? Як там конкретно написано? Це з якогось додаткового пакунка?
Яка версія IDE?

khalimon пише:

Проблема з'явилась при підключенні бібліотеки тм1637...

Бібліотек з такою назвою багато. Звідки конкретно її ставили?

#24 Re: Програмування Arduino » TM1637 помилка при компиляціі для чіпа атмега328 » 2024-09-19 14:46:52

khalimon пише:

TM1637 помилка при компиляціі для чіпа атмега328,

Так покажіть текст помилки. І команду, яка фейлиться.
Компілюєте в IDE? Яка саме бібліотека для TM1637 встановлена?

khalimon пише:

хоча для ардуіно нано все норм...

Атмега328 - це контроллер. Ардуіно нано - це плата, на якій теж атмега328.
Яка конкретно плата вибрана?

#25 Re: Апаратні питання » 320х480 TFT LCD кольоровий дисплей для Arduino Mega 2560 » 2024-09-18 21:21:45

З цією UTFT приклад з UTFT/examples/Arduino (AVR)/UTFT_Demo_480x320 на ось такій Mega2560 запустився без будь-якого шаманства.

Ініціалізував з

UTFT myGLCD(ILI9486, 38, 39, 40, 41);

Підвал форуму