LCD дисплей Arduino LCD: 5 кроків

LCD дисплей Arduino LCD: 5 кроків

Зміст:

Anonim

a.k.a. безоплатно ускладнена двонаправлено зв'язується Arduino на основі прокрутки Twitter дисплея і оповіщення.

----

Цей проект головним чином був зроблений як привід, щоб дізнатися, як використовувати LCD дисплеї з символом Arduino, і з'ясувати, як зробити двонаправлений послідовний протокол. Однією з основних завдань дизайну було те, що апаратні засоби будуть вводитись користувачами та спілкуватися з комп'ютером, а не просто працювати як "німий" дисплей, керований повністю комп'ютером. Це дозволяє Arduino мати фізичний контроль швидкості прокручування, який впливає на скрипт, що працює на ПК.

Особливості:

- РК-дисплей розміром 16 x 2 символів, на якому відображаються твітти з вибраного каналу чи терміну пошуку

- Прапор із сервоприводом піднімається, коли є непрочитані твіти (без поштовхів Arduino!)

- регулятор швидкості регулює швидкість прокручування

- У нього є електроліти

Постачання:

Крок 1: Архітектура системи

Досить грандіозна назва, яка по суті означає "розбиття дизайну на частини", оскільки це досить складна річ.

Обладнання:

Апаратні засоби формують інтерфейс Arduino з реальним світом. Апаратне забезпечення складається з дворядкового РК-дисплея для відображення повідомлень, контролю швидкості, що дозволяє змінювати швидкість прокрутки під час роботи пристрою, а також прапорець із сервоприводом, який піднімає, коли скрипт виявляє наявність непрочитаних твітів.

Прошивка:

Ескіз, запущений на Arduino, запускає цикл, що виконує дві основні дії. Він надсилає запит "статус" скрипту, запущеному на ПК сервера, і чекає відповіді, що містить кількість твітів у списку, і чи є непрочитані. Потім він відправляє запит "повідомлення", отримує текст твітів і відображає його на екрані. Він зчитує потенціометр в реальному часі, щоб отримати бажану швидкість прокрутки, і піднімає і опускає прапор, щоб повідомити про нові твіти.

Програмне забезпечення:

Серверне програмне забезпечення зберігає список всіх твітів, які було відкрито після його запуску. Коли скрипт отримує запит "статус", він відповідає з кількістю твітів, які він наразі має в списку, і чи є непрочитані твіти. Коли він отримує запит "повідомлення", скрипт посилає наступний твіт у списку, повертаючись до початку списку, коли він досягає кінця списку або коли знаходить нові твіти.

Сценарій також повинен зберігати список твітів в актуальному стані, перевіряючи API Twitter, щоб отримати останні повідомлення. Це також приурочено, щоб відбутися не більше одного разу кожні три хвилини: коли скрипт отримує запит "статус", якщо минуло більше трьох хвилин від останньої перевірки, він отримує список твітів і перевіряє, чи є непрочитані..

Крок 2: Обладнання

Інструкції з підключення

Відображення:

Для серійного РК-дисплея розміром 16x2:

Контакт 1. Земля

PIN-код 2. VCC (+ 5В)

Pin 3. Контраст

Pin 4. Вибір реєстру (RS)

Pin 5. Читання / запис (R / W)

Pin 6. Годинник

Pin 7. N / A

Pin 8. N / A

Pin 9. N / A

Pin 10. N / A

Pin 11. Біт 4

Pin 12. Біт 5

Pin 13. Біт 6

Pin 14. Біт 7

Pin 15. Анод підсвічування (+)

Pin 16. Католиці підсвічування (-)

Ви можете дізнатися більше про цю сторінку Вікіпедії про цю серію РК-дисплеїв.

Щоб підключити РК-дисплей до Arduino, підключіть на РК-дисплеї такі номери:

1: GND

2: + ve (+5 В)

3: GND *

4: Штифт Arduino 12

5: GND +

6: Штифт Arduino 11

11, 12, 13, 14: Ардуїно 5, 4, 3, 2

*: Pin 3 повинен бути технічно підключений до потенціометру 10K між VCC і GND, однак мій дисплей мав хороший контраст в нижній частині діапазону потенціометра, тому я просто прив'язав лінію контрасту до землі. Також, я хотів потенціометр для чогось ще:) t

+: Висновок 5 перемикає РК-дисплей між режимами зчитування та запису, але ми ніколи не повинні читати з РК-дисплея, тому тримайте його до землі, щоб тримати дисплей у режимі запису.

Додатково: регулювання швидкості

Потенціометр GND: GND

Потенціометр VCC: VCC

Склоочисник потенціометра: аналог Arduino в 0

Необов'язково: "новий твіт" прапор

Вам знадобиться транзистор і серво.

Транзисторний випромінювач: GND

База транзистора: штифт Arduino 7

Транзисторний колектор: сервопривід GND

Servo VCC: VCC

Сервопривод: Arduino pin 9 (ШІМ)

