Автор Тема: эээ... Ардуино?  (Прочитано 482 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2504
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
эээ... Ардуино?
« : 28 Май 2023, 08:15:59 »
Я сначала купил какую-то фигню... Arduino Nano китайскую и Распбери Пико. А потом начал пытаться разбираться что-же я купил. Ясное дело что ничего не получается, но тут прям напрягло:
Цитата
Скетч использует 13844 байт (45%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 1774 байт (86%) динамической памяти, оставляя 274 байт для локальных переменных. Максимум: 2048 байт.
Это я пытался скомпилировать скетч для получения сигналов с ИК пульта. И уже столько памяти сожрано. Я чего копаю не в том направлении? Задача была следующая:
1. работать с ИК пультом
2. измерять напряжение (не бортовое ардуины, а другое, которое регулируется вручную)
3. слушать стерео звук
4. рисовать на светодиодной панели значение вольт, сколько замеряно и рисовать эти самые пики громкости для левого и правого канала в две горизонтальные полосы.

А память уже почти закончилась еще на первой задаче :)

Хотя перевоначально план был еще жирнее - пультом переключать режим работы для этого звука стерео - чтобы или показывало громкости для двух каналов, или показывало как скачет спектр частот как в винампе. Так-же чтоб с пульта происходило включение\обесточивание блютус модуля через ключ (это не ардуинский, отдельный. хочу в свой советский усилитель втулить блютус. модуль купил и потестировал - все руль. не хотелось бы чтоб он все время был включен. типа с пульта тыркнул - ардуино через ключ включила, и он запел. ну и так-же может через реле переключение селектора входов.).

Оффлайн MaxWooD

  • Пользователь
  • Сообщений: 1074
    • Просмотр профиля
эээ... Ардуино?
« Ответ #1 : 28 Май 2023, 11:07:27 »
SeregaZ, Как можно о чём-то рассуждать, не видя кода. Может у тебя там простыня.

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2041
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
эээ... Ардуино?
« Ответ #2 : 28 Май 2023, 11:16:24 »
Я сначала купил какую-то фигню... Arduino Nano китайскую и Распбери Пико. А потом начал пытаться разбираться что-же я купил. Ясное дело что ничего не получается, но тут прям напрягло:Это я пытался скомпилировать скетч для получения сигналов с ИК пульта. И уже столько памяти сожрано. Я чего копаю не в том направлении? Задача была следующая:
1. работать с ИК пультом
2. измерять напряжение (не бортовое ардуины, а другое, которое регулируется вручную)
3. слушать стерео звук
4. рисовать на светодиодной панели значение вольт, сколько замеряно и рисовать эти самые пики громкости для левого и правого канала в две горизонтальные полосы.

А память уже почти закончилась еще на первой задаче :)

Хотя перевоначально план был еще жирнее - пультом переключать режим работы для этого звука стерео - чтобы или показывало громкости для двух каналов, или показывало как скачет спектр частот как в винампе. Так-же чтоб с пульта происходило включение\обесточивание блютус модуля через ключ (это не ардуинский, отдельный. хочу в свой советский усилитель втулить блютус. модуль купил и потестировал - все руль. не хотелось бы чтоб он все время был включен. типа с пульта тыркнул - ардуино через ключ включила, и он запел. ну и так-же может через реле переключение селектора входов.).

Если я понял правильно, ты используешь ту самую нормальную библиотеку и при этом используешь ее всей пачкой. Она реально очень здоровая. Если нет планов потом менять пульты, можно будет покрутить параметры и скомпилится только нужная часть кода с парой-тройкой декодеров.

Добавлено позже:
Я как-то по своей глупости спалил пин на процессоре музыкального центра, который отвечал за вывод центра из дежурки и в силу того, что ремонтировал не себе, то старался сделать все красиво, поэтому тоже в оконцове использовал ардуину, чтоб можно было продолжать включать и выключать в том числе и с пульта. Так вот, да, там огроменная библиотека и я в итоге оставил только один набор сигналов (а там еще и протокол в том пульте от самса кривой-косой, недопанасониковский, недостадартный, выкрутился выставлением менее жестких параметров декодирования, ибо в сыром виде он ни разу одинаковой последовательности не поймал :neznayu:)

Добавлено позже:
А Raspberry Pico для такого проекта уже чересчур жирно.  :lol: Но зато на него можно втулить интернет-радио готовое.  ;)

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2504
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
эээ... Ардуино?
« Ответ #3 : 29 Май 2023, 08:36:23 »
Ну пока Пико ковыряю в Thonny с микропайтоном. Для пульта уже там какой-то буржуин все сделал - вырезал только что нужно из всей большой библиотеки и обычные пульты работают от телека и прочего. Однако пульт для компа, если описание не врет, имеет 433мгц. Вот он не хочет. Хотя светодиод на модуле ИК подмаргивает, когда я на этом 433 пульте тыркаю кнопки. Можно ли как-то получать сырые данные? Может получится заставить работать 433мгц пульт через 38мгц модуль ИК? Сколько гуглы не гуглил - он мне начинает радио на 433мгц сувать и библиотеки к нему. Но это вроде как не радио, так как на самом пульте светодиод как на обычном пульте и через камеру сотового видно, что он подмаргивает когда нажимаешь кнопки, и на приемнике стоит приемный светодиод или как он там. И если рукой приемник закрыть - работать перестает. Если бы это было радио - то работало бы и чхать ему на закрытый приемник. То есть это точно не радио, а ИК, но видимо на 433мгц, вместо 38 стандартных. Вот нет ли идей как это дело можно было бы подружить между собой?

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2041
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
эээ... Ардуино?
« Ответ #4 : 29 Май 2023, 09:06:15 »
433 мгц? Это же радиопульт какой-то. Как-то дохрена для ИК-то. ИК пульты работают на 36-40 МГц же.
Откуда взялись 433 мгц вообще?  o_0

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

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2504
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
эээ... Ардуино?
« Ответ #5 : 29 Май 2023, 10:22:27 »
У китайцев так написано:


Оффлайн MaxWooD

  • Пользователь
  • Сообщений: 1074
    • Просмотр профиля
эээ... Ардуино?
« Ответ #6 : 29 Май 2023, 10:23:19 »
-

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2041
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
эээ... Ардуино?
« Ответ #7 : 29 Май 2023, 11:05:32 »
У китайцев так написано:


Это, очевидно, ошибка. Там либо радиопередатчик на 433 мгц, либо ИК.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2504
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
эээ... Ардуино?
« Ответ #8 : 29 Май 2023, 11:48:59 »
Тестовые варианты алгоритмов NEC, Phillips и так далее, что были в библиотеке шлют меня куда подальше...
Invalid start pulse
Error: bad block
Error: overrun

То есть все-таки до самой этой Пики доходит чото... Так-же почитал про ошибки - там какая-то ошибка есть типа из-за частоты работы устройства.
Цитата
On ESP8266 and ESP32 there is a further source of errors. This results from the large and variable interrupt latency of the device which can exceed the pulse duration. This causes pulses to be missed or their timing measured incorrectly. On ESP8266 some improvment may be achieved by running the chip at 160MHz.

Оффлайн Rumata

  • Супермодератор
  • Сообщений: 24637
    • Просмотр профиля
эээ... Ардуино?
« Ответ #9 : 29 Май 2023, 18:41:20 »
ИК пульты работают на 36-40 МГц же.
Же? o_0 Точно МегаГерцы? До сих пор вроде килоГерцы были (455 / 12 = 38)
Тут вот Атмел в своё время апликейшенов понаписала:
https://www.microchip.com/content/dam/mchp/documents/OTH/ApplicationNotes/ApplicationNotes/Atmel-2534-RC5-IR-Remote-Control-Transmitter-on-tinyAVR-and-megaAVR_ApplicationNote_AVR415.pdf
https://onlinedocs.microchip.com/pr/GUID-71155EB6-8C77-4A9B-985A-AD5986A2034F-en-US-2/index.html?GUID-D8174118-800A-4542-A88C-F1066691D037
https://ww1.microchip.com/downloads/en/Appnotes/Atmel-1473-RC5-IR-Remote-Control-Receiver-on-tinyAVR-and-megaAVR-Devices_ApplicationNote_AVR410.pdf
Так, конечно, код под AVR, но может чего прояснит.

У китайцев так написано:
Вот даже не смешно. Там китайцы могут такой бред написать, что мама не горюй
« Последнее редактирование: 29 Май 2023, 18:51:46 от Rumata »

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2041
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
эээ... Ардуино?
« Ответ #10 : 30 Май 2023, 07:18:02 »
Же? o_0 Точно МегаГерцы? До сих пор вроде килоГерцы были (455 / 12 = 38)
Ой. Прошу пардону.  :blush: Возился и вникал только один раз, мог и криво запомнить.
Я голову включил, действительно, МГц как-то для ИК многовато.
То есть все-таки до самой этой Пики доходит чото..
Можно узнать, зачем все-таки Пико использовать? Планируешь запихать кучу плюшек помимо ИК-приема?
Просто я не понимаю, там и так слишком много мощей в ней, чтоб вот так просто использовать  o_0

Рекомендую все-таки попробовать эту библиотеку и на Ардуине, она самая топовая и самая поддерживаемая. Там есть режимы сырого приема тоже. В крайнем случае можешь на ардуину комплектный скетч, который будет выплевывать на серийный порт информацию (как наиполнейшую, так и краткую) о тех сигналах, что приходят на приемник. Еще рекомендую попробовать заменить ИК приемник либо на универсальный на оба диапазона (38-40 кГц), либо просто подобрать другой, если сигналы не ловятся нормально.  :neznayu:

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2504
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
эээ... Ардуино?
« Ответ #11 : 30 Май 2023, 07:26:30 »
Ну... Наши победили  :cool:

