Как стать автором
Обновить

Комментарии 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 просто не равнять.

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

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

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

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

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

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

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

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

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

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

Просто если уж нужна сеть, вероятно, стоит брать процессор, который сразу её умеет, а не лепить к 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

Учусь выводить текст на русском :))
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории