Страница 1 из 2
OpenAI ChatGPT
Добавлено: 05 мар 2023, 15:35
Vuktor
Может кто ещё не слышал о ChatGPT. Чат-бот с искусственным интеллектом. Может писать код на разных языках программирования. Так же может объяснить уже готовый код, если его туда вставить. Как зарегистрироваться много информации в интернете. Сильно ещё не экспериментировал. Написал - "Напиши код мигания светодиодом на пин 13 для Ардуино Нано"
https://chat.openai.com/chat
gpt.jpg
OpenAI ChatGPT
Добавлено: 05 мар 2023, 16:22
Phazz
[ref]Vuktor[/ref], фу, delay. Скажите ему чтобы переделал по нормальному)
OpenAI ChatGPT
Добавлено: 05 мар 2023, 17:40
Vuktor
[ref=#808080]Phazz[/ref],
— Напиши код мигания светодиодом на пин 13 для Ардуино Нано, без функции delay
—Конечно! Чтобы мигание светодиодом на пин 13 происходило без использования функции delay, мы можем использовать функцию millis(), которая возвращает количество миллисекунд, прошедших с момента запуска программы.
Вот пример кода:
gpt.jpg
— "В этом коде мы используем переменную previousMillis для хранения времени последнего изменения состояния светодиода. В начале каждой итерации loop() мы получаем текущее время с помощью функции millis() и проверяем, прошло ли достаточно времени с момента последнего изменения состояния светодиода (с помощью выражения currentMillis - previousMillis >= interval). Если прошло достаточно времени, мы меняем состояние светодиода и обновляем значение previousMillis.
Таким образом, светодиод будет мигать с интервалом в 1 секунду (задается переменной interval). Если вы хотите изменить скорость мигания, просто измените значение этой переменной на нужное вам количество миллисекунд."
Отправлено спустя 5 минут 2 секунды:
Помимо писать и объяснять код, ChatGPT ещё может оптимизировать код, найти что-то или заменить
Отправлено спустя 4 минуты 15 секунд:
[ref=#808080]Phazz[/ref], Вот посложнее вопрос задал
— "Напиши программу для Ардуино подключенную к часам реального времени DS3231. Чтобы сделать часы которые будут сигнализировать время миганием светодиода. Светодиод должен мигать каждый час как изменяется час. Количество миганий должно соответствовать цифре наступившего часа. Формат времени 24 часа."
—"Конечно! Для решения этой задачи мы также можем использовать библиотеку RTClib для работы с часами реального времени DS3231.
Вот пример кода:
gpt.jpg
— "В этом коде мы используем объект rtc для получения текущего времени с помощью метода now(). Затем мы определяем количество миганий для текущего часа (с помощью переменной blinkCount) и мигаем светодиодом нужное количество раз в цикле for.
После мигания светодиода мы ждем до начала следующей минуты с помощью функции delay(). Таким образом, светодиод будет мигать каждый час в соответствии с заданными условиями. Для определения времени до начала следующей минуты мы используем формулу (60 - now.second()) * 1000, которая вычисляет количество миллисекунд до начала следующей минуты."
OpenAI ChatGPT
Добавлено: 05 мар 2023, 18:18
Ingwar
Не, нужно не такое популярное спросить.
Например драйвер (функцию) к какому ни будь не популярному в ардуино среде АЦП...
Для пробы - ADS1262. Я смогу завтра проверить)))
OpenAI ChatGPT
Добавлено: 05 мар 2023, 18:33
Vuktor
[ref]Ingwar[/ref], — "Напиши драйвер (функцию) к не популярному в ардуино среде АЦП...
Для ADS1262"
— "Конечно! Вот пример драйвера для работы с АЦП ADS1262 в Arduino:"
Код: Выделить всё
#include <SPI.h>
// команды ADS1262
const byte ADS1262_RESET = 0x06;
const byte ADS1262_START = 0x08;
const byte ADS1262_STOP = 0x0A;
const byte ADS1262_RDATAC = 0x10;
const byte ADS1262_SDATAC = 0x11;
const byte ADS1262_RREG = 0x20;
const byte ADS1262_WREG = 0x40;
// регистры ADS1262
const byte ADS1262_REG_MUX0 = 0x00;
const byte ADS1262_REG_SYS0 = 0x02;
const byte ADS1262_REG_ADC0 = 0x04;
const byte ADS1262_REG_ADC1 = 0x06;
const byte ADS1262_REG_IFMODE = 0x08;
const byte ADS1262_REG_OFCAL0 = 0x0A;
const byte ADS1262_REG_OFCAL1 = 0x0C;
const byte ADS1262_REG_OFCAL2 = 0x0E;
const byte ADS1262_REG_FSCAL0 = 0x10;
const byte ADS1262_REG_FSCAL1 = 0x12;
const byte ADS1262_REG_FSCAL2 = 0x14;
const byte ADS1262_REG_ID = 0x7E;
const byte ADS1262_REG_STATUS = 0x00;
SPISettings spiSettings(20000000, MSBFIRST, SPI_MODE1); // настройки SPI
void ADS1262_Init() {
pinMode(ADS1262_START, OUTPUT);
pinMode(ADS1262_RESET, OUTPUT);
digitalWrite(ADS1262_START, HIGH);
digitalWrite(ADS1262_RESET, HIGH);
SPI.beginTransaction(spiSettings);
digitalWrite(ADS1262_RESET, LOW);
delay(10);
digitalWrite(ADS1262_RESET, HIGH);
delay(10);
SPI.transfer(ADS1262_SDATAC);
delay(10);
SPI.transfer(ADS1262_WREG | ADS1262_REG_MUX0);
SPI.transfer(0x10); // AINP = AIN0, AINN = AIN1
SPI.transfer(0x01); // AVDD/AVSS
SPI.transfer(0x00); // GND
SPI.transfer(ADS1262_WREG | ADS1262_REG_ADC0);
SPI.transfer(0x0F); // DR = 2.5 SPS
SPI.transfer(0x08); // PGA = 1
SPI.transfer(0x00); // BCS = disabled
SPI.transfer(ADS1262_WREG | ADS1262_REG_ADC1);
SPI.transfer(0x00); // CM = continuous conversion mode
SPI.transfer(ADS1262_RREG | ADS1262_REG_ADC0);
SPI.transfer(0xFF);
SPI.transfer(0xFF);
SPI.transfer(0xFF);
SPI.transfer(ADS1262_START);
SPI.endTransaction();
}
int32_t ADS1262_Read() {
SPI.beginTransaction(spiSettings);
byte data[3];
SPI.transfer(ADS1262_RDATA);
for (int i = 0; i < 3; i++) {
data[i] = SPI.transfer(0x00);
}
SPI.endTransaction();
int32_t value = ((int32_t)data[0] << 16) | ((
OpenAI ChatGPT
Добавлено: 05 мар 2023, 18:45
Ingwar
Vuktor писал(а): 05 мар 2023, 18:33
Вот пример драйвера для работы
Я конечно не фига не специалист, но последние скобки в строке 80 это нормально?
Отправлено спустя 1 минуту 55 секунд:
А так игруха прикольная. Сегодня поговорю с дочкой (в Сербии) о регистрации на ее симку))
OpenAI ChatGPT
Добавлено: 05 мар 2023, 18:47
Phazz
[ref]Ingwar[/ref], есть боты в телеграмм для работы gpt
OpenAI ChatGPT
Добавлено: 05 мар 2023, 18:48
Ingwar
Phazz писал(а): 05 мар 2023, 18:47
есть боты в телеграмм для работы gpt
Я пробовал одно из предложений, но мне попалась какая то дичь требующая деньги. Дальше искать не стал))
OpenAI ChatGPT
Добавлено: 05 мар 2023, 18:52
Phazz
Который мне попадался тоже денег просит. Но сумма символическая. Да и есть бесплатный лимит.
OpenAI ChatGPT
Добавлено: 05 мар 2023, 18:55
Ingwar
Phazz писал(а): 05 мар 2023, 18:52
Но сумма символическая.
На таких условиях это норм, каждый труд требует оплаты.
Результатом своих "успехов" по регистрации поделюсь, если получится получить доступ.
З.Ы. Прокомментируйте плиз вопрос о скобках.
OpenAI ChatGPT
Добавлено: 05 мар 2023, 18:59
Vuktor
Ingwar писал(а): 05 мар 2023, 18:45
Я конечно не фига не специалист, но последние скобки в строке 80 это нормально?
— "Объясни эту строку кода int32_t value = ((int32_t)data[0] << 16) | (("
— "Эта строка кода выполняет конвертацию полученных данных от АЦП в 32-битное целое число типа int32_t.
Для получения 32-битного значения необходимо объединить три байта данных, полученных от АЦП. Первый байт содержит старший бит (MSB), а третий байт содержит младший бит (LSB).
В этой строке кода мы сначала сдвигаем значение первого байта на 16 бит (до старшего слова), используя оператор побитового сдвига влево <<. Затем мы объединяем это значение с двумя другими байтами, используя оператор побитового ИЛИ |.
Таким образом, мы получаем 32-битное значение value, которое содержит данные, прочитанные с АЦП. Это значение может быть использовано для дальнейшей обработки или вывода на экран."
OpenAI ChatGPT
Добавлено: 05 мар 2023, 19:08
Ingwar
Vuktor писал(а): 05 мар 2023, 18:59
Для получения 32-битного значения необходимо объединить три байта данных, полученных от АЦП. Первый байт содержит старший бит (MSB), а третий байт содержит младший бит (LSB).
В этой строке кода мы сначала сдвигаем значение первого байта на 16 бит (до старшего слова), используя оператор побитового сдвига влево <<. Затем мы объединяем это значение с двумя другими байтами, используя оператор побитового ИЛИ |.
Таким образом, мы получаем 32-битное значение value, которое содержит данные, прочитанные с АЦП. Это значение может быть использовано для дальнейшей обработки или вывода на экран."
Это понятно, но закрывающие скобки в нормальную сторону написаны? Которые после "или" "(("
Или что это (если не скобки).
Отправлено спустя 3 минуты 40 секунд:
Может мы разные картинки видим.
У меня так
[spoiler]
Безымянный.png
[/spoiler]
OpenAI ChatGPT
Добавлено: 05 мар 2023, 19:13
Vuktor
— написать функцию опроса значений с входов ADS1262 для ардуино
— Для опроса значений с входов ADS1262 необходимо использовать следующий алгоритм:
Отправить команду на старт преобразования данных (START/SYNC команда).
Дождаться окончания преобразования данных (можно использовать опрос готовности преобразования).
Считать полученные данные с входов ADS1262 (можно считать несколько значений сразу).
Вот пример функции опроса значений с входов ADS1262 для Arduino:
Код: Выделить всё
#include <SPI.h>
// Пины для ADS1262
const int ADS1262_CS = 10; // Chip select
const int ADS1262_START = 9; // Start conversion
void setup() {
Serial.begin(9600);
// Настройка пинов
pinMode(ADS1262_CS, OUTPUT);
pinMode(ADS1262_START, OUTPUT);
// Начальное значение пинов
digitalWrite(ADS1262_CS, HIGH);
digitalWrite(ADS1262_START, LOW);
// Настройка SPI
SPI.begin();
SPI.setClockDivider(SPI_CLOCK_DIV4); // Скорость передачи 4 МГц
SPI.setDataMode(SPI_MODE1);
SPI.setBitOrder(MSBFIRST);
}
void loop() {
// Отправляем команду на старт преобразования данных
digitalWrite(ADS1262_CS, LOW);
SPI.transfer(0x08); // START/SYNC команда
digitalWrite(ADS1262_CS, HIGH);
// Ждем окончания преобразования данных
while (digitalRead(ADS1262_START) == HIGH) {
delay(1);
}
// Считываем данные с входов ADS1262
int32_t data[4]; // массив для хранения 4 значений
digitalWrite(ADS1262_CS, LOW);
SPI.transfer(0x12); // Режим чтения данных
for (int i = 0; i < 4; i++) {
data[i] = ((int32_t)SPI.transfer(0) << 16) | ((int32_t)SPI.transfer(0) << 8) | (int32_t)SPI.transfer(0);
}
digitalWrite(ADS1262_CS, HIGH);
// Выводим считанные значения на Serial Monitor
for (int i = 0; i < 4; i++) {
Serial.print("Channel ");
Serial.print(i);
Serial.print(": ");
Serial.println(data[i]);
}
// Задержка между опросами
delay(1000);
}
Эта функция использует SPI для обмена данными с ADS1262 и выполняет опрос четырех значений с входов ADS1262 каждую секунду. Полученные значения выводятся на Serial Monitor. Если в вашей схеме используется другое количество входов, то вы можете изменить число значений, считываемых в массив data.
OpenAI ChatGPT
Добавлено: 05 мар 2023, 19:17
Ingwar
[ref]Vuktor[/ref], во, теперь мне последняя строка не кажется странной))).
Спасибо, завтра проверю.
OpenAI ChatGPT
Добавлено: 05 мар 2023, 21:04
Vuktor
[ref]Ingwar[/ref], Исправил последнее сообщение. Интернет завис не до конца сначала код скопировал
Отправлено спустя 8 минут 43 секунды:
Ingwar писал(а): 05 мар 2023, 18:45
Сегодня поговорю с дочкой (в Сербии) о регистрации на ее симку))
Тогда по идее и ВПН должен быть Сербии. Номер регистрации должен соответствовать стране ВПН. Ну как я понял. Вроде бы.
Отправлено спустя 1 час 34 минуты 23 секунды:
[bbvideo]
https://youtu.be/XAva_e8LWko[/bbvideo]
OpenAI ChatGPT
Добавлено: 05 мар 2023, 21:16
JonyBest
Vuktor писал(а): 05 мар 2023, 21:04
Тогда по идее и ВПН должен быть Сербии.
Зарегистрировался без всяких ВПНов на российский ящик + купил
номер за 22руб для получения кода смс. Сервис искать "openai".
OpenAI ChatGPT
Добавлено: 05 мар 2023, 21:29
Vuktor
JonyBest писал(а): 05 мар 2023, 21:16
Зарегистрировался без всяких ВПНов на российский ящик + купил номер за 22руб для получения кода смс. Сервис искать "openai".
У меня без ВПН не работает. Только с ВПН, сам чат
OpenAI ChatGPT
Добавлено: 07 мар 2023, 06:02
Ingwar
Vuktor писал(а): 05 мар 2023, 19:13
Эта функция использует SPI для обмена данными с ADS1262 и выполняет опрос четырех значений с входов ADS1262 каждую секунду. Полученные значения выводятся на Serial Monitor. Если в вашей схеме используется другое количество входов, то вы можете изменить число значений, считываемых в массив data.
Посидел я пару часиков, потыкался...
Ну про то, что инициализация не полностью описана опущу (не все необходимые пины инициализированы). В примере вывод массива в порт, а у меня на макетка с дисплейчиком.
Вместо конструкции
Код: Выделить всё
for (int i = 0; i < 4; i++) {
Serial.print("Channel ");
Serial.print(i);
Serial.print(": ");
Serial.println(data[i]);
}
сделал
пробовал и без скобок.
Значения какие то читаются, но абстрактные...
Короче подспорье наверное хорошее, но сука "на шару" (без владения вопросом) не прокатит
Попробуйте если не трудно, запросить не с выводом в порт,а в какую нибудь переменную.
OpenAI ChatGPT
Добавлено: 07 мар 2023, 08:44
Vuktor
[ref]Ingwar[/ref], Напишите список конкретных вопросов. Я думаю тут надо самому вести диалог с ИИ. Только так можно к чему-то прийти. На всякий случай объясню, как зарегистрироваться.
OpenAI ChatGPT
Добавлено: 07 мар 2023, 10:01
JonyBest
Vuktor писал(а): 07 мар 2023, 08:44
Регистрироваться нужно с ВПН, страна номера тел. должна соответствовать стране выбранной в ВПН.
Это не обязательное условие. Как пример у меня впн франции, зарегистрировал на телефон кубы.
Зарегистрировал десяток аккаунтов. Бывает на вирт номер не приходит смс. Отменяем номер и выбираем другую страну, пока не сработает. Причем система смс отправляет. Проблема с загруженностью вирт номеров.