FLPROG+Qwen2,5-Max

Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

FLPROG+Qwen2,5-Max

Сообщение Brand2 »

Всем добрый день!
Только ленивый не пишет сейчас о CHAT GPT,Deep-Seek и других.
Попробовал совместить их с FLPROG .
Сделал простой проект в FLPROG,генератор,счетчик и переменная,которая подключена к счетчику.
Скомпилировал и сектч загрузил в чат,потом попросил сделат вывод на веб страницу переменной,дал имя сети и пароль,также сказал сделать вывод даты,время на страницу,потом добавил кнопки ON/OFF для остановки счетчика,кнопкуReset;
После устранения ошибок получил то что мне хотелось.Так же сказал сделать запоминание времени включения и выключения в энергонезависимую память с выводом истории и тд.
Думаю это поможет многим для расширения возможностей в разработке проектов и устранения ошибок при разработки проектов.
Если кому то по
Qwen2_5-Max_test.ino
test_Qwen2,3-Max.flp
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Re: FLPROG+Qwen2,5-Max

Сообщение Rovki »

так xxx.ino уже с веб?
Электронщик до мозга костей и не только
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Brand2 »

да,в FLPROG только счетчик импульсов ,то что в проекте
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Re: FLPROG+Qwen2,5-Max

Сообщение Rovki »

К роутеру подключился , а веб не грузится ..Имя сети ,пароль поменял ..
А так, очень интересно :smile9: особенно тем кто в коде пишет :smile44:
Электронщик до мозга костей и не только
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Re: FLPROG+Qwen2,5-Max

Сообщение Rovki »

Может ИИ сможет библиотеки писать по даташитам железа?
Электронщик до мозга костей и не только
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Brand2 »

Этого я еще не пробовал,но исправляет ошибки при компиляции с подробным обьяснением ,которые действительно исправляются.
Сейчас пробую сразу 2 чата,DeepSeek bи QWEN2,5-Max,первый работает быстрее,но иногда пишет что сервер занят,второй медленнее но не зависает .
Вот пример кода,где исправляется ошибка в чате DeepSeek

пишет ошибку handleRoot' was not declared in this scope
в строке server.on("/", handleRoot); // Обработчик для корневой страницы
(Due to technical issues, the search service is temporarily unavailable.)

Ошибка 'handleRoot' was not declared in this scope возникает, если функция handleRoot не была объявлена до её использования в server.on("/", handleRoot). В C++ (и Arduino) порядок объявления функций имеет значение. Чтобы исправить ошибку, нужно либо переместить определение функции handleRoot выше, где она используется, либо добавить предварительное объявление функции.
► Показать
Что изменено:
Предварительное объявление функций:

Добавлены строки:

cpp
Copy
void handleRoot();
void handleData();
Это позволяет компилятору знать, что такие функции существуют, даже если их определение находится ниже в коде.

Порядок функций:

Функции handleRoot и handleData теперь объявлены до их использования в server.on().

Как это работает:
Предварительное объявление сообщает компилятору, что функции handleRoot и handleData будут определены позже.

Это стандартная практика в C/C++ для разделения объявления и определения функций.

Теперь код должен компилироваться без ошибок. Если возникнут дополнительные вопросы, дайте знать! 😊

Забыл как прятать длинные сообщения скрытыми,напомните пожалуйста
Аватара пользователя
Rovki
Полковник
Сообщения: 5710
Зарегистрирован: 22 апр 2016, 17:25
Откуда: Чехов
Имя: Анатолий
Благодарил (а): 67 раз
Поблагодарили: 212 раз
Контактная информация:

Re: FLPROG+Qwen2,5-Max

Сообщение Rovki »

Подправил пост как хотели :smile38:
Электронщик до мозга костей и не только
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Brand2 »

Rovki,библиотеки он тоже пишет,попробовал на ds2438,а вот пример библиотеки


напиши библиотеку для HLK-LD2420 24
(Due to technical issues, the search service is temporarily unavailable.)

