#1 Re: Програмування Arduino » Книги по програмуванню Arduino? » 2023-08-05 18:25:53

KAS
Dreadlight пише:
KAS пише:

Дуже все швидко розвивається, на мою думку книги це не варіант, якщо лише для самої бази.
А так бажання, гугл та чат GPT в допомогу!

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

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

#2 Re: Програмування Arduino » Книги по програмуванню Arduino? » 2023-08-05 18:05:37

KAS

Дуже все швидко розвивається, на мою думку книги це не варіант, якщо лише для самої бази.
А так бажання, гугл та чат GPT в допомогу!

#3 Re: Програмування Arduino » Допомога по модулю GY-86, а саме HMC5883L (магнітометр) » 2023-08-05 18:02:40

KAS

Нету датчика на руках, но вроде как сырые данные (mx, my) не должны быть отрицательными, попробуй откалибровать датчик:

#include "Wire.h"
#include "HMC5883L.h"

HMC5883L mag;

void setup() {
  Wire.begin();
  Serial.begin(9600);
  mag.initialize();
  Serial.println("Move the magnetometer in all directions to calibrate...");
  delay(2000);
}

void loop() {
  static int16_t minX = 0, minY = 0, minZ = 0;
  static int16_t maxX = 0, maxY = 0, maxZ = 0;

  int16_t x, y, z;
  mag.getHeading(&x, &y, &z);

  if (x < minX) minX = x;
  if (x > maxX) maxX = x;

  if (y < minY) minY = y;
  if (y > maxY) maxY = y;

  if (z < minZ) minZ = z;
  if (z > maxZ) maxZ = z;

  // Print the raw values and the calibration range
  Serial.print("Raw: X="); Serial.print(x);
  Serial.print(" Y="); Serial.print(y);
  Serial.print(" Z="); Serial.print(z);
  Serial.print(" Calibrated Range: X["); Serial.print(minX); Serial.print(", "); Serial.print(maxX); Serial.print("]");
  Serial.print(" Y["); Serial.print(minY); Serial.print(", "); Serial.print(maxY); Serial.print("]");
  Serial.print(" Z["); Serial.print(minZ); Serial.print(", "); Serial.print(maxZ); Serial.println("]");

  delay(200);
}

}

после чего запиши максимальные и минимальные значения для каждой оси в новый код:

#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
#include "HMC5883L.h"

MPU6050 accelgyro;
HMC5883L mag;

int16_t ax, ay, az;
int16_t gx, gy, gz;
int16_t mx, my, mz;

#define LED_PIN 13
bool blinkState = false;

// Задайте значения из калибровки для коррекции
int16_t minX = -100; // Замените значения на те, что получены в калибровке
int16_t maxX = 100;
int16_t minY = -100;
int16_t maxY = 100;
int16_t minZ = -100;
int16_t maxZ = 100;

void setup() {
  Wire.begin();
  accelgyro.setI2CMasterModeEnabled(false);
  accelgyro.setI2CBypassEnabled(true);
  accelgyro.setSleepEnabled(false);

  Serial.begin(38400);

  // initialize device
  Serial.println("Initializing I2C devices...");
  accelgyro.initialize();
  mag.initialize();
  Serial.println(mag.testConnection() ? "HMC5883L connection successful" : "HMC5883L connection failed");

  // verify connection
  Serial.println("Testing device connections...");
  Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");

  // configure Arduino LED for
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  // Чтение данных с акселерометра и гироскопа
  accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  // Чтение данных с магнетометра
  mag.getHeading(&mx, &my, &mz);

  // Коррекция сырых данных магнетометра с помощью значений из калибровки
  mx = constrain(mx, minX, maxX);
  my = constrain(my, minY, maxY);
  mz = constrain(mz, minZ, maxZ);

  // Вывод данных на монитор последовательного порта
  Serial.print("a/g: ");
  Serial.print(ax); Serial.print("t");
  Serial.print(ay); Serial.print("t");
  Serial.print(az); Serial.print("t");
  Serial.print(gx); Serial.print("t");
  Serial.print(gy); Serial.print("t");
  Serial.print(gz); Serial.print("t");

  Serial.print("mag: ");
  Serial.print(mx); Serial.print("t");
  Serial.print(my); Serial.print("t");
  Serial.print(mz); Serial.print("t");

  // Вычисление и вывод направления (heading) в градусах
  float heading = atan2(my, mx);
  if (heading < 0)
    heading += 2 * PI;
  Serial.print("heading: ");
  Serial.println(heading * 180 / PI);

  // Мигание светодиода для индикации активности
  blinkState = !blinkState;
  digitalWrite(LED_PIN, blinkState);

  delay(500);
}

