Pull to refresh

Comments 51

Для экономии пинов и уменьшения количества проводов советую использовать расширитель на i2c шине.
image
Как точно он называется и где купить?
Тот, что на картинке вроде mcp23008.
Лично я использую PCF8574 на плате, специально заточненной для LCD
Может кто знает, а есть ли подобные LCD уже изначально спроектированные под управление по SPI/i2c?
Есть дисплеи с уже припаянной платой. См. третью фотку в ссылке на ебае.
И правда, я почему-то сначала подумал что это пример использования.
Есть, у китайцев на DX/ebay видел кучу цветных дисплеев с SPI или I2C.
И при этом с русской кодовой страницей?
Фиг знает, мне еще не довелось пользоваться.
Но, подозреваю, что т.к. дисплеи не символьные, то все должно быть в порядке.
Да вроде как раз символьные. И в статье, и в комментариях.
У китайцев проблема в том, что они практически никогда не указывают полную модель. Обычно пишут просто что-нибудь вроде LCD1602. Что там в верхней кодовой странице — пёс его знает! Скорее всего cn, jp или eu. Попасть случайно на нужную нам кириллицу очень маловероятно!
У модели в посте есть внутренняя память на 8 пользовательских символов(вот символ ёлочки тому пример), думаю разбавив ими латинницу можно получить более менее вменяемое отображение.
Тема уже пробегала однажды. Вот: habrahabr.ru/post/191988/#comment_6670120
В общем — есть индикаторы изначально с кириллицей. СтОят ровно столько же, сколько остальные. Просто нужно чуть поискать (на DX свет клином не сошёлся; а изделие таково, что и в российских магазинах (оффлайн и интернет) продаётся и стоит примерно столько же).

