Помогите реализовать проект

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

…а какой форум кишит подсказочниками?

А то! Ещё как! Не зря мы его тут воспитываем и выращиваем! :slight_smile:

2 лайка

Esp32, vs1003 и гоняй хоть интернет радио.

1 лайк

Потому, что код - это намного более половины работы.
А, если учесть, что с кодом Вы пока не дружите, за год Вам не управиться. Петрович верно оценил минимальный срок - около двух лет.

Хорошо, если намеков не понимаете, напишу прямым текстом:
Керниган, Ритчи, Язык программирования Си.
Читать от корки до корки минимум два раза.
Это пока первый шаг, когда осилите, скажу, что делать дальше.

Да, я так понял, в схемотехнике Вы хорошо разбираетесь.
Если вдруг нет, то:
Титце, Шенк, Полупроводниковая схемотехника.
Хоровиц, Хилл, Искусство схемотехники.

В ардуино иде используется синтаксис всё же Си++, а не чистого Си. Не собъёт новичка такой подход (изучение вначале Си, а не Си++)?

Шилдт рекомендует (и применяет в своих учебниках) именно такой порядок.

То есть вначале Си, потом Си++?
Странно, они ж похожи (в основном). Но спорить не буду, было интересно узнать такое. Спасибо.

Соотношение между Си и Си++ на самом деле неоднозначно: кто-то считает это двумя разными языками, кто-то - что Си есть подмножество Си++.
Но в любом случае начинать следует именно с Си (собственно, по другому начать и не получится). Тут вопрос только в выборе книжки. Никто не запрещает читать сразу Шилдта.
Но Си отличается от Си++ компактностью, и при этом его достаточно, чтобы написать ЛЮБУЮ программу для Ардуино (строго говоря, если не использовать чужих библиотек).
Но все равно перейти от Си к “Си с классами” намного проще, чем изучать Си++.

Они не похожи, они совершенно разные, но используют один и тот же синтаксис (Страуструп решил не изобретать для своего языка новый синтаксис, а использовать готовый и, что самое главное, уже знакомый).

1 лайк

знал бы ты, сколько людей так живет… и давно… Ох!

2 лайка

Я первый раз в жизни симулятор увидел, вот набросал для начала. Попробуйте, симуляция в воквики. Как-то светодиодики разгораются некрасиво в симуляции. В реальности сами подберете задержки для плавности.

С колдунством с сенсорным сердечком не занимался. Сделайте хотя бы по кнопке. Будете успевать - поможем с сердечком.

Ну, вам с аппаратной частью теперь разбираться. Программа работает, цепляйте к ней музыку и вибратор.

int light1=9;
int light2=10;
int light3=11;
int music=7;
int vibro=8;
int button=4;

void setup() 
{
  pinMode(light1, OUTPUT);
  pinMode(light2, OUTPUT);
  pinMode(light3, OUTPUT);
  pinMode(music, OUTPUT);
  pinMode(vibro, OUTPUT);
  pinMode(button, INPUT_PULLUP);

  analogWrite(light1, 0);
  analogWrite(light2, 0);
  analogWrite(light3, 0);
  digitalWrite(music, LOW);
  digitalWrite(vibro, LOW);
}

void loop() 
{
  while (digitalRead(button) != LOW)
  {
    //просто ожидание нажатия кнопки
  }

  //включение музыки
  digitalWrite(music, HIGH);
  //поочередное включение гирлянд за 5 секунд каждая
  for (int i=1; i<=255; i++)
  {
    analogWrite(light1, i);
    delay(20);
  }
  for (int i=1; i<=255; i++)
  {
    analogWrite(light2, i);
    delay(20);
  }
  for (int i=1; i<=255; i++)
  {
    analogWrite(light3, i);
    delay(20);
  }
  //моторчик, имитация периодического включения на 4 секунды
  for (int i=0; i < 20; i++)
  {
    digitalWrite(vibro, HIGH);
    delay(100);
    digitalWrite(vibro, LOW);
    delay(100);
  }
  //одновременное выключение гирлянд за 5 секунд
  for (int i=255; i>=0; i--)
  {
    analogWrite(light1, i);
    analogWrite(light2, i);
    analogWrite(light3, i);
    delay(20);
  }
  //выключение музыки
  digitalWrite(music, LOW);
}

сакральный смысл тута :grinning_face_with_smiling_eyes:

1 лайк

ты брось свои ББ-шные замашки, памяти тут не столько. Зачем тратить 2 байта на номер пина, который, к тому же, никогда не бывает отрицательным. uint8_t для номера пина выглядит достаточным.

3 лайка

Данный модуль MH2024K мало того, что имеет корявый звук, но и медленно гаснет - только хардкодно можно. Если загрузить другую мелодию, то тайминги заново считать. В vs1003 256кбит прекрасно воспроизводит. Могу дать код рессивера, который управляется Алисой и играет интернет радио, и может просто проигрывать музыку. Остальное глюкало сами добавите - там просто.

Оптимизация потом. Я вообще не уверен, что это все пойдет в бой. Но помощь в алгоритме - пожалуйста. Оптимизация и схемотехника - это к специалистам. Для данного прототипа пофиг. Но с вами согласен, неаккуратненько. Еще нет рефлексов ужиматься.

int vibro=8;

Не стесняюсь признаться, что не втыкаю. Поделитесь мудростью.

Воооот, а то и “втыкается” и vibro, видимо… ))))

1 лайк

Это прототип алгоритма. При подключении реальных устройств вместо “индикаторов их работы” и распиновка и сигналы другие будут. Как признался автор, у него проблемы - начать с алгоритма, полянку растоптать. Дальше уж сам, пусть спешит к Новому Году.

Я даже не заморачивался на аппаратную часть, а показал, что алгоритмически его проект влезает на страничку простейшего кода. С “кодом” для сердечка побольше, но это вряд-ли он будет реализовывать, успел бы саму игрушку собрать. У меня само написание заняло время равное времени набивания объема кода умноженное на два. Все остальное время я знакомился с вокви (я туда первый раз заглянул) и ждал бесплатной компиляции.

Мда… “Намёки” и “аллегории” - это далеко не самые сильные твои стороны… :smile:

На этом форуме нет ограничений “18+”, поэтому это роза. Роза в Банке. Просто Роза в Банке.

Я думал у вас технические замечания.

Не у меня, а у @xDriver

1 лайк