Якщо ви хочете використовувати сервопривід, переконайтеся, що ваш Arduino підключений до зовнішнього джерела живлення (USB не забезпечить достатньо соку) і покласти електролітичний конденсатор через рельси для забезпечення струму струму.

Крок 3: Прошивка

Загальний функціональний опис коду:

Запустіть РК-дисплей

Встановіть деякі константи, що використовуються в коді

Надрукуйте початкове повідомлення на РК-дисплей

Налаштуйте серво та опустіть прапор

Зачекайте п'ять секунд для запуску скрипту на ПК сервера

Цикл:

Запитуйте статус від сервера і чекайте відповіді

Якщо нові твіти: підніміть прапор і покажіть кількість твітів

else: знизити прапорець і відобразити хэштег пошуку

Запитуйте наступний твіт з сервера і чекайте відповіді

Очистіть верхній рядок дисплея

Відображайте твіт прокручування у верхньому рядку дисплея зі швидкістю, що визначається регулюванням швидкості

Більш повний "псевдокод" коду Arduino:

Ініціалізація РК-дисплея Налаштування констант Створення буфера для вхідних повідомлень Встановіть РК-дисплей у вигляді символів 16х2, без автоматичного прокручування Дисплей "Zeitgeistometer! T сервопривід в положення "вниз" і знову вимкнути цикл: Зверніть увагу на час, коли починається цикл Напишіть "статус" на послідовний зв'язок Очікуйте повідомлення на послідовній лінії або протягом десяти секунд, якщо прийде нове повідомлення: Щоб отримати повне повідомлення Прочитати повідомлення в буфер Прочитати перший символ повідомлення Якщо перший символ - 'T' Встановити "новий твіт" прапорець Активний серво, підняти і вимкнути Друк вмісту повідомлення в нижній рядок display Else Якщо встановлено новий прапор твіту Очистити новий прапор твіту Активне серво, нижнє та деактивувати друк "#instructables" до нижнього ряду дисплея Else Print "Немає повідомлення про статус" на дисплеї Зачекайте 0,5 секунди Write "tweet n "до послідовного зв'язку Почекайте повідомлення на послідовній лінії зв'язку або Протягом восьми секунд, якщо буде отримано нове повідомлення: Зачекайте на отримання всього повідомлення Читання повідомлення в буфер Встановіть поточну позицію на символ 0 В той час як символ 15 символів за поточну позицію не є нульовим Прочитайте карту керування швидкістю 0- 1023 до затримки в діапазоні 50-550 мс, дочекатися цього інтервалу Відображення 16 символів з поточної позиції у верхньому рядку РК-дисплея Збільшення поточного положення Else Друк "No twit response" на дисплей Функція clear_buffer: Напишіть 150 нульових символів в буфер повідомлень Функція read_to_buffer: clear_buffer (), а символи доступні з послідовного каналу зчитування символу від Serial до буфера повідомлень

Я додав справжній вихідний код до цього кроку як текстовий файл, частково тому, що це брудний і не дуже зрозумілий, тому не найкраще прочитати, щоб отримати уявлення про те, як працює система.

Крок 4: Програмне забезпечення

Кінець програмного забезпечення - це скрипт Perl, запущений на клієнтському ПК, до якого підключено Arduino. Він надсилає твіти до Arduino, коли запитується, і періодично перевіряє API пошуку Twitter для нових твітів. Якщо є нові твіти, вони додаються до списку, а наступне повідомлення про стан містить кількість нових твітів.

Псевдокод:

Налаштування послідовного порту підключення HTTP Отримати HTML з списку твітів Витягти вміст тегів заголовків і зберегти їх у масиві циклу {чекати серійного повідомлення, якщо "status" {if> 3 minutes минуло з моменту останнього запиту таймер запиту Twitter отримує HTML-список твітів для кожного твіту в новому списку {якщо він не такий самий, як перший твіт у поточному списку, додайте його до початку списку}} Якщо з'являються нові твіти, напишіть "Т "і кількість нових твітів ще запише" t "}, якщо" tweet "{якщо є нові твіти {запишіть перший твіт у списку} else {запишіть наступний твіт у списку, або поверніться до першого, якщо у нас є дійшла до кінця}}} Знову ж таки, мій вихідний код є брудним, сумнівно спроектованим і погано прокоментований, тому я додав його як текстовий файл. Він не працюватиме, якщо ви не встановите відповідні бібліотеки (LWP:: UserAgent і Win32:: SerialPort, я думаю), і я навіть не пам'ятаю, як я їх встановив. YMMV.

Крок 5: Дивитися його!

Відео 1: прапор. Прапор фактично залишається на той час, який знадобиться Arduino, щоб прокрутити весь перший твіт, але це не зробило б чудове відео:)

Відео 2: Послідовність запуску з моїм комедійним авторським правом / сплеском і демонстрація контролю швидкості. Насправді це відбуватиметься швидше, ніж це відео показує, але немає сенсу, оскільки ви не можете прочитати повідомлення на максимальній швидкості.