(8 символов есть не у «модели в посте» а вообще, у всех моделей на этом контроллере. Просто нужно понимать, что нырять в этот омут — дело неблагодарное. Начиная с того, что эти 8 символов, во-первых, может тупо не хватить. Во-вторых, до загрузки их придётся где-то хранить (хорошо если на другом конце серьёзная машинка. А если это микроконтроллер с килобайтом памяти «итого»? Юзать эти 8 символов конкретно под кириллицу, зная, что есть конкретно кириллические индикаторы — имхо бдсм)
Как-то давным-давно, лет 15 назад делал игрушку как раз с таким экранчиком (им тогда факсы комплектовались). Русский удалось сделать, использовав часть спецсимволов и 8 программируемых символов. Пришлось составить специальную таблицу перекодировки, получил даже маленькие и большие русские буквы.
Хм, это идея, к такому и преобразование уровней на паре резисторов можно прикрутить (провода всего то два).
Но тогда схема будет более сложной к повторению, а одной из целей этого поста было дать схему с минимальным количеством компонентов.
Ещё можно было использовать микросхемку FTDI в режиме bitbang, тогда получим USB экранчик.
PS: Самое сложное, для меня, в подобных устройствах — добыть детали и время на разработку софта.
Уже есть готовые библиотеки для работы с этими расширителями. Например при использовании wiringPi сложность не увеличится, т.к каждый такой дополнительный пин на плате расширения получает свой номер (вроде начиня со 100). Далее с ним работаешь как с обычным.
Большинство современных экранов на HD44780 нормально живет при напряжение 3.3В, нужно только уменьшить сопротивление в цепи управления контрастом до 10-500Ом (самый простой способ), либо подавать на это контакт отрицательное напряжение (с помощью источника или генерацией с контроллера). Проверено на пачке 16x2 LCD экранов с подсветкой которыми забит ebay.
Есть такое дело, но на моём экране уж очень слабый контраст выходит, хотел его проапгрейдить по этому рецепту но так и не собрался заказать инвертор.
Ну, ардуины у меня нету, да и малина тогда не особо и нужна, сгодится и обычный ПК.
Про ардуину уже писали кстати, тут. Думаю особых переделок для нано не потребуется.
А зачем МК? RPi же имеет поддержку шины I2C.
Писал подобную либу на Питоне, с целью парсить погоду с яндекса и выводить на экранчик, если интересно — могу откопать
У меня была Raspberry Pi, и я ее благополучно продал. Т.к. смысла использовать нет. Если говорить про микроконтроллеры начального уровня то лучше использовать Arduino. Ваш пример прекрасно решается с помощью Arduino. Большинство публикация Raspberry Pi следущего характера: а теперь прикрутим датчик такой то, и в консоле увидим такие то данные. То что с успехом решается на Arduino без заморочек, на Raspberry Pi превращается в целое руководство. Получается нагромождение круто решаемых задач, которые на мой взгляд не стоят того. А целевой общей задачи нет. Пытались использовать Raspberry Pi для более серьезных задач. Файл-хранилище, мультимедиа центр, полная ерунда, низкая производительность, некоторые глюки, и за кодек нужно отдельно платить MPEG-2 license key. Короткое свое отношение о Raspberry Pi опубликовал в посте Короткое знакомство с одноплатным компьютером Raspberry Pi. На данный момент пытаюсь реализовать связку Cubietruck + Arduino + датчики. Идея заключается в создание конструктора для Android работы с датчиками. Но код составляется из набора шаблонов и заливается на Arduino автоматически. И нет необходимости в подобной писанине. Стоимость Arduino максимум 300 р. Время профи в случае решения инженерных задач будет весьма дороже Arduino. Поэтому на мой взгляд представленное решение в данной статья является экономически нецелесообразно, за исключением спортивного интереса.
Собственно спортивный интерес тут самое главное, мне казалось очевидным что те у кого нет малины не станут покупать её для работы только с экранчиком. Основным плюсом малины, на мой взгляд, является возможность дёргать ногами не особо вдумываясь в нюансы как оно там внутри работает и имея на борту полноценную ОС со всеми её плюшками, это больше универсальная платформа для разного рода опытов, проверки идей, отладки и прочее. Вот например такая задача как прошивка контроллера программатора легко решается с помощью малины и кучки софта. Или например передача показаний датчиков куда нибудь в интернеты и прочее на малине решается несколько проще. Понятное дело что серийное устройство никто на ней собирать не будет, но вот для отладки некоторых вещей она удобнее. В общем на малине можно налячкать тонны одноразового говнокода для проверки идеи не особо заботясь о доступных ресурсах. В конце концов RPI со слов создателя предназначалась в первую очредь для обучения программированию.
По поводу Arduino: я к ней оношусь с некоторой долей неприятия чтоли? в общем как отладочная плата она слабовата, мне больше по душе тот-же пинборд от DIHALT-а, а в готовых устройствах ардуина смотрится громоздко.
Основным плюсом малины, на мой взгляд, является возможность дёргать ногами не особо вдумываясь в нюансы как оно там внутри работает

Про Arduino могу сказать то же самое. Скачиваю библиотеки, а что внутри даже и не смотрю.
имея на борту полноценную ОС со всеми её плюшками

Практически во всех случаях кроме вывода в консоль, ничего не наблюдал из всех реализуемых богатых возможностях ОС
Или например передача показаний датчиков куда нибудь в интернеты и прочее на малине решается несколько проще.

Категорически не согласен. Если использовать FEZ Domino или Netuino Plus 2, на net micro framework. Пример: ThingSpeak .net Class
Mad Scientist Laboratory Temperature Monitor

DIY Weather Station with Arduino, Processing, and ThingSpeak
По поводу Arduino: я к ней оношусь с некоторой долей неприятия чтоли?

Почему? За решениями Arduino будущее. Количество проданных экземпляров Arduino и Raspberry Pi просто не равнять.

UFO just landed and posted this here
Дешевле как раз на Arduino. У Вас Wi-Fi Dongle без роутера, а значит дальность не высокая. Используете смартфон? Bluetooth там точно есть. Берем:
Arduino UNO — $11.69
слот для SD карт(хранение конфигов и логов) — $3.83
модуль Bluetooth — $7.66
Итого: $23.18
Все из готовых модулей, паять не требуется. Ссылки на товары есть.
Это сложнее, дороже?
Даже если на провода добавим $5, все равно дешевле получается.
UFO just landed and posted this here
С этого и начали бы. Raspberry Pi у вас подключен к коммутатору. Добавляем Ehternet Shield за $10. И реализуем веб-сервер. Решаемо вполне.
Окей, спорить не буду, видимо вы действительно пытаетесь притянуть ардруину чисто из принципа. =)

