ИИ может бесплатно помочь, мне кажется, со схемой и скетчем. Надо только промпт грамотно составить.
…а какой форум кишит подсказочниками?
ИИ может бесплатно помочь, мне кажется, со схемой и скетчем. Надо только промпт грамотно составить.
…а какой форум кишит подсказочниками?
А то! Ещё как! Не зря мы его тут воспитываем и выращиваем! ![]()
Esp32, vs1003 и гоняй хоть интернет радио.
Потому, что код - это намного более половины работы.
А, если учесть, что с кодом Вы пока не дружите, за год Вам не управиться. Петрович верно оценил минимальный срок - около двух лет.
Хорошо, если намеков не понимаете, напишу прямым текстом:
Керниган, Ритчи, Язык программирования Си.
Читать от корки до корки минимум два раза.
Это пока первый шаг, когда осилите, скажу, что делать дальше.
Да, я так понял, в схемотехнике Вы хорошо разбираетесь.
Если вдруг нет, то:
Титце, Шенк, Полупроводниковая схемотехника.
Хоровиц, Хилл, Искусство схемотехники.
В ардуино иде используется синтаксис всё же Си++, а не чистого Си. Не собъёт новичка такой подход (изучение вначале Си, а не Си++)?
Шилдт рекомендует (и применяет в своих учебниках) именно такой порядок.
То есть вначале Си, потом Си++?
Странно, они ж похожи (в основном). Но спорить не буду, было интересно узнать такое. Спасибо.
Соотношение между Си и Си++ на самом деле неоднозначно: кто-то считает это двумя разными языками, кто-то - что Си есть подмножество Си++.
Но в любом случае начинать следует именно с Си (собственно, по другому начать и не получится). Тут вопрос только в выборе книжки. Никто не запрещает читать сразу Шилдта.
Но Си отличается от Си++ компактностью, и при этом его достаточно, чтобы написать ЛЮБУЮ программу для Ардуино (строго говоря, если не использовать чужих библиотек).
Но все равно перейти от Си к “Си с классами” намного проще, чем изучать Си++.
Они не похожи, они совершенно разные, но используют один и тот же синтаксис (Страуструп решил не изобретать для своего языка новый синтаксис, а использовать готовый и, что самое главное, уже знакомый).
знал бы ты, сколько людей так живет… и давно… Ох!
Я первый раз в жизни симулятор увидел, вот набросал для начала. Попробуйте, симуляция в воквики. Как-то светодиодики разгораются некрасиво в симуляции. В реальности сами подберете задержки для плавности.
С колдунством с сенсорным сердечком не занимался. Сделайте хотя бы по кнопке. Будете успевать - поможем с сердечком.
Ну, вам с аппаратной частью теперь разбираться. Программа работает, цепляйте к ней музыку и вибратор.
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);
}
сакральный смысл тута ![]()
ты брось свои ББ-шные замашки, памяти тут не столько. Зачем тратить 2 байта на номер пина, который, к тому же, никогда не бывает отрицательным. uint8_t для номера пина выглядит достаточным.
Данный модуль MH2024K мало того, что имеет корявый звук, но и медленно гаснет - только хардкодно можно. Если загрузить другую мелодию, то тайминги заново считать. В vs1003 256кбит прекрасно воспроизводит. Могу дать код рессивера, который управляется Алисой и играет интернет радио, и может просто проигрывать музыку. Остальное глюкало сами добавите - там просто.
Оптимизация потом. Я вообще не уверен, что это все пойдет в бой. Но помощь в алгоритме - пожалуйста. Оптимизация и схемотехника - это к специалистам. Для данного прототипа пофиг. Но с вами согласен, неаккуратненько. Еще нет рефлексов ужиматься.
int vibro=8;
Не стесняюсь признаться, что не втыкаю. Поделитесь мудростью.
Воооот, а то и “втыкается” и vibro, видимо… ))))
Это прототип алгоритма. При подключении реальных устройств вместо “индикаторов их работы” и распиновка и сигналы другие будут. Как признался автор, у него проблемы - начать с алгоритма, полянку растоптать. Дальше уж сам, пусть спешит к Новому Году.
Я даже не заморачивался на аппаратную часть, а показал, что алгоритмически его проект влезает на страничку простейшего кода. С “кодом” для сердечка побольше, но это вряд-ли он будет реализовывать, успел бы саму игрушку собрать. У меня само написание заняло время равное времени набивания объема кода умноженное на два. Все остальное время я знакомился с вокви (я туда первый раз заглянул) и ждал бесплатной компиляции.
Мда… “Намёки” и “аллегории” - это далеко не самые сильные твои стороны… ![]()
На этом форуме нет ограничений “18+”, поэтому это роза. Роза в Банке. Просто Роза в Банке.
Я думал у вас технические замечания.
Не у меня, а у @xDriver