#5 Re: Програмування Arduino » Оборудование на заказ, железо + электроника » 2020-12-08 17:31:55

KAS
Serg70 пише:

Вот, если интересно, стоит такая задача,.- шаговое управление электропечью, не путать с ПИД регуляторами, которыми рынок насыщен. А из указанных шаговых контроллеров на рынке Украины есть всего три модели и никакого гарантийного и послепродажного обслуживания нет, т.е. в случае поломки или сбоя в прошивке обращаться не к кому. Ну и функционал не совсем тот что мне нужен. Чего я хочу,: -  Первое что должна уметь система,  измерять температуру по двум каналам и усреднять полученное значение,(диапазон измеряемых температур 0-  +1000 гр. Термопара ТХА) Второе, управляемая скорость нагрева и охлаждения печи с линейной зависимостью температура - время, например мне надо нагреть печь до +120 гр. за 120 минут, то есть производим нагрев со скоростью 1 градус в минуту или снизить температуру с +550 до +400 гр. за 150 ЧАСОВ т.е. скорость охлаждения 1 градус в час. Третье, Точность измерения и индикации 1 градус, а лучше до десятой доли градуса (если возможно) соответственно и точность удержания температуры в пределах 1 градуса.(фабричные контроллеры умеют это делать, по крайней мере заявляют что умеют).Четвертое - управление нагрузкой - плавное, по двум каналам на твердотельных реле, мощность тэнов в каждом канале 3000 Вт, при чем вторая группа нагревателя вспомогательная и подключается при отклонении температуры нагрева от заданной. Пятое, - калибровка, по скольку масса садки каждый раз будет разная соответственно и и теплоемкость будет меняться, поэтому скорее всего прийдется делать макетные загрузки и замерять скороподъемность температуры, и только потом задавать программу нагрева охлаждения, т.е. в режиме калибровки просто меряем температуру и работает таймер. Индикация и управление, Хочется иметь цветной дисплей и количество кнопок больше трех, задавая температуру и время не перелистыванием значений, а непосредственно вводя необходимые значения.

Если у Вас производство, то я бы смотрел в сторону промышленного оборудования нормального. Если речь одна то можно ещё подумать за поделки на Ардуино, но точно так же у Вас нету никакой гарантии и гарантии что когда вам понадобится человек выйдет на связь.

#6 Re: Апаратні питання » Посоветуйте как подключить sonoff » 2020-12-08 17:23:30

KAS

Ну думаю если вы впаяли 10 Ом 1 ватт то работать будет без проблем тоже

#7 Re: Апаратні питання » Посоветуйте как подключить sonoff » 2020-11-25 23:41:27

KAS

Думаю что на 10 Ом, но перед его заменой нужно ещё варистор проверить

#8 Re: Проекти » аттракцион Ардуино-управляемый тир » 2020-11-25 23:33:01

KAS

42 кнопки на один пин в принципе возможно если только одна из них будет срабатывать, а у вас будут проблемы с определением какая нажата. Хотя, если почитать задачу изначальную, сбили мишень проиграли мелодию и по барабану какую именно то как вариант с резисторами можно что-то придумать. Но надёжнее конечно будет поставить расширители портов