Не правы. Я к тому что подчас достаточно простые задачи решаются довольно простыми методами. Сейчас в ИТ-индустрии стало модно городить проблемы и заумности. Особенно, если это касается Linux. Предвижу заранее гнев.
UFO just landed and posted this here
Хм. Вопрос про трудоемкость процесса разработки ПО как-то упустили.

Море уже готовых библиотек и кода. Большой сложности написать код нету.
и слабо-поддерживаемый, трудоемкий в написании код с другой стороны…

Не вижу никаких доказательств. С чего вдруг код стал слабо-поддерживаемый, трудоемкий?
Впрочем, если вы способны реализовать на ардруине уно веб-сервер с обработкой GET или POST запросов и поддержкой простейшего HTTP-Auth, wget, парсер простейшего языка хранения данных типа JSON или CSV, шедуллер с часами реального времени, синхронизацию этих часов по NTP с интернетом, и все это за 2-3 часа, я лично готов поставить вам памятник.

Тогда я возьму Netduino Plus 2. Там все это есть, без наличия ОС. Плата с Ethernet портом и слотом SD карт. И программного кода много. Цена: $59.95.
UFO just landed and posted this here
Тогда Вас prostosergik прошу сделать пост о своем проекте — Диспетчер звонков в школе с управлением со смартфона + автозагрузка конфигов звонков из указанного места. Я думаю всем будет очень интересно. С предоставлением схем подключения + исходный код. Я же, в свою очередь, демонстрирую решение задачи по своему варианту, ок? Тогда будет возможность по пунктам детально сравнить подходы
UFO just landed and posted this here
Если подключение LCD, вызвало дискуссию. То Ваш проект будет точно интересен многим.
О, плюсую! Кстати, хочу вот поработать над простым демоном-будильником на Питоне. Взял бы что-нибудь из Вашего решения для старта, если опен-сорс, конечно =)
UFO just landed and posted this here
Крайности нести все горазды. Хотя бы напишите один пост. Посмотрим.
Да блин. Ну решение на одноплатном Линукс-компьютере заведомо проще того, которое основано на платформе Ардуино. Поясняю:

1)Ардуина ограничена одним ЯП.
Это значит, что:
-вырастает стоимость разработки софта — поскольку нет возможности использовать язык проще, типа Питона
-в частности для Ардуино всё не так хорошо с инструментами для дебага, поэтому проблемы ловить намного дольше, чем было бы с тем же Питоном под Распберри
-внезапно может не найтись аналога библиотеки/программы/и т.д. которая сто лет есть под Линуксом. Ну, где там возможность быстренько запилить в одну строчку grep/sed/awk для Wiring? Что, свой велоипед городить? Ага, сейчас, уже бегу.

2) Любые изменения в прошивке требуют физического контакта с платой
-Да, если захочется добавить какую-либо фичу — придётся лезть с кабелем. Если захочется поменять звук звонка — придётся лезть с кабелем. Если захочется поменять фон веб-страницы — лезь с кабелем. Ну, если, конечно, это всё на карточку не выпихнуть — только проблема, в Распберри всё давно на карточке, и трахаться не надо.

