Страница 1 из 2

OpenAI ChatGPT

Добавлено: 05.03.2023{, 15:35}
Vuktor
Может кто ещё не слышал о ChatGPT. Чат-бот с искусственным интеллектом. Может писать код на разных языках программирования. Так же может объяснить уже готовый код, если его туда вставить. Как зарегистрироваться много информации в интернете. Сильно ещё не экспериментировал. Написал - "Напиши код мигания светодиодом на пин 13 для Ардуино Нано"
https://chat.openai.com/chat
gpt.jpg

OpenAI ChatGPT

Добавлено: 05.03.2023{, 16:22}
Phazz
Vuktor, фу, delay. Скажите ему чтобы переделал по нормальному)

OpenAI ChatGPT

Добавлено: 05.03.2023{, 16:48}
Vuktor
Phazz,
— Напиши код мигания светодиодом на пин 13 для Ардуино Нано, без функции delay
—Конечно! Чтобы мигание светодиодом на пин 13 происходило без использования функции delay, мы можем использовать функцию millis(), которая возвращает количество миллисекунд, прошедших с момента запуска программы.
Вот пример кода:
gpt.jpg
— "В этом коде мы используем переменную previousMillis для хранения времени последнего изменения состояния светодиода. В начале каждой итерации loop() мы получаем текущее время с помощью функции millis() и проверяем, прошло ли достаточно времени с момента последнего изменения состояния светодиода (с помощью выражения currentMillis - previousMillis >= interval). Если прошло достаточно времени, мы меняем состояние светодиода и обновляем значение previousMillis.

Таким образом, светодиод будет мигать с интервалом в 1 секунду (задается переменной interval). Если вы хотите изменить скорость мигания, просто измените значение этой переменной на нужное вам количество миллисекунд."

Отправлено спустя 5 минут 2 секунды:
Помимо писать и объяснять код, ChatGPT ещё может оптимизировать код, найти что-то или заменить

Отправлено спустя 4 минуты 15 секунд:
Phazz, Вот посложнее вопрос задал
— "Напиши программу для Ардуино подключенную к часам реального времени DS3231. Чтобы сделать часы которые будут сигнализировать время миганием светодиода. Светодиод должен мигать каждый час как изменяется час. Количество миганий должно соответствовать цифре наступившего часа. Формат времени 24 часа."
—"Конечно! Для решения этой задачи мы также можем использовать библиотеку RTClib для работы с часами реального времени DS3231.
Вот пример кода:
gpt.jpg
— "В этом коде мы используем объект rtc для получения текущего времени с помощью метода now(). Затем мы определяем количество миганий для текущего часа (с помощью переменной blinkCount) и мигаем светодиодом нужное количество раз в цикле for.

После мигания светодиода мы ждем до начала следующей минуты с помощью функции delay(). Таким образом, светодиод будет мигать каждый час в соответствии с заданными условиями. Для определения времени до начала следующей минуты мы используем формулу (60 - now.second()) * 1000, которая вычисляет количество миллисекунд до начала следующей минуты."

OpenAI ChatGPT

Добавлено: 05.03.2023{, 18:18}
Ingwar
Не, нужно не такое популярное спросить.
Например драйвер (функцию) к какому ни будь не популярному в ардуино среде АЦП...
Для пробы - ADS1262. Я смогу завтра проверить)))

OpenAI ChatGPT

Добавлено: 05.03.2023{, 18:33}
Vuktor
Ingwar, — "Напиши драйвер (функцию) к не популярному в ардуино среде АЦП...
Для 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.03.2023{, 18:43}
Ingwar
Vuktor писал(а):
05.03.2023{, 18:33}
Вот пример драйвера для работы
Я конечно не фига не специалист, но последние скобки в строке 80 это нормально?

Отправлено спустя 1 минуту 55 секунд:
А так игруха прикольная. Сегодня поговорю с дочкой (в Сербии) о регистрации на ее симку))

OpenAI ChatGPT

Добавлено: 05.03.2023{, 18:47}
Phazz
Ingwar, есть боты в телеграмм для работы gpt

OpenAI ChatGPT

Добавлено: 05.03.2023{, 18:48}
Ingwar
Phazz писал(а):
05.03.2023{, 18:47}
есть боты в телеграмм для работы gpt
Я пробовал одно из предложений, но мне попалась какая то дичь требующая деньги. Дальше искать не стал))

OpenAI ChatGPT

Добавлено: 05.03.2023{, 18:52}
Phazz
Который мне попадался тоже денег просит. Но сумма символическая. Да и есть бесплатный лимит.

OpenAI ChatGPT

Добавлено: 05.03.2023{, 18:55}
Ingwar
Phazz писал(а):
05.03.2023{, 18:52}
Но сумма символическая.
На таких условиях это норм, каждый труд требует оплаты.
Результатом своих "успехов" по регистрации поделюсь, если получится получить доступ.
З.Ы. Прокомментируйте плиз вопрос о скобках.

OpenAI ChatGPT

