Создайте ИИ-компаньона на LCD: интерактивный друг на Arduino
Компоненты и материалы
- Arduino UNO — 1 шт.
- Потенциометр (любой) — 1 шт. (для контраста LCD)
- Перемычки — 19 шт.
- Бредборд — 1 шт.
- Кнопки — 4 шт.
- Резисторы 100 Ом — 3 шт.
- Резистор 221 Ом — 1 шт.
- LCD 16x2 (белый на синем, Adafruit) — 1 шт.
Программное обеспечение
- Arduino IDE
- Arduino Web Editor (опционально)
О проекте
Проект создан, чтобы подарить вам компаньона в одинокие моменты. Устройство общается через LCD-дисплей и реагирует на нажатия кнопок, имитируя простой диалог.
Сборка
Подключите LCD по стандартной схеме (RS, E, D4–D7 к пинам 12, 11, 5, 4, 3, 2). Потенциометр между VCC и GND, средний вывод на VO LCD для контраста. Четыре кнопки подключены к пинам 8, 9, 10 (с подтягивающими резисторами к GND). RGB-светодиод (если используется) — через резисторы 100/221 Ом к ШИМ-пинам.
Код
Скетч использует библиотеку LiquidCrystal.h. В setup() инициализируются пины кнопок и LCD, выводится приветственная анимация («Hi I am Robi», «You can talk to me» и т.д.). В loop() опрашиваются три кнопки:
- Кнопка 1 (пин 9): Запускает диалог «Hello I am Alexander», предлагает сыграть, выбор: Парк (лево) или Дом (право).
- Кнопка 2 (пин 10): Сценарий «Парк» — качаемся, устанем, покупаем напиток, вода попадает в глаз — «To be continued».
- Кнопка 3 (пин 8): Сценарий «Дом» — играем весь день — «To be continued».
Код легко расширяем — добавляйте свои сценарии и делитесь в комментариях!
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
const int buttonPin = 9;
const int buttonPin2 = 10;
const int buttonPin3 = 8;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(buttonPin3, INPUT);
lcd.begin(16, 2);
// Приветственная последовательность...
lcd.print(" (.) (.) Hi I");
lcd.setCursor(0, 1);
lcd.print("(____) am Robi");
delay(2000);
// ...остальные строки приветствия
}
void loop() {
// Опрос кнопок и вывод диалогов
// См. полный код в оригинале
}
Схема подключения
Схема доступна в разделе Schematics оригинального проекта (файл .jpg).
Идеи для развития
- Добавьте звук (пьезо-зумер) для озвучивания.
- Используйте больше кнопок или энкодер для навигации по меню.
- Подключите Bluetooth-модуль для управления с телефона.
- Реализуйте простую «ИИ»-логику: рандомизируйте ответы, запоминайте выборы.
Производственный процесс
- Игра «UFO Attack» на Arduino UNO и матрице MAX7219 — Собираем аркаду с джойстиком Atari
- Создание осциллографа на Arduino Nano с дисплеем Nokia 5110 (20 кГц): простое DIY-руководство
- Умные шторы: автоматическое управление светом на Arduino с солнечной энергией
- 3D RGB Arduclock — Bluetooth-часы на адресных LED с RTC
- Мониторинг состояния реки: Arduino-система контроля качества воды
- Простой ИК-датчик препятствий на Arduino: ИК-светодиод и фотодиод
- Интерактивная игра с джойстиком и LED-обратной связью на Arduino
- Find Me: Умный поисковик вещей на Arduino и Bluetooth
- Самодельный осциллограф на Arduino Nano (10 Гц – 50 кГц) с ЖК-дисплеем 128×64
- Маленький ровер на Arduino: собираем автономного робота своими руками