3) Отсутствие масштабируемости
Если захочется добавить фичу — придётся докупать шилды, плюс внезапно можно быть в пролёте из-за всяких там конфликтов шилдов по пинам. А ведь ещё может памяти не хватить, если вообще хватило на начальном этапе. Бывает, да? А в Распберри — в худшем случае ещё что-нибудь воткнуть придётся в ЮСБ.

4) Низкоуровневость.
Чем ниже уровень разработки и выше уровень задачи, тем дольше разработка. Для низкоуровневых задач Ардуино подходит отлично. Для высокоуровневых — придётся описывать все высокоуровневые задачи на низком уровне, тратя время либо в допиливании либ, либо в написании своих.

Моё мнение — Ардуино отлично подходит для исполнительных модулей типа моторчиковращателей/лампочкозажигателей/кнопочкосчитывателей по UART, I2C, SPI… А логику лучше переложить на что-нибудь поумнее и в нужный момент просто отдавать команды, так надёжнее. И тут у Распберри внезапно выясняется придаток — парочка GPIO, у которых есть все возможности, котрые нужны для реализации школьного звонка. Захочет — к имеющейся железке приделает школьное радио. Захочет — информационное табло на входе в школу и часики рядом. И время при этом сэкономит, и деньги. А платит всё равно заказчик — так почему бы ему цену не снизить за время непотерянное на Wiring, да ещё можно предложить допилить пару фич за небольшую плату, благо стоимость реализации этих фич внезапно окажется минимальной — масштабируемость-то хорошая.
Я категорически против Arduino + Ethernet Shield, потому что Ethernet Shield — это полноценный MIPS с линуксом внутри, так зачем тогда ардуино?
Если уж делать TCP/IP на AVR, так тогда уж честно, а не так вот.
UFO just landed and posted this here
Ну вообще говоря, я не сторонник деланья всего на разберях :)

Просто если уж нужна сеть, вероятно, стоит брать процессор, который сразу её умеет, а не лепить к AVRу полноценный SoC с линуксом внутрях.
Ахренительно, я прямо счастлив, что дело живёт и радует глаз!!!.. Мои респекты и уважухи! За шрифт ёлочки отдельное спасибо!!! Вот моё гик-спасибо!!!


Спасибо и лес ёлок!!!

echo -en "\033[R0\004\016\037\004\016\037\025\016\033[J\033[HHappy New Year\041*\r\n\000\000 Thank  You \000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000" > /dev/lptlcd


Как рассылать и получать сообщения описано в группе.

Единственный вопрос: а почему не модуль ядра?
но с наскока разобратся как рулить малиной из ядра у меня не вышло

В общем я ещё копаю эту тему, если разберусь можно будет ваш драйвер поправить и использовать. ^_^
Забавно, что мы с DIHALT прежде, чем я запостил свою статью обсуждали, как это всё перенести под малинку.

Надо посмотреть модули ядра, которые работают с GPIO (погуглить примеры) и заменить вывод в порт на вывод в GPIO в функции

 void expanderWrite(unsigned char _data)


Всё. Элементарно Ватсон :))))
Готово. Добавил в конец поста линк.
Для того, чтобы чтение с индикатора гарантированно не произошло (чтобы не сжечь RPI), нужно занулить вход RW. Читать с индикатора нечего, вообще-то. Если хочется использовать SPI, самое простое — подключить индикатор через микросхему 74HC(T)595. Это сдвиговый регистр, он легко подключается к SPI.
А есть ли возможность прикрутить к распбери какой-то дешевый несенсорный экран?
Я искал и не нашел ничего по теме.
Большое спасибо за статью!!!
Очень помогла при подключении MT-16S2H-2FLA к Raspberry pi 2

Хотел бы только добавить 2 вещи!
1. Занеимением резистора подключил ножку №3 дисплея к GND контаку на RPI и экран завелся!
2. Посветка на моем дисплее включается только от 5V. Очень хочу научиться ей мигать. Думаю поставить реле, что ли. Или транзистор?

image

Учусь выводить текст на русском :))
Sign up to leave a comment.

Articles