Добавлено: 05.03.2023{, 18:59}
Vuktor
Ingwar писал(а):
05.03.2023{, 18:45}
Я конечно не фига не специалист, но последние скобки в строке 80 это нормально?
— "Объясни эту строку кода int32_t value = ((int32_t)data[0] << 16) | (("
— "Эта строка кода выполняет конвертацию полученных данных от АЦП в 32-битное целое число типа int32_t.

Для получения 32-битного значения необходимо объединить три байта данных, полученных от АЦП. Первый байт содержит старший бит (MSB), а третий байт содержит младший бит (LSB).

В этой строке кода мы сначала сдвигаем значение первого байта на 16 бит (до старшего слова), используя оператор побитового сдвига влево <<. Затем мы объединяем это значение с двумя другими байтами, используя оператор побитового ИЛИ |.

Таким образом, мы получаем 32-битное значение value, которое содержит данные, прочитанные с АЦП. Это значение может быть использовано для дальнейшей обработки или вывода на экран."

OpenAI ChatGPT

Добавлено: 05.03.2023{, 19:04}
Ingwar
Vuktor писал(а):
05.03.2023{, 18:59}
Для получения 32-битного значения необходимо объединить три байта данных, полученных от АЦП. Первый байт содержит старший бит (MSB), а третий байт содержит младший бит (LSB).

В этой строке кода мы сначала сдвигаем значение первого байта на 16 бит (до старшего слова), используя оператор побитового сдвига влево <<. Затем мы объединяем это значение с двумя другими байтами, используя оператор побитового ИЛИ |.

Таким образом, мы получаем 32-битное значение value, которое содержит данные, прочитанные с АЦП. Это значение может быть использовано для дальнейшей обработки или вывода на экран."
Это понятно, но закрывающие скобки в нормальную сторону написаны? Которые после "или" "(("
Или что это (если не скобки).

Отправлено спустя 3 минуты 40 секунд:
Может мы разные картинки видим.
У меня так
СпойлерПоказать
Безымянный.png
Безымянный.png (6.04 КБ) 1500 просмотров

OpenAI ChatGPT

Добавлено: 05.03.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.03.2023{, 19:17}
Ingwar
Vuktor, во, теперь мне последняя строка не кажется странной))).
Спасибо, завтра проверю.

OpenAI ChatGPT

Добавлено: 05.03.2023{, 19:21}
Vuktor
Ingwar, Исправил последнее сообщение. Интернет завис не до конца сначала код скопировал

Отправлено спустя 8 минут 43 секунды:
Ingwar писал(а):
05.03.2023{, 18:45}
Сегодня поговорю с дочкой (в Сербии) о регистрации на ее симку))
Тогда по идее и ВПН должен быть Сербии. Номер регистрации должен соответствовать стране ВПН. Ну как я понял. Вроде бы.

Отправлено спустя 1 час 34 минуты 23 секунды:

OpenAI ChatGPT

Добавлено: 05.03.2023{, 21:16}
JonyBest
Vuktor писал(а):
05.03.2023{, 21:04}
Тогда по идее и ВПН должен быть Сербии.
Зарегистрировался без всяких ВПНов на российский ящик + купил номер за 22руб для получения кода смс. Сервис искать "openai".

OpenAI ChatGPT

Добавлено: 05.03.2023{, 21:29}
Vuktor
JonyBest писал(а):
05.03.2023{, 21:16}
Зарегистрировался без всяких ВПНов на российский ящик + купил номер за 22руб для получения кода смс. Сервис искать "openai".
У меня без ВПН не работает. Только с ВПН, сам чат

OpenAI ChatGPT

Добавлено: 07.03.2023{, 06:02}
Ingwar
Vuktor писал(а):
05.03.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]);
  }
сделал

Код: Выделить всё

переменная для экрана = (data[4]);
пробовал и без скобок.
Значения какие то читаются, но абстрактные...
Короче подспорье наверное хорошее, но сука "на шару" (без владения вопросом) не прокатит :smile171:
Попробуйте если не трудно, запросить не с выводом в порт,а в какую нибудь переменную.

OpenAI ChatGPT

Добавлено: 07.03.2023{, 08:44}
Vuktor
Ingwar, Напишите список конкретных вопросов. Я думаю тут надо самому вести диалог с ИИ. Только так можно к чему-то прийти. На всякий случай объясню, как зарегистрироваться.

OpenAI ChatGPT

Добавлено: 07.03.2023{, 10:01}
JonyBest
Vuktor писал(а):
07.03.2023{, 08:44}
Регистрироваться нужно с ВПН, страна номера тел. должна соответствовать стране выбранной в ВПН.
Это не обязательное условие. Как пример у меня впн франции, зарегистрировал на телефон кубы.
Зарегистрировал десяток аккаунтов. Бывает на вирт номер не приходит смс. Отменяем номер и выбираем другую страну, пока не сработает. Причем система смс отправляет. Проблема с загруженностью вирт номеров.