Скрыть объявление
На нашем форуме недоступен просмотр изображений для неавторизованных пользователей. Если Вы уже зарегистрированы на нашем форуме, то можете войти. Если у Вас еще нет аккаунта, мы будем рады, если Вы к нам присоединитесь. Зарегистрироваться Вы можете здесь.

Драйвер для матриц на MAX7219 на esp8266

Тема в разделе "Другие проекты", создана пользователем sharky, 27 мар 2015.

Метки:
  1. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Делаю первые шаги в сях и программировании этого замечательного модуля, набросал небольшую библиотечку чтоб без MCU дополнительного рулить лед-матрицами. Пока малость коряво, но планирую довести до ума.

    Готовую либу не нашел поэтому запилил по образу и подобию ардуиновских.

    Исходники: https://github.com/ploys/esp8266/tree/master/max72xx

    Нормально живет в проекте на esphttpd можно с мобилы или компа рисовать, позже, как до ума доведу, выложу клиентскую часть рисовалку.
    Фоточки: https://github.com/ploys/esp8266/issues/1
     
    JustACat и Victor нравится это.
  2. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Так как в сях новичек, интересно было бы услышать мнение спецов по бест практикам.

    1. Нормально ли гонять структуру с конфигом параметром в каждую функцию, или может есть более удобный вариант эмуляции объектов в чистых сях?
    2. В каких случаях ICACHE_FLASH_ATTR в объявлениях функций не нужен, я так понял он юзается, чтобы ф-я загружалась с флэша в рам при необходимости и рама меньше расходовалась, тогда почему бы такое поведение не сделать умолчательным?
    3. Возможно ли как-то просто сделать инициализацию пина по номеру или системной какой константе аля как в ардуине, чтоб не приходилось в юзерском модуле писать подобное:
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO2_U, FUNC_GPIO2);
    PIN_FUNC_SELECT(PERIPHS_IO_MUX_GPIO4_U, FUNC_GPIO4);

    Спасибо.
     
  3. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Так сделали уже http://esp8266.ru/forum/threads/smi...abotki-proshivok-esp8266.167/page-3#post-3518 - это например...

    И к вашему 3 вопросу:
    Вообще у нас есть тут интересные проекты, в которых и Си++11 и работа Arduino-style (Sming) и даже компилирование в ArduinoIDE есть :)
    Было бы неплохо на самом деле и вашу либу прикрутить к Sming.

    PS: хотел лично вам сказать спасибо - очень мало людей вот так чтобы пришли на форум, и тут же что-то выдали, причем безвозмездно!
     
  4. sharky

    sharky Читатель

    Сообщения:
    32
    Симпатии:
    12
    Надо было Вашу ссылку прочитать перед тем как писать, нашел ответ на 2й вопрос: код нельзя класть в ROM (тот что может быть вызван из прерываний, системный и т.д.) и ФТП как оказалось есть и мнения по ардуиноИДЕ схожие :)

    Всегда пожалуйста, давайте прикручу, про Sming только вот сегодня узнал потоптавшись по форуму. Склонировал, во внутренности не вникал еще, но выглядит красиво, во всех этих эмбед сдк очень не хватает модульности которая есть в ардуине.

    По смингу, arduino IDE для esp и идеям новых либ тут напишу, может потом перенесу в тему с хотелками если одобрите:
    1. ИМХО ардуиновская IDE канает для мелких стартовых скетчей, но что-то серьезное на ней делать анрил ввиду отсутствия подсказок, рефактора и прочих штук полноценных ИДЕ, эклипс в данном случае намного удобнее, не IntelliJ IDEA конечно (CLion они еще до ума не довели), но съедобно. Мне например, было бы очень удобно юзать что-то одно для всех платформ (avr, arm, esp итп), ардуиновский плагин на луну натянул, но еще не пробовал, и выглядит он как-то стремно :)
    ESPшный тулчейн работает отлично под виндой с мингв благодаря топикстартеру UnofficialDevKit получилось быстро поставить, настроить вникнуть, спасибо ему, как доразберусь в написании плагинов к эклипсу может запилю селектор ком порта, чтоб постоянно в мэйкфайл не лазить :).

    2. Sming попробую погонять сегодня, как вникну могу попробовать перегнать либу для OpenEEG протокола и MPU-6050/9150 игрался с ним на ардуинке, камерой и объектом в 3д сцене рулил.
    Правда не уверен пока в производительности, но это уже на практике надо смотреть сколько максимум выжать по скорости можно.

    3. Из хотелок: было бы прикольно иметь легковесный FTP + ФС на сдкарточке на модуле, пины свободные по идее еще останутся для управления например mp3 плэеромкоторый с этой же карточки играть будет. Хочу ребенку говорящего медведя сбацать, чтоб можно было заливать с мобилы фразы/песни итп. По поводу ФС в том же Sming написано про SPIFF а вот FTP сервера реализации не нашел легкого.

    4. Также очень нехватает какого-то очень легкого сервера аля терминального из АТ прошивки, чтоб модулем его можно было подключать к своим проектам.
     
    Последнее редактирование: 27 мар 2015
  5. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.394
    Симпатии:
    1.271
    1. Тут как кому нравится :)
    2. По тому, что по умолчанию код идет в Iram.
    3.
    Код (C):
    1.  
    2. #define _IO_MUX_GPIO ((uint64)0x3210BA9876FE4D5Cull) // обратный порядок: ((uint64)0xC5D4EF6789AB0123) // таблица по 4 бита на номер пина,  адресов IO_MUX в соответствии с номерами GPIOn
    3. #define PERIPHS_IO_MUX_GPIO_ADDR(PIN_NUM) (PERIPHS_IO_MUX + 0x04 + (uint32)(((_IO_MUX_GPIO>>(PIN_NUM<<2)) & 0x0F)<<2)) // получить адрес IO_MUX в соответствии с номером GPIOn
    4.  
    Такое сложное описание для того, чтобы не было таблиц в ram. (т.е. чтобы не тратило ни бита и так малого ОЗУ)
    Полное описание с примерами в Web_Base3\app\include\driver\io_pin_func.h
    Как итог - если надо назначить к примеру пин GPIO12 на I/O то PIN_FUNC_IOPORT(12), а назначить функцию пина GPIO12 обратно, по умолчанию, принятому в SDK = PIN_FUNC_DEFAULT(12);

    Решение с таблицами размещенными в rodata (общей ОЗУ данных) найдете в Lua клонах.
     
    Последнее редактирование: 27 мар 2015
  6. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    sharky, вы, главное - не забрасывайте :) Судя по вашим словам у вас есть и желание, и возможности привнести в наше сообщество много полезного!
    По модификации makefile'ов и eclipse - очень плюсую, и это можно обсудить с @CHERTS (автором UDK).
    По библиотекам для Sming - любым, плюсую многократно. Ибо это упростит жизнь многим новичкам. А в итоге (мечтательно) может и действительно что-то около Arduino выйдет (и я имею ввиду не саму IDE, хотя для новичков лучше и не найти: простое окно, и кнопки "Проверить код" и "Загрузить в ESP", ну может еще Terminal, но я больше говорю именно за инфраструктуру, когда есть множество библиотек, которые можно подключить быстро и что-то проверить). Так вот, по библиотекам и Sming - это к @anakod.
    Ну a ArduinoIDE у нас пилит @Sermus. И все, на сколько я знаю, открыты для предложений, и тем более - для помощи.
    Такие дела :)
     
  7. whiteud

    whiteud Читатель

    Сообщения:
    58
    Симпатии:
    5
    А реально сделать матрицу сантиметров так на 90 из таких модулей для использовании в авто? Можно было бы с айфонца по wi-fi передавать заготовленный текст :) и можно ли обойтись без max7219?
     
  8. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    whiteud, в принципе - почему нет? Только не дороговато выйдет на 90 см?
    Я бы, думаю, брал что-то на WS2811 / WS2812. Они есть разные:
    Примеры (раскрыть)
    В виде лент http://aliexpress.com/item/1-4-5-ip65/32243894576.html http://aliexpress.com/item/DC-5V-WS...D-30-Pixel-M-Waterproof-IP67/32230036355.html
    Отдельных пикселей http://aliexpress.com/item/1000-pcs...12b-heatsink-1pcs-as-1-pixel/32241930349.html
    Готовых полотен http://aliexpress.com/item/25x50CM-...sable-Dispaly-Screen-Panel-5V/1660698961.html http://aliexpress.com/item/25x50CM-...sable-Dispaly-Screen-Panel-5V/1660739522.html
    Гирлянд http://ru.aliexpress.com/item/HK-Po...9mm-LED-Module-Pixels-String/32241147346.html
    Не реклама. И это я лоты вставил от балды (не самые дешевые и/или качественные, просто чтобы показать, что оно есть).

    Хотя вопрос конечно в дистанции, с которой оно должно читаться.
    Еще у адафрута есть прикольные штуки: http://www.adafruit.com/products/420 (там под самим товаром много примеров реализации)
    Ну и вот: http://www.ebay.com/itm/331456943362 - такую я пользовал, работает, там все на сдвиговых + дешифраторах, простое, как дрова. Можно их объединять в большие модули.
     
    whiteud нравится это.
  9. whiteud

    whiteud Читатель

    Сообщения:
    58
    Симпатии:
    5
    Да вроде не очень дорого, выходит 90 рублей за штуку, вот например: http://www.ebay.com/itm/Arduino-Con...87?pt=LH_DefaultDomain_15&hash=item1e9f9c5fe3

    Получается 3.2смx3.2см, чтобы получить 90см это надо 28 модулей, если два ряда 56, выходит в 5тыс руб. Те что по ссылке неплохо между собой соединяются, монтаж детский. Вот тут есть пример как они соединяются, практически без швов. Корпус сделать тоже не сложно.

    Лента конечно тоже прикольный вариант, но греться она будет адски, и питание боюсь в машине под нее не найти. Сложно сравнить по цене, но думаю что 8х8 херовины выйдут дешевле
     
  10. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    whiteud, ну, тут поприкидывать нужно.
    Update: я первый раз слегка обсчитался, считал 1 строку (8 точек), а думал про две (16 точек). Чутка подправил расчеты: посчитал на две строки (16 точек), а длину на 900mm.

    Адафрутовский модуль 16x32 - это 8 модулей 8x8 (2 ряда по 4 модуля).
    Размер 192mm x 96mm.
    900mm / 192mm ~ 4-5 модулей.
    Это даже при их конской цене в $25 выходит ~ $100-125.
    Из плюсов: цвета!
    Из минусов: те модули, вроде как, тоже на регистрах и дешифраторах.

    Ладно, берем модули, которые я покупал себе, они идут по $11 за 16x32.
    Размер у них 151mm x 76mm (только что померил).
    900mm / 151mm ~ 6 шт.
    То есть за ваш размер выходит около $66 - это уже меньше вашей озвученной суммы.
    Из плюсов: 2 (3) цвета вместо 1.
    Из минусов: на регистрах и дешифраторах.

    По лентам/модулям на WS28xx - надо отдельно считать, смотреть лоты дешевые. Те, что я привел, далеко не самые дешевые :)
    Но по ним может выйти конечно и дороже. А может и нет.
    Из плюсов: опять же - цвета! Вся радуга (грубо). Управление - по 1 проводу.
    Из минусов: ммм, если только цена, наверное...

    К слову сказать, светодиоды WS28xx можно и россыпью купить и самостоятельно напаять, так еще дешевле, но придется делать плату.

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

    Ах да, забыл еще один плюс ленты/полотна, который иногда нужен - они гибкие, то есть их можно, например, на некую ткань или клеенку закрепить, и тогда такой экран можно сворачивать в трубочку :)
     
    Последнее редактирование: 22 июн 2015
    whiteud и sharky нравится это.
  11. whiteud

    whiteud Читатель

    Сообщения:
    58
    Симпатии:
    5
    Про нагрев и питание поясню, к примеру на вашей же ленте, там указано 11.5Вт/м (для ленты 60 светодиодов на метр), 90см грубо метр, считаем что рядов будет 16 (аналогично варианту 8х8 матриц в два ряда), 11.5*16=184Вт, с запасом нужен БП на 200Вт, ну и собственно греться оно будет также. Ну да я конечно не учел что он же не постоянно будет светиться, да и для ленты можно подложку металлическую сделать. Но вот как питать 200Вт беду от автомобильной сети - тут я теряюсь.

    Кстати 60 диодов на метр, эт не особо, надо брать 144 как минимум, а это уже другие цифры :(
     
  12. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    whiteud, так-то оно так, но опять же условно, нужно мерить. Просто потому, что китайские ватты, они такие китайские :) И для лент светодиодных это тоже справедливо.
    То есть заявленные ими ватты явно нужно на что-то поделить. Далее, это максимум, который, как вы сами сказали, будет (если будет) только если врубить все 3 цвета (RGB) во всех светодиодах ленты на постоянку.
    Спрашивается - а зачем? Чтобы получить из этого экрана белый светильник размером 90 на x см? :)
    Далее, я бы все таки в амперах считал, а то ватты. Но это так.
    Ну и наконец - вы же тоже хотите светодиоды, в другом виде, но светодиоды. Потребление/нагрев у них будет при прочих равных (одном цвете, кол-ве светиков, яркости и т.п.) сходное же.
    Я, например, когда запускал тот свой модуль 2-х цветный в режиме полного включения 1 строки - оно тоже грелось не хило особенно транзисторы там сзади. Потребление, правда, не замерял, но уверен, что в таком режиме оно сгорело бы быстро (рассчитано стопудово на динамическую индикацию).

    К слову, от автомобиля народ запитывает усилки на киловатт и более :) Ну, фанаты звука. Так что, думаю, сеть-то справится полюбому. Другой вопрос, что надо будет какой-то преобразователь мощный 12 -> 5. Это да...

    В любом случае это все очень прикидочно конечно, и нельзя судить точно, пока не померишь в реальности. Точнее так: я не берусь судить точно, т.к. моих знаний мне на эти расчеты не хватит :)
    А так, ну, я в итоге просто привел возможные варианты. Просто знаю, что на этих WS28xx экраны делают, в т.ч. и большие (на тюбике много их). Вот и предложил как вариант.
     
    Последнее редактирование: 22 июн 2015
  13. whiteud

    whiteud Читатель

    Сообщения:
    58
    Симпатии:
    5
    По мощности я базировался на ленте что делал освещение дома, там 5050 светодиоды, жрут как падлы, БП греется тоже будь здоров. А вот по модулям в шапке натыкался на такую готовую штуку, там на фотках ниже видно что используются 8x8 модули, у него она вообще на аккумуляторах :) по потреблению согласно даташиту как-то мало http://www.foryard-led.ru/pdf/fym-23881crgb_drgb.pdf

    Спасибо за участие :)
     
  14. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Разве мало?
    Написано: Forward Current 30 mA
    30 mA * 8 * 8 ~ 1,92 A
    И если в ватты переводить: Forward Voltage берем для нужного цвета:
    - красный: 2,2V ~ 4.2 ватт
    - синий: 2,8V ~ 5.4 ватт
    Это еще если не брать, сколько на ограничительных резисторах рассеиваться будет.
    На каждый модуль... Не сказал бы, что мало.
    Но опять же - это если жечь на всю яркость постоянно все точки - а так их никто обычно не пользует, чаще всего динамическая индикация + анимация того, что выводится, и в итоге получается, что горит одновременно всего несколько светиков, и недолго.
    А вы как раз пишете про замеры на освещении - вот там как раз случай реального максимума: освещение горит постоянно (пока включено) и на максимум обычно - там и потребление будет огого и нагрев будет конечно.
    Я лично понимаю так... Если чего путаю - простите :)
     
  15. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    411
    Симпатии:
    73
    Практически гораздо меньший ток у матриц. В часах про которые я тут всем уши прожужал не выше 400 мА выходит со всеми esp, nrF24, звуком и прочим.
     
  16. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.394
    Симпатии:
    1.271
    А с нормальным LCD меньше не выйдет?
    http://garagelab.com/profiles/blogs/arduino-generated-vga-color-signal-complete
     
    Последнее редактирование: 23 июн 2015
  17. JustACat

    JustACat Moderator Команда форума

    Сообщения:
    568
    Симпатии:
    121
    Вот и я о том. Точнее о том, что надо все проверять практически :)
    Для задачи whiteud'а не подойдет: LCD размера 900mm x 100 mm найти сложно, а другой на заднее стекло авто не поставить (весь обзор закроет). Ну и надо тогда какую-то матрицу по круче, не обычный TFT, а то на солнышке его будет не видно вообще.
     
  18. pvvx

    pvvx Активный участник сообщества

    Сообщения:
    8.394
    Симпатии:
    1.271
     
    whiteud, Victor и JustACat нравится это.
  19. Maunty

    Maunty Новичок

    Сообщения:
    2
    Симпатии:
    0
    Всем привет. Я новичок в этом деле. Решил начать с проекта esp8266 и max7219 собрать wifi метеостанцию. Так не могу понять что у меня не получается. При прошивке модуля работает только одна матрица из четырех. Проверил на Arduino nano, всё работает. Проверял на готовых примерах в Arduino. Начал думать может питание не хватает т.к. на Arduino питание от +5 ,а тут +3. Помогите пожалуйста разобраться.
     
  20. Andy Korg

    Andy Korg Moderator Команда форума

    Сообщения:
    411
    Симпатии:
    73
    Тяжело без кода догадаться чего там происходит. И схему подключения ....
     

Поделиться этой страницей