#9 Re: Проекти » аттракцион Ардуино-управляемый тир » 2020-11-23 02:08:50

KAS

Вот, начинаете в правильном направлении двигаться. Какой расстояние между мишенями примерно планируется?

#11 Re: Проекти » аттракцион Ардуино-управляемый тир » 2020-10-26 22:22:48

KAS
DmytroDnipro пише:

Так вот. Спалил я этот , будь он неладен (по факту так и есть)  DFplayerMP3mini ))). Перепутал пин, дал питание на соседний, и не заметил, пока не прикоснулся к нему случайно и обжёгся! От перегрева и деформации кармана карта памяти выскочила оттуда, и при вставлянии обратно уже не фиксируется. Остывал сей плеер минут 15 - такой горячий был. А другого нет пока что... Но то не беда, продолжение будет!
В поисках чего-то понадёжнее (нареканий на качество звучания этого плеера в сети очень много), натолкнулся на шилд
MP3 Shield на чипе VS1053 для ардуино.  Вот тут (https://www.mini-tech.com.ua/mp3-shield-dlya-arduino) нашел описание, но не достаточно для меня ёмкое и понятное. Может, кто работал с таким шилдом? Как качество? Нуждается в УНЧ, или среднюю громкость (скажем, как телевизор дома обычно) обеспечит? Совместим ли с Ардуино Мега? Ну, или ещё какая полезная информация, может есть...
Просто цена на него заметно выше чем на DFplayerMP3mini, не хочется покупать и проверять, а надо ли оно мне.
И можно ли заменить АрдуиноМега чем-то менее брендированым, недорогим?

Так вроде мега не сильно дорогая, если опасаетесь за нее возьмите нано для экспериментов

#12 Re: Проекти » Мишени для лазерного тира » 2020-10-19 19:08:54

KAS
ИгорьОдесса пише:
KAS пише:
ИгорьОдесса пише:

Месяц примерно. Это нормально?
В принципе, можно сроки обсуждать.

Ясно, в месяц не впишусь, сейчас много основной работы

А во сколько впишетесь? Я ведь написал, что можно обсуждать.

На пишите на телеграмм, обсудим
@K_A_S_89

#13 Re: Проекти » Мишени для лазерного тира » 2020-10-19 11:52:10

KAS
ИгорьОдесса пише:

Месяц примерно. Это нормально?
В принципе, можно сроки обсуждать.

Ясно, в месяц не впишусь, сейчас много основной работы

#14 Re: Проекти » Мишени для лазерного тира » 2020-10-19 00:22:27

KAS
ИгорьОдесса пише:
KAS пише:
ИгорьОдесса пише:

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

Ну тогда как вариант esp32 как управляющий контроллер + и ВЭБ морду на нем прикрутить для настроек и смены режимов

Увы, увы... мне это ни о чем не говорит. Поставить задачу я могу, но вот исполнение ее - не моя вахта. Я на этот форум для того и пришел, чтобы найти тех, кто возьмется за разработку и изготовление такой системы.

Какие сроки?

#15 Re: Проекти » Мишени для лазерного тира » 2020-10-18 20:55:42

KAS
ИгорьОдесса пише:

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

Ну тогда как вариант esp32 как управляющий контроллер + и ВЭБ морду на нем прикрутить для настроек и смены режимов

#16 Re: Проекти » Мишени для лазерного тира » 2020-10-18 14:01:06

KAS
ИгорьОдесса пише:
KAS пише:

Прикольная затея)

Да. И ее надо реализовать!

Приложение на смартфон тоже нужно написать?

#18 Re: Апаратні питання » Синхронная работа 8 ардуино Мега » 2020-10-17 18:04:15

KAS

То есть на всех одинаковый код и они получают только сигнал начала выполнения алгоритма и потом никак не связаны между собой?

