OpenAI ChatGPT
OpenAI ChatGPT
Может кто ещё не слышал о ChatGPT. Чат-бот с искусственным интеллектом. Может писать код на разных языках программирования. Так же может объяснить уже готовый код, если его туда вставить. Как зарегистрироваться много информации в интернете. Сильно ещё не экспериментировал. Написал - "Напиши код мигания светодиодом на пин 13 для Ардуино Нано"
https://chat.openai.com/chat
https://chat.openai.com/chat
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Phazz
- Полковник
- Сообщения: 3130
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 234 раза
- Поблагодарили: 114 раз
OpenAI ChatGPT
[ref=#808080]Phazz[/ref],
— Напиши код мигания светодиодом на пин 13 для Ардуино Нано, без функции delay
—Конечно! Чтобы мигание светодиодом на пин 13 происходило без использования функции delay, мы можем использовать функцию millis(), которая возвращает количество миллисекунд, прошедших с момента запуска программы.
Вот пример кода: — "В этом коде мы используем переменную previousMillis для хранения времени последнего изменения состояния светодиода. В начале каждой итерации loop() мы получаем текущее время с помощью функции millis() и проверяем, прошло ли достаточно времени с момента последнего изменения состояния светодиода (с помощью выражения currentMillis - previousMillis >= interval). Если прошло достаточно времени, мы меняем состояние светодиода и обновляем значение previousMillis.
Таким образом, светодиод будет мигать с интервалом в 1 секунду (задается переменной interval). Если вы хотите изменить скорость мигания, просто измените значение этой переменной на нужное вам количество миллисекунд."
Отправлено спустя 5 минут 2 секунды:
Помимо писать и объяснять код, ChatGPT ещё может оптимизировать код, найти что-то или заменить
Отправлено спустя 4 минуты 15 секунд:
[ref=#808080]Phazz[/ref], Вот посложнее вопрос задал
— "Напиши программу для Ардуино подключенную к часам реального времени DS3231. Чтобы сделать часы которые будут сигнализировать время миганием светодиода. Светодиод должен мигать каждый час как изменяется час. Количество миганий должно соответствовать цифре наступившего часа. Формат времени 24 часа."
—"Конечно! Для решения этой задачи мы также можем использовать библиотеку RTClib для работы с часами реального времени DS3231.
Вот пример кода: — "В этом коде мы используем объект rtc для получения текущего времени с помощью метода now(). Затем мы определяем количество миганий для текущего часа (с помощью переменной blinkCount) и мигаем светодиодом нужное количество раз в цикле for.
После мигания светодиода мы ждем до начала следующей минуты с помощью функции delay(). Таким образом, светодиод будет мигать каждый час в соответствии с заданными условиями. Для определения времени до начала следующей минуты мы используем формулу (60 - now.second()) * 1000, которая вычисляет количество миллисекунд до начала следующей минуты."
— Напиши код мигания светодиодом на пин 13 для Ардуино Нано, без функции delay
—Конечно! Чтобы мигание светодиодом на пин 13 происходило без использования функции delay, мы можем использовать функцию millis(), которая возвращает количество миллисекунд, прошедших с момента запуска программы.
Вот пример кода: — "В этом коде мы используем переменную previousMillis для хранения времени последнего изменения состояния светодиода. В начале каждой итерации loop() мы получаем текущее время с помощью функции millis() и проверяем, прошло ли достаточно времени с момента последнего изменения состояния светодиода (с помощью выражения currentMillis - previousMillis >= interval). Если прошло достаточно времени, мы меняем состояние светодиода и обновляем значение previousMillis.
Таким образом, светодиод будет мигать с интервалом в 1 секунду (задается переменной interval). Если вы хотите изменить скорость мигания, просто измените значение этой переменной на нужное вам количество миллисекунд."
Отправлено спустя 5 минут 2 секунды:
Помимо писать и объяснять код, ChatGPT ещё может оптимизировать код, найти что-то или заменить
Отправлено спустя 4 минуты 15 секунд:
[ref=#808080]Phazz[/ref], Вот посложнее вопрос задал
— "Напиши программу для Ардуино подключенную к часам реального времени DS3231. Чтобы сделать часы которые будут сигнализировать время миганием светодиода. Светодиод должен мигать каждый час как изменяется час. Количество миганий должно соответствовать цифре наступившего часа. Формат времени 24 часа."
—"Конечно! Для решения этой задачи мы также можем использовать библиотеку RTClib для работы с часами реального времени DS3231.
Вот пример кода: — "В этом коде мы используем объект rtc для получения текущего времени с помощью метода now(). Затем мы определяем количество миганий для текущего часа (с помощью переменной blinkCount) и мигаем светодиодом нужное количество раз в цикле for.
После мигания светодиода мы ждем до начала следующей минуты с помощью функции delay(). Таким образом, светодиод будет мигать каждый час в соответствии с заданными условиями. Для определения времени до начала следующей минуты мы используем формулу (60 - now.second()) * 1000, которая вычисляет количество миллисекунд до начала следующей минуты."
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
OpenAI ChatGPT
Не, нужно не такое популярное спросить.
Например драйвер (функцию) к какому ни будь не популярному в ардуино среде АЦП...
Для пробы - ADS1262. Я смогу завтра проверить)))
Например драйвер (функцию) к какому ни будь не популярному в ардуино среде АЦП...
Для пробы - ADS1262. Я смогу завтра проверить)))
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
OpenAI ChatGPT
[ref]Ingwar[/ref], — "Напиши драйвер (функцию) к не популярному в ардуино среде АЦП...
Для ADS1262"
— "Конечно! Вот пример драйвера для работы с АЦП ADS1262 в Arduino:"
Для 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) | ((
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
OpenAI ChatGPT
Я конечно не фига не специалист, но последние скобки в строке 80 это нормально?
Отправлено спустя 1 минуту 55 секунд:
А так игруха прикольная. Сегодня поговорю с дочкой (в Сербии) о регистрации на ее симку))
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
OpenAI ChatGPT
Я пробовал одно из предложений, но мне попалась какая то дичь требующая деньги. Дальше искать не стал))
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
- Phazz
- Полковник
- Сообщения: 3130
- Зарегистрирован: 17 окт 2016, 15:38
- Откуда: Сургут
- Имя: Анатолий
- Благодарил (а): 234 раза
- Поблагодарили: 114 раз
OpenAI ChatGPT
Который мне попадался тоже денег просит. Но сумма символическая. Да и есть бесплатный лимит.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
OpenAI ChatGPT
На таких условиях это норм, каждый труд требует оплаты.
Результатом своих "успехов" по регистрации поделюсь, если получится получить доступ.
З.Ы. Прокомментируйте плиз вопрос о скобках.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
OpenAI ChatGPT
— "Объясни эту строку кода int32_t value = ((int32_t)data[0] << 16) | (("Ingwar писал(а): 05 мар 2023, 18:45 Я конечно не фига не специалист, но последние скобки в строке 80 это нормально?
— "Эта строка кода выполняет конвертацию полученных данных от АЦП в 32-битное целое число типа int32_t.
Для получения 32-битного значения необходимо объединить три байта данных, полученных от АЦП. Первый байт содержит старший бит (MSB), а третий байт содержит младший бит (LSB).
В этой строке кода мы сначала сдвигаем значение первого байта на 16 бит (до старшего слова), используя оператор побитового сдвига влево <<. Затем мы объединяем это значение с двумя другими байтами, используя оператор побитового ИЛИ |.
Таким образом, мы получаем 32-битное значение value, которое содержит данные, прочитанные с АЦП. Это значение может быть использовано для дальнейшей обработки или вывода на экран."
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
OpenAI ChatGPT
Это понятно, но закрывающие скобки в нормальную сторону написаны? Которые после "или" "(("Vuktor писал(а): 05 мар 2023, 18:59 Для получения 32-битного значения необходимо объединить три байта данных, полученных от АЦП. Первый байт содержит старший бит (MSB), а третий байт содержит младший бит (LSB).
В этой строке кода мы сначала сдвигаем значение первого байта на 16 бит (до старшего слова), используя оператор побитового сдвига влево <<. Затем мы объединяем это значение с двумя другими байтами, используя оператор побитового ИЛИ |.
Таким образом, мы получаем 32-битное значение value, которое содержит данные, прочитанные с АЦП. Это значение может быть использовано для дальнейшей обработки или вывода на экран."
Или что это (если не скобки).
Отправлено спустя 3 минуты 40 секунд:
Может мы разные картинки видим.
У меня так
[spoiler] [/spoiler]
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
OpenAI ChatGPT
— написать функцию опроса значений с входов ADS1262 для ардуино
— Для опроса значений с входов ADS1262 необходимо использовать следующий алгоритм:
Отправить команду на старт преобразования данных (START/SYNC команда).
Дождаться окончания преобразования данных (можно использовать опрос готовности преобразования).
Считать полученные данные с входов ADS1262 (можно считать несколько значений сразу).
Вот пример функции опроса значений с входов ADS1262 для Arduino:
Эта функция использует SPI для обмена данными с ADS1262 и выполняет опрос четырех значений с входов ADS1262 каждую секунду. Полученные значения выводятся на Serial Monitor. Если в вашей схеме используется другое количество входов, то вы можете изменить число значений, считываемых в массив data.
— Для опроса значений с входов 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);
}
Последний раз редактировалось Vuktor 05 мар 2023, 19:20, всего редактировалось 2 раза.
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
OpenAI ChatGPT
[ref]Vuktor[/ref], во, теперь мне последняя строка не кажется странной))).
Спасибо, завтра проверю.
Спасибо, завтра проверю.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.
OpenAI ChatGPT
[ref]Ingwar[/ref], Исправил последнее сообщение. Интернет завис не до конца сначала код скопировал
Отправлено спустя 8 минут 43 секунды:
Отправлено спустя 1 час 34 минуты 23 секунды:
[bbvideo]https://youtu.be/XAva_e8LWko[/bbvideo]
Отправлено спустя 8 минут 43 секунды:
Тогда по идее и ВПН должен быть Сербии. Номер регистрации должен соответствовать стране ВПН. Ну как я понял. Вроде бы.Ingwar писал(а): 05 мар 2023, 18:45 Сегодня поговорю с дочкой (в Сербии) о регистрации на ее симку))
Отправлено спустя 1 час 34 минуты 23 секунды:
[bbvideo]https://youtu.be/XAva_e8LWko[/bbvideo]
-
- Сержант
- Сообщения: 269
- Зарегистрирован: 18 ноя 2015, 22:42
- Откуда: Близко к Ставрополю
- Имя: Евгений
- Поблагодарили: 2 раза
OpenAI ChatGPT
Зарегистрировался без всяких ВПНов на российский ящик + купил номер за 22руб для получения кода смс. Сервис искать "openai".
OpenAI ChatGPT
У меня без ВПН не работает. Только с ВПН, сам чатJonyBest писал(а): 05 мар 2023, 21:16 Зарегистрировался без всяких ВПНов на российский ящик + купил номер за 22руб для получения кода смс. Сервис искать "openai".
-
- Полковник
- Сообщения: 1928
- Зарегистрирован: 28 окт 2015, 22:47
- Откуда: Ленобласть
- Имя: Игорь
- Поблагодарили: 2 раза
OpenAI ChatGPT
Посидел я пару часиков, потыкался...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]);
}
Код: Выделить всё
переменная для экрана = (data[4]);
Значения какие то читаются, но абстрактные...
Короче подспорье наверное хорошее, но сука "на шару" (без владения вопросом) не прокатит

Попробуйте если не трудно, запросить не с выводом в порт,а в какую нибудь переменную.
OpenAI ChatGPT
[ref]Ingwar[/ref], Напишите список конкретных вопросов. Я думаю тут надо самому вести диалог с ИИ. Только так можно к чему-то прийти. На всякий случай объясню, как зарегистрироваться.
Последний раз редактировалось Vuktor 14 апр 2023, 09:02, всего редактировалось 1 раз.
-
- Сержант
- Сообщения: 269
- Зарегистрирован: 18 ноя 2015, 22:42
- Откуда: Близко к Ставрополю
- Имя: Евгений
- Поблагодарили: 2 раза
OpenAI ChatGPT
Это не обязательное условие. Как пример у меня впн франции, зарегистрировал на телефон кубы.Vuktor писал(а): 07 мар 2023, 08:44 Регистрироваться нужно с ВПН, страна номера тел. должна соответствовать стране выбранной в ВПН.
Зарегистрировал десяток аккаунтов. Бывает на вирт номер не приходит смс. Отменяем номер и выбираем другую страну, пока не сработает. Причем система смс отправляет. Проблема с загруженностью вирт номеров.
Последний раз редактировалось JonyBest 07 мар 2023, 10:42, всего редактировалось 1 раз.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость