Делаем из простого приемника Продвинутый-3 или универсальный модуль управления и индикации.
На каком устройстве смотришь видеосигнал?
Осциллографом можешь посмотреть D7 и D9 ?
Смотрю на мониторе 5". Монитор точно рабочий. Месяцев 5 назад я собирал похожий проект на этой самой плате ардуино и 5808, только вместо тумблера для включения меню использовал 4066, код мне дописали под это дело. Все работало. Решил собрать аккуратно и вставить в шлем, но идет затык. пробовал менять сигнал на ntsc, результата тоже нет.
Осциллографа нет.
Если ошибок нет и ардуина “живая везде” 😃 то проблема как раз в памяти. Если ее не хватает, то фреймбуфер не создается и библиотека TVOut ничего выдать не может. Надо посмотреть, что возвращает функция TV.begin. Если 4, то точно недостаточно памяти. Выхода два: пытаться оптимизировать код (это отдельная и очень печальная песня), либо уменьшать разрешение. Сам с этим имел кучу гимора, проблему решил в итоге по-тупому: завел вторую ардуину, заточенную только на работу с тв аут, а данные на нее стал передавать с первой по сериал порту.
Ардуинка единственная в хозяйстве?
Я как только не изголялся с заливкой прошивок этого проекта (и через avrusb, и в ардуинку с его USB, и через ISP со стороннего программатора, без бутлоадера) - они все работали, даже с кривыми фьюзами.
Проверь еще раз подключения и моник с внешнего источника типа DVD или тюнера любого.
фреймбуфер не создается
А какой там размер фреймбуфера?
И с какой стати на одной дуинке нано оно работает, а на другой - нет? Глупость какая.
И с какой стати на одной дуинке нано оно работает, а на другой - нет? Глупость какая.
Вот хз почему, но это так. Проверить просто: поставить намного меньшее разрешение и все должно заработать, если дело в этом. У меня заработало, но разрешение 64 на 64 точки мне нафик было не нужно 😃
И с какой стати на одной дуинке нано оно работает, а на другой - нет? Глупость какая.
Вот хз почему, но это так.
Дело не в железе, а версии IDE Arduino.
Если ошибок нет и ардуина “живая везде” то проблема как раз в памяти.
Была живая. А снять сейчас с платы для меня проблема: где чуть припоя осталось, уже фик вытащишь. Оплеткой плохо припой снимается, фена нет.
Плюс именно эту плату ардуинки с одной стороны близко к отверстиям обрезали. Я плясал с бубнами, она не хотела работать при внешнем питании, но от USB работала. Я подавал +5В на вход +5В и землю брал с той же стороны платки, но видимо там был плохой контакт и заработало только тогда, когда подал землю на вывод с другой стороны платы, а +5В на Vin. Теперь на процессоре не ровно 5В, может это влиять? Ничего страшного, если я монитор запитаю от аккумулятора, а ардуинку от USB чисто для теста? Может питания не хватает.
Надо посмотреть, что возвращает функция TV.begin. Если 4, то точно недостаточно памяти.
Я так понимаю, чтобы это узнать, нужно написать код + проверять визуально, например, светодиодом?
Ардуинка единственная в хозяйстве?
Нет, но если пробовать другую, то только навесным монтажем. Буду пробовать в последнюю очередь.
они все работали, даже с кривыми фьюзами.
Так у меня до этого тоже работало. Но я не на 100% уверен, что сейчас пользуюсь тем же проектом, а не форком, с гитхаба. В том варианте 5месячной давности еще был функционал DIP-переключателей.
Проверить просто: поставить намного меньшее разрешение и все должно заработать,
Это где-то в настройках либы TVout?
Дело не в железе, а версии IDE Arduino.
Вариант интересный, возможно я версию с того момента менял. Как пробовать? Прям старые ставить или есть какие-то знаковые 2-3 версии?
Дело не в железе, а версии IDE Arduino.
Вот, кстати, давно хотел понять, какая разница в использовании разных версий IDE и их влиянии на подобные вещи. Можно поподробнее?
Это где-то в настройках либы TVout?
Это в аргументах функции TV.Begin, насколько я помню. А насчет проверки, равен ее результат 4 или нет, варианты разные могут быть. Светодиод включить, зуммером попищать и т.д
Все оказалось слишком легко, до банального.
Сначала смутило это в основном файле программы
#ifdef TVOUT_SCREENS
// #include <TVout.h>
// #include <fontALL.h>
#endif
С учетом того, что перед этим стоит ifdef и отключать инклюд этих файлов нужно никак не комментированием этих строк.
Ну и в файле settings.h было так
//#define TVOUT_SCREENS
#define OLED_128x64_ADAFRUIT_SCREENS
Собственно закомментил OLED дисплей, раскомментил TVOUT_SCREENS.
Но проблема все-равно есть: меню программы просматривается, но крайне плохое, плывет, косится. Пойду дальше колдовать.
Кто-нибудь пробовал подключать вот такой дисплейчик www.ebay.co.uk/itm/…/181868816013 к Ардуино Нано по i2c? В режиме spi он работает нормально, но я бы хотел использовать его в режиме i2c для экономии выходов ардуины, нужных для других целей. Перепаял перемычку на плате дисплея для переключения его в этот режим, подключил к пинам A4 и A5, подал питание и нифига. Адафрутовская библиотека его не видит, сканер i2c не находит устройства на шине… идеи пока кончились 😃
Sda/scl не перепутал местами? Номера выводов дуины верно указаны в коде?
Ну и sda/scl подтянуты к плюсу резистором килоом в 10?
Не перепутал, надеюсь 😃 Хотя пробовал и так, и этак. Шины пробовал подтянуть резисторами - результата 0. В i2c примере из библиотеки Adafruit_1306 номера выводов для подключения i2c не указываются, насколько я понимаю. Там только адрес, 0x3c или 0x3d, попробовал и так, и так, для очистки совести больше, т.к сканер не видит ничего в любом случае.
Инициализация дисплея там выглядит так:
Serial.begin(9600);
// by default, we’ll generate the high voltage from the 3.3v line internally! (neat!)
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // initialize with the I2C addr 0x3D (for the 128x64)
// init done
В коде прописана только константа OLED_RESET, указывающая на 4 цифр. выход.
Там, в принципе, даже подтяжка необязательна, и так работает.
С одним устройством на шине да, будет работать и так. С двумя и более - лучше поставить резисторы.
Вопрос теоретический, как соотносятся параметры сигнала аппаратуры для FPV 1.2GHz и обычного тв дмв?
Будет ли картинка если у ТВ частоту приема чуть поднять дальше 69 канала и попробовать половить нижние каналы FPV ~900-1000 MHz, или там девиация такая, что ТВ его не поймет?
И соответственно наоборот, “разогнанный” модулятор из видика что-нибудь покажет на FPV приемнике?
Думаю обладатели продвинутых приемников легко смогут ответить на эти вопросы…
Адафрутовская библиотека его не видит, сканер i2c не находит устройства на шине… идеи пока кончились
Проблему решил самостоятельно 😃 Оказывается, этот дисплей в обязательном порядке требует сигнал RESET. Подключил пин RES дисплея к D4, прописанному в коде скетча, и все тут же зафурычило 😃 Имейте в виду, если столкнетесь. Подтягивающие резюки к 5-ти вольтам также нужны для некоторых дисплеев, без них картинка может зависать. Резюки нужны в любом случае, если на шине два и более девайса.
Будет ли картинка если у ТВ частоту приема чуть поднять дальше 69 канала и попробовать половить нижние каналы FPV ~900-1000 MHz, или там девиация такая, что ТВ его не поймет?
И соответственно наоборот, “разогнанный” модулятор из видика что-нибудь покажет на FPV приемнике?
Нет. Модуляция совершенно не совместима.
Мужики, не знаю, что уже с этим делать, помогайте. Короче, симптомы такие, будто сгорает Arduino Nano, которая управляет всем хозяйством. Вот сегодня такая участь постигла очередную. Подключил питание, чего-то повозился со схемой, потом глядь - все, дисплей погас, на ардуине горит только светодиод power. Подключаю к IDE, результат: avrdude: stk500_recv(): programmer is not responding. Светодиод RX при этом тускло подмигивает. Выдернул ее из макетки, подключил просто к компу по юсб, та же фигня. И так уже с третьей ардуиной! Не сегодня, а вообще. В чем причина может быть? Ардуина сгорела или слетел загрузчик по какой-то причине? Как проверить? Питание заведено от 12 вольт, на Vin 11.9 попадает в итоге. Раньше все фурычило. Главное я закономерность понять не могу. Просто раз и все, без причины как будто. Статика, что ли?
Ну а питание самой ардуинки-то какое?
Да там и 7-12в можно подавать, и 5в. На плате регулятор стоит. У меня питалась от 12-ти.
upd. Сегодня попробую прошить загрузчик с помощью другой ардуины.