HLK-LD2420 — это компактный радарный модуль для обнаружения движения. Он работает по протоколу UART и предоставляет данные о движении, расстоянии до объекта и энергии сигнала. Для работы с этим модулем можно создать библиотеку, которая будет обрабатывать данные и предоставлять удобный интерфейс для их использования.

Создание библиотеки для HLK-LD2420
1. Структура библиотеки:
HLK_LD2420.h — заголовочный файл, где объявляются классы и методы.

HLK_LD2420.cpp — файл реализации методов.


2. HLK_LD2420.h


#ifndef HLK_LD2420_H
#define HLK_LD2420_H

#include <Arduino.h>

class HLK_LD2420 {
public:
HLK_LD2420(HardwareSerial& serial); // Конструктор
void begin(uint32_t baudRate = 115200); // Инициализация
bool readData(); // Чтение данных с модуля
bool isMotionDetected(); // Проверка наличия движения
uint16_t getDistance(); // Получение расстояния до объекта (в мм)
uint16_t getEnergy(); // Получение энергии сигнала

private:
HardwareSerial& _serial; // Ссылка на объект UART
uint8_t _buffer[32]; // Буфер для хранения данных
bool _motionDetected; // Флаг обнаружения движения
uint16_t _distance; // Расстояние до объекта
uint16_t _energy; // Энергия сигнала
bool _parseData(); // Парсинг данных из буфера
};

#endif


3. HLK_LD2420.cpp


#include "HLK_LD2420.h"

HLK_LD2420::HLK_LD2420(HardwareSerial& serial) : _serial(serial) {
_motionDetected = false;
_distance = 0;
_energy = 0;
}

void HLK_LD2420::begin(uint32_t baudRate) {
_serial.begin(baudRate);
}

bool HLK_LD2420::readData() {
// Очистка буфера
memset(_buffer, 0, sizeof(_buffer));

// Чтение данных из UART
if (_serial.available() >= 32) {
for (uint8_t i = 0; i < 32; i++) {
_buffer = _serial.read();
}
return _parseData(); // Парсинг данных
}
return false;
}

bool HLK_LD2420::_parseData() {
// Проверка заголовка пакета (пример: 0xAA 0x55)
if (_buffer[0] != 0xAA || _buffer[1] != 0x55) {
return false;
}

// Парсинг данных
_motionDetected = (_buffer[2] & 0x01) != 0; // Бит движения
_distance = (_buffer[3] << 8) | _buffer[4]; // Расстояние (2 байта)
_energy = (_buffer[5] << 8) | _buffer[6]; // Энергия сигнала (2 байта)

return true;
}

bool HLK_LD2420::isMotionDetected() {
return _motionDetected;
}

uint16_t HLK_LD2420::getDistance() {
return _distance;
}

uint16_t HLK_LD2420::getEnergy() {
return _energy;
}

4. Использование библиотеки
Пример использования библиотеки в основном скетче:

#include "HLK_LD2420.h"

// Создаем объект для работы с HLK-LD2420
HLK_LD2420 radar(Serial2); // Используем Serial2 для UART

void setup() {
Serial.begin(115200);
radar.begin(); // Инициализация модуля
}

void loop() {
if (radar.readData()) {
// Данные успешно прочитаны
Serial.print("Motion Detected: ");
Serial.println(radar.isMotionDetected() ? "Yes" : "No");

Serial.print("Distance: ");
Serial.print(radar.getDistance());
Serial.println(" mm");

Serial.print("Energy: ");
Serial.println(radar.getEnergy());

Serial.println("-------------------");
} else {
Serial.println("Failed to read data from HLK-LD2420!");
}

delay(1000); // Чтение данных каждую секунду
}


Как это работает:
Инициализация:

Библиотека использует UART для связи с модулем HLK-LD2420.

В конструкторе передается объект HardwareSerial (например, Serial2).

Чтение данных:

Метод readData() читает 32 байта данных из UART.

Данные проверяются на корректность (заголовок пакета 0xAA 0x55).

Парсинг данных:

Из данных извлекаются:

Флаг движения (_motionDetected).

Расстояние до объекта (_distance).

Энергия сигнала (_energy).

Получение данных:

Методы isMotionDetected(), getDistance() и getEnergy() возвращают соответствующие значения.

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