#19 Re: Проекти » аттракцион Ардуино-управляемый тир » 2020-10-11 19:54:12

KAS
г0сть пише:
leons пише:

предлогали же написать или изучить программу flprog  там всё просто ,пример ка выглядит подключение кнопок к трекам и от этих же кнопок к адресным диодам не сложнее

А не проще три строчки кода написать чем в этой мурзилке дольше квадратики рисовать будешь?


Ну каждому свое, если человек не очень знаком с си то ему проще соединить три квадратика и получить за 15 секунд рабочий скетч, тем более что три строчки точно маловато даже для blink

#22 Re: Проекти » аттракцион Ардуино-управляемый тир » 2020-10-07 19:29:40

KAS

Ну если вам нет необходимости управлять интерактивно светодиодами, тогда и адрессные вам не нужны, просто светодиод при нажатой кнопке светиться и все, паралельно подаете сигнал на ардуинку, которая при отключении будет проигрывать мелодию

#23 Re: Проекти » аттракцион Ардуино-управляемый тир » 2020-10-06 17:09:55

KAS

Кстати если сложно писать код в arduino iDE, можете попробовать FLPROG

#24 Re: Проекти » аттракцион Ардуино-управляемый тир » 2020-10-06 13:17:08

KAS
DmytroDnipro пише:

А зачем адресные светодиоды? Я думал, проще будет запитать все светодиоды отдельно от Ардуино, а обнаруживать контроллером разрывы в цепях либо через транзисторы:
- если в цепи тока нет,  транзистор открыт, и идёт сигнал, но нужно чтоб он был коротким, похожим на короткое нажатие кнопки - поможет ли здесь конденсатор ?; а если ток есть, то транзистор закрыт, и ардуина получает ноль на соотв.пин);
Либо через фотодиод расположенный рядом со светодиодом:
- освещенный фотодиод пропустит ток, ардуина получит на пин 1. Неосвещенный - не пропустит, ардуино получит 0.
Но это мне подсказывает мое интуитивное понимание процессов, вполне вероятно (и даже наверняка), что я чего-то не понимаю, или недопонимаю. Поэтому, подскажите - моё рассуждение, вообще, имеет право на жизнь? Или это , как у Макса Фрая, "забивание гвоздя с помощью микроскопа"?

Ну смотрите на скольок я понял что вы хотите сделать, 40 мишеней стоят на микровыключателях, если микрик включен значит мишень стоит и ее подсвечиваем. Если одна из мишеней упала то отключаем подсветку, проигрывыем мелодию?
Адресные светодиоды для того что бы испльзовать меньше выходов ардуины и меньше проводов тягать - это первое. Второе это дает вам допольнительную своюоду для вашей фантазии, допустим менять цвет подсветки, или подсвечивать определенную мешень другим цветом и при ее сбитии другой звук (типа бонусная) и т.д. и т.п.

#25 Re: Проекти » аттракцион Ардуино-управляемый тир » 2020-10-06 12:03:07

KAS
DmytroDnipro пише:

1) я не очень-то инженер, много чего пока не понятно. Вообще, мой интерес к Ардуино появился совсем недавно, как путь решения вот этой идейки с тиром. Просто, попалось на глаза мне Ардуино, а не что-то другое))
2) может, я ошибаюсь, но мне кажется заинтересовывать сына практичнее с Ардуино из-за большого количества информации в сети, да и прямо скажем - модное слово Ардуино своё дело делает.
Конечно же, хорошо было бы посвятить самообразованию достаточное количество времени, но это пока в неконкретных планах.

Ну тогда Вам нужна любая в принципе ардуина, что бы не заморачиваться со входами-выходами что-то типо такого https://arduino.ua/prod1442-16-kanalnii-12-bit-pwmservo-modyl-s-i2c-interfeisom-na-pca9685 либо одресные светодиоды

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