> Arduino Uno R3 с присобаченным Wi-Fi Не совсем корректно. Это ESP8266 распаянная на плате формфактора UNO. Ардуиновского микроконтроллера (ATMega32) там нет. Это грозит следующим: - По умолчанию плата как ардуино не заведется. Нужно будет ставить доп пакеты с компиляторами под ESP - Поскольку микроконтроллер мягко говоря другой некоторые библиотеки заработают (кроссплатформенные), а некоторые нет (те, которые заточены под АТМегу) - Компиляция будет заметно дольше, чем под обычную ардуину (несколько минут против нескольких секунд) - В отличии от АТМеги, которая требует 5В питания, ЕСП питается от 3.3В. Это накладывает ограничения на доп железо, которое подключается к плате. - Могу ошибаться, но по моему у ESP ноги не толерантны к 5В, а значит нужно будет следить за тем, чтобы на входы не пошло 5В
Но в общем и целом для Вашей задачи это неплохой выбор, как мне кажется. Какая нибудь из графических библиотек должна завестись, но возможно потребуется помощь кого нибудь с опытом в таких делах.
Да, на этой плате 2 микроконтроллера, по всей видимости соединенные по UART. Причем на фотке отчетливо видно, что это ATMega32 (или 328, что в данном случае почти тоже самое) c 32кб флеша, а не 2560 с ее 256кб. АТмега2560 это огромная микросхема с полутора сотней выводов, а тут 32-ногий корпус. Так что описанию я бы не верил.
Как по мне странная связка - слабый микроконтроллер (АТМега) + сильный микроконтроллер (ЕСП) просто в роли модема.... Мне кажется плата, которую Вы упоминали в статье более логичная, что ли :)
Они разные, последовательные каналы медленные, графический режим обновляется секундами, паралельные требуют много памяти и загружают процессор. Символы во всех мониторах, кроме тех, что с процессорами, формируются программно, поэтому можно вводить любые символы. Данные можно передавать пин WR и считывать пин RD, но считывание используется редко. Моделей много разных поэтому бывают заморочки из за несовместимости.
Да, про скорость я зря не написал. А почему "паралельные требуют много памяти и загружают процессор"? Вроде бы ровно столько же требуют и меньше загружают (процессор не занимается последовательной передачей кучи данных).
Все дело в интерфейсах, которые реализованы в железе. Загружает больше, потому как параллельный интерфейс придется эмулировать, тогда как последовательный встроен в микроконтроллер.
Например, при последовательном интерфейсе алгоритм работы загрузки данных выглядит так: - Эй микроконтроллер, вот тебе Х кб данных. Вперед, заливай в экран! - Ок, заливаю первый байт.... <прерывание> - я залил байт, давай следующий - держи <байт заливается в фоне, микроконтроллер занимается другими делами
( ... )
Хорошо бы иметь много памяти. Тогда можно было бы организовать буффер кадра в оперативной памяти, нарисовать туда что нужно, а потом одним заходом выплюнуть весь кадр в экран.
К сожалению это мечты. В АТМеге очень мало оперативы (2кб, вроде), в ЕСП оперативы чуть больше (20кб) но тоже мало. В любом случае буффер кадра целиком не влезет. Поэтому прибегают к трюку. Например изображение рисуется маленькими кусочками в стиле - эй, экран, ограничь облась видимости областью 10:10x20:20 - экран, вот тебе 100 пикселей, нарисуй их на текущей области видимости
Линии рисуются примерно так же - организовывается прямоугольная область видимости шириной в 1 (или какая там нужна толщина) пикселей и заливается одним цветом. Т.е. это не привычный цикл в стиле "для х от 1 до 320", а управление экраном разного рода коммандами, которые занимают достаточно много времени. В итоге отрисовка одного кадра может занимать чуть ли не полсекунды. Для информатора с парой чисел покатит, но анимацию уже не отобразить.
Очень я сомневаюсь, что на ардуину надо это всё лепить. Если хочется нормального экрана, с графикой, тачем и прочими блекджеками, и при этом не махать кайлом а всего лишь потанцевать с бубном, то стоит взять тупо малинку, приделать к ней штатный экран и спокойно нарисовать всё, что хочется. А ардуину, если так припёрло - пускать на исполнительные устройства или датчики. Это я про хобби, радиолюбитество, естесстно )
Ну так уж избыточна, если учесть длину соединительного "шнура" с монитором. С Малиной он может значительно длиннее чем коротышки SPI, I2C и тем более "параллельный".
Comments 34
Reply
Reply
Reply
Reply
Не совсем корректно. Это ESP8266 распаянная на плате формфактора UNO. Ардуиновского микроконтроллера (ATMega32) там нет. Это грозит следующим:
- По умолчанию плата как ардуино не заведется. Нужно будет ставить доп пакеты с компиляторами под ESP
- Поскольку микроконтроллер мягко говоря другой некоторые библиотеки заработают (кроссплатформенные), а некоторые нет (те, которые заточены под АТМегу)
- Компиляция будет заметно дольше, чем под обычную ардуину (несколько минут против нескольких секунд)
- В отличии от АТМеги, которая требует 5В питания, ЕСП питается от 3.3В. Это накладывает ограничения на доп железо, которое подключается к плате.
- Могу ошибаться, но по моему у ESP ноги не толерантны к 5В, а значит нужно будет следить за тем, чтобы на входы не пошло 5В
Но в общем и целом для Вашей задачи это неплохой выбор, как мне кажется. Какая нибудь из графических библиотек должна завестись, но возможно потребуется помощь кого нибудь с опытом в таких делах.
Reply
Заказал в результате вот такое: https://aliexpress.ru/item/4000588728149.html
Написано ATmega2560 + ESP8266
Reply
Как по мне странная связка - слабый микроконтроллер (АТМега) + сильный микроконтроллер (ЕСП) просто в роли модема.... Мне кажется плата, которую Вы упоминали в статье более логичная, что ли :)
Reply
Reply
Reply
А почему "паралельные требуют много памяти и загружают процессор"? Вроде бы ровно столько же требуют и меньше загружают (процессор не занимается последовательной передачей кучи данных).
Reply
Например, при последовательном интерфейсе алгоритм работы загрузки данных выглядит так:
- Эй микроконтроллер, вот тебе Х кб данных. Вперед, заливай в экран!
- Ок, заливаю первый байт....
<прерывание>
- я залил байт, давай следующий
- держи
<байт заливается в фоне, микроконтроллер занимается другими делами ( ... )
Reply
Хорошо бы иметь много памяти. Тогда можно было бы организовать буффер кадра в оперативной памяти, нарисовать туда что нужно, а потом одним заходом выплюнуть весь кадр в экран.
К сожалению это мечты. В АТМеге очень мало оперативы (2кб, вроде), в ЕСП оперативы чуть больше (20кб) но тоже мало. В любом случае буффер кадра целиком не влезет. Поэтому прибегают к трюку. Например изображение рисуется маленькими кусочками в стиле
- эй, экран, ограничь облась видимости областью 10:10x20:20
- экран, вот тебе 100 пикселей, нарисуй их на текущей области видимости
Линии рисуются примерно так же - организовывается прямоугольная область видимости шириной в 1 (или какая там нужна толщина) пикселей и заливается одним цветом. Т.е. это не привычный цикл в стиле "для х от 1 до 320", а управление экраном разного рода коммандами, которые занимают достаточно много времени. В итоге отрисовка одного кадра может занимать чуть ли не полсекунды. Для информатора с парой чисел покатит, но анимацию уже не отобразить.
Reply
А ардуину, если так припёрло - пускать на исполнительные устройства или датчики.
Это я про хобби, радиолюбитество, естесстно )
Но, а за информацию, тем не менее, спасибо. )
Reply
Reply
Reply
Reply
Leave a comment