Библиотека этой ИК имела опцию тестирования и она у меня не заработала в начале. Потому что сраная Пико живет своей жизнью... или зря на Пику бочку качу, и типа это Thonny на самом деле виноват. Суть в чем - как оказалось работать код начинает не каждый раз. А то ишь чо привык я что на компе все всегда работает с первого раза... разбаловался понимаешь... а тут надо раз 5 запускать и останавливать и только тогда она может соизволить запуститься и начать работать. Вот вчера перед сном такое и произошло - посыпались эти самые неизвестные коды. Радостный пошел спать... А по утру все опять ничерта не заработало, и только через час тыркания я наконец допер что такая катавасия происходит, когда ничерта не запускается. Теперь я кот ученый...

Вобщем суть в чем - ИК пульт шлет вспышки всякие как азбука морзе. Типа короткие и долгие вспышки и паузы между ними - все это дело считается. Код такие временные промежутки активности собирает в массив, а дальше просто читаем эти цифры. Типа:
Цитата
278,1643,338,1677,313,1652,335,714,338,689,316,713,343,1644,345,682,345,1644,347,1623,363,1645,343,1648,341,1625,363,687,341,688,339,687,342
Дальше превращаем эти промежутки времени в нули и единицы... Предположил что 278 и дальше плюс минус - некие паузы чтоль... или так сказать уведомления, что мы дескать работаем.
689 плюс минус - как ноль
1643 как единица

то есть:
Case 200 To 400 = * (типа пауза)
Case 500 To 900 = 0
Case 1400 To 1900 = 1

прогоняем какие-то кнопки, а некоторые по 2 раза нажимал через эту серую схему отмывки капитала и получается что-то типа такого:
A * 1 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 1 * 1 * 1 * 1 * 1 * 0 * 0 * 0 *
A * 1 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 1 * 1 * 1 * 1 * 1 * 0 * 0 * 0 *
A * 1 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 1 * 1 * 1 * 1 * 1 * 0 * 0 * 0 *
B * 1 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 1 * 1 * 1 * 0 * 1 * 0 * 0 * 0 *
B * 1 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 1 * 1 * 1 * 0 * 1 * 0 * 0 * 0 *
C * 1 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 1 * 1 * 1 * 1 * 0 * 0 * 0 * 0 *
D * 1 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 0 *
E * 1 * 1 * 1 * 0 * 0 * 0 * 1 * 0 * 0 * 0 * 0 * 0 * 0 * 1 * 0 * 0 *

А дальше осталось поковырятся в коде и посмотреть как в массив втуливаются эти самые значения, как их читать, синтаксис для проверок... и по итогу получилось более менее стабильно получать кнопки.

Так что первый этап есть!

Онлайн HayaoYokogawa

  • Пользователь
  • Сообщений: 2041
  • Пол: Мужской
  • большой и толстый розовый динозавр
    • Просмотр профиля
эээ... Ардуино?
« Ответ #12 : 30 Май 2023, 07:32:43 »
Ну... Наши победили 
Ну и славно  :)

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2504
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
эээ... Ардуино?
« Ответ #13 : 30 Май 2023, 07:51:15 »
Можно узнать, зачем все-таки Пико использовать?
Ну очень сильные ограничения памяти меня напрягают. Так то да, план большой:


Из пока ясного - только нога ИК GP16. Все остальное я ваще хз куда подключать...
Пульт нужен (пока-что) для возможности через ключ подать питание на блютус модуль, который отдельный и к пике не имеет отношения. Потом если с реле разберусь, что заодно и селектор входа на усилитель сделаю. чтоб с пульта происходило переключение входа - хочешь с компа, хочешь с блютус модуля...
Вывод планируется на светодиодную матрицу MAX7219. Купил большую 4 сегмента по 8х8, а не влазит. Теперь надо купить один сегмент 8х8, чтоб эту не ломать и залепить на неё сверху монтажную плату, с разброссанными на ней смд светодиодами. Но там возможно будут проблемы как с питанием - там 5в, так и с частотой свечения - ведь плата то расчитана на те светодиоды, что в матрице стоят. А как мои смдшные себя поведут - хз. Выводится должно на него показания вольтметра и прыгающие пики громкости по горизонтали для левого и правого канала. Было бы конечно классно еще сделать рисование спектра частот музыки, как в винампе... и я видел пример как раз для этой матрицы. Но боюсь что ничего не выйдет.

Оффлайн SeregaZ

  • Пользователь
  • Сообщений: 2504
  • Пол: Мужской
  • ливнул с форума
    • Youtube
    • Просмотр профиля
эээ... Ардуино?
« Ответ #14 : 01 Июнь 2023, 08:27:51 »
Тут возникла проблема небольшая... Дошел до пункта с моргающими лампами громкости музыки. То есть берем и тупо меряем количество вольт и из этого делаем вывод какая громкость. Когда что-то играет по этим линиям - все в порядке, лампы моргают тухнут, все как полагается. Но ежели взять и выкрутить громкость в ноль, то тогда откуда-то вылазят какие-то паразитические 0.15 вольт и соответственно 3 лампы начальные зажигаются и горят. Добавляешь громкости - все, этого эффекта нет и опять лампы моргают как полагается.

Подключал как напрямую из 3.5 джека в Пику, так и через делитель напряжения. В обоих случаях эта вакханалия творится.