Поддержка UART.

Возможность расширения для других функций модуля.

Если нужно добавить функциональность или исправить что-то, дайте знать! 😊

New chat
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Phazz »

Это скорее всего он взял из уже существовавшей библиотеки. Нужно что-то на что нет библиотек или они появились только за последний год
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Brand2 »

Phazz,напишите на что бы вы хотели библиотеку,я попробую
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Phazz »

Я даже не могу сейчас придумать для чего нет библиотеки)
Аватара пользователя
montirovka
Капитан
Сообщения: 730
Зарегистрирован: 15 фев 2021, 16:16
Откуда: Геленджик
Имя: Сергей
Благодарил (а): 42 раза
Поблагодарили: 173 раза

Re: FLPROG+Qwen2,5-Max

Сообщение montirovka »

Есть у меня плата усилителя мощности от телика NEC PD-MA-1. В предварительной части стоит микросхема CXA2022S. Управляется по шине I2C.
IMG_4419.JPG

Есть желание подключить к Arduino UNO.
Даташит ниже. Я думаю, что чаты GPT ни чем не смогут помочь, а люди да.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Phazz
Полковник
Сообщения: 3110
Зарегистрирован: 17 окт 2016, 15:38
Откуда: Сургут
Имя: Анатолий
Благодарил (а): 228 раз
Поблагодарили: 107 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Phazz »

ЧатЖПТ что-то накидал
Аватара пользователя
montirovka
Капитан
Сообщения: 730
Зарегистрирован: 15 фев 2021, 16:16
Откуда: Геленджик
Имя: Сергей
Благодарил (а): 42 раза
Поблагодарили: 173 раза

Re: FLPROG+Qwen2,5-Max

Сообщение montirovka »

По даташиту я не понял какое напряжение шины I2C. Полной схемы на телевизор в инете нет. Да и на блок этот не нашел схемы.
ecoins
Полковник
Сообщения: 3999
Зарегистрирован: 12 фев 2016, 11:40
Откуда: Шатура
Имя: Энвер
Благодарил (а): 136 раз
Поблагодарили: 149 раз

Re: FLPROG+Qwen2,5-Max

Сообщение ecoins »

Phazz писал(а): 02 фев 2025, 22:26 Это скорее всего он взял из уже существовавшей библиотеки. Нужно что-то на что нет библиотек или они появились только за последний год
Проблема в том, что и доступные библиотеки зачастую немного(или сильно) тормозят, не очевидно, что их комбинация приведет к приемлемому результату.
С уважением, ecoins.
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Brand2 »

Montirovka,
вот пример управления звуком с помощью Arduino Uno и потенциометра,второй пример с помощью кнопок.
#include <Wire.h>

// Определение адреса I2C микросхемы CXA2022S
#define CXA2022S_I2C_ADDRESS 0x48 // Пример адреса (замените на реальный)

// Пин для подключения потенциометра
#define POTENTIOMETER_PIN A0

// Инициализация шины I2C
void cxa2022s_init_i2c() {
Wire.begin(); // Инициализация I2C
}

// Запись в регистр микросхемы
bool cxa2022s_write_register(uint8_t reg, uint8_t value) {
Wire.beginTransmission(CXA2022S_I2C_ADDRESS);
Wire.write(reg); // Указываем адрес регистра
Wire.write(value); // Записываем значение
return Wire.endTransmission() == 0; // Проверяем успешность передачи
}

// Установка громкости
bool cxa2022s_set_volume(uint8_t volume) {
// Предположим, что громкость устанавливается записью в регистр 0x10
if (volume > 100) volume = 100; // Ограничение значения (0–100)
uint8_t value = map(volume, 0, 100, 0, 255); // Преобразование в диапазон 0–255
return cxa2022s_write_register(0x10, value);
}

// Настройка Arduino
void setup() {
Serial.begin(9600); // Инициализация последовательного порта
cxa2022s_init_i2c(); // Инициализация I2C

Serial.println("Готово! Меняйте громкость с помощью потенциометра.");
}

void loop() {
// Чтение значения с потенциометра
int potValue = analogRead(POTENTIOMETER_PIN); // Значение от 0 до 1023
uint8_t volume = map(potValue, 0, 1023, 0, 100); // Преобразование в диапазон 0–100

// Установка громкости
cxa2022s_set_volume(volume);

// Вывод текущей громкости в монитор последовательного порта
Serial.print("Текущая громкость: ");
Serial.println(volume);

delay(100); // Небольшая задержка для стабильности
}


Второй пример с помощью кнопок


#define BUTTON_UP_PIN 2
#define BUTTON_DOWN_PIN 3

uint8_t currentVolume = 50; // Начальная громкость

void setup() {
pinMode(BUTTON_UP_PIN, INPUT_PULLUP);
pinMode(BUTTON_DOWN_PIN, INPUT_PULLUP);
cxa2022s_init_i2c();
}

void loop() {
if (digitalRead(BUTTON_UP_PIN) == LOW) {
currentVolume += 5; // Увеличение громкости
if (currentVolume > 100) currentVolume = 100;
cxa2022s_set_volume(currentVolume);
Serial.print("Громкость увеличена: ");
Serial.println(currentVolume);
delay(200); // Защита от дребезга
}

if (digitalRead(BUTTON_DOWN_PIN) == LOW) {
currentVolume -= 5; // Уменьшение громкости
if (currentVolume < 0) currentVolume = 0;
cxa2022s_set_volume(currentVolume);
Serial.print("Громкость уменьшена: ");
Serial.println(currentVolume);
delay(200); // Защита от дребезга
}
}
Аватара пользователя
montirovka
Капитан
Сообщения: 730
Зарегистрирован: 15 фев 2021, 16:16
Откуда: Геленджик
Имя: Сергей
Благодарил (а): 42 раза
Поблагодарили: 173 раза

Re: FLPROG+Qwen2,5-Max

Сообщение montirovka »

Спасибо Alex за начало. Как дойдут руки отпишусь.
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Re: FLPROG+Qwen2,5-Max

Сообщение Naladchik »

Brand2 писал(а): 03 фев 2025, 09:27 ...вот пример управления звуком с помощью Arduino Uno и потенциометра, второй пример с помощью кнопок.....
Это то, что накидал ChatGPT ?
Win10-64. FLProg Portable.
Изображение
Brand2
Лейтенант
Сообщения: 450
Зарегистрирован: 26 фев 2018, 21:27
Откуда: Haifa
Имя: Alex
Благодарил (а): 2 раза
Поблагодарили: 5 раз

Re: FLPROG+Qwen2,5-Max

Сообщение Brand2 »

Naladchik , 'да
Naladchik
Капитан
Сообщения: 908
Зарегистрирован: 04 окт 2015, 19:10
Откуда: Новосибирск
Имя: Павел
Благодарил (а): 20 раз
Поблагодарили: 22 раза

Re: FLPROG+Qwen2,5-Max

Сообщение Naladchik »

Brand2 писал(а): 03 фев 2025, 11:55 Naladchik , 'да
Судя по вышеприведенному коду ChatGPT понятия не имеет что такое CXA2022S и как с ней общаться.

1. "... // Определение адреса I2C микросхемы CXA2022S
#define CXA2022S_I2C_ADDRESS 0x48 // Пример адреса (замените на реальный)..
11.png
2. "... // Установка громкости
bool cxa2022s_set_volume(uint8_t volume) {
// Предположим, что громкость устанавливается записью в регистр 0x10
...
return cxa2022s_write_register(0x10, value); ... "

Т.е. значение громкости преобразовывается в байтовую величину, которая полностью записывается в регистр
22.png
По даташиту в регистре значение громкости занимает 6 байт, со 2го по 7, нулевой - байт включение AGC (АРУ), первый - MUTE.
Т.е. уже ерунда.

3. Остальные регистры вообще не упоминаются.

По итогу весь вышеприведенный код ничто иное как типовой пример преобразования чего то в байт с последующей выдачей этого байта в шину I2C какому то устройству по какому то адресу.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64. FLProg Portable.
Изображение
Ответить

Вернуться в «А что так можно было, да?»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя