На старых телефонах Nokia была прекрасная игра «Змейка». Находясь в настальгических чувствах, мы решили возродить эту игру на Arduino
На старых телефонах Nokia была прекрасная игра «Змейка». Находясь в настальгических чувствах, мы решили возродить эту игру на Arduino
Наверное многие знают, что до смартфонов были еще телефоны с маленькими экранами и с 16-и голосной полифонией. Среди производителей телефонов были лидеры Nokia и Siemens. У большинства людей был Siemens, так как эти телефоны были дешевле. Телефоны Nokia считались телефонами более дорогого сегмента. Они и были сделаны качественнее.
Так вот был у меня телефон Nokia 3110. Это был «неубиваемый» телефон во всех смыслах этого слова. На этом телефоне была игра «Змейка», в которую мы с товарищами постоянно играли. На днях у нашего инженера была ностальгия по этому поводу, и он запустил эту самую игру на Arduino. Чтобы было интереснее вместо джойстика мы применили ИК-пульт с приемником.
Схема конструктора очень проста.
Для сборки проекта нам понадобились:
Подключение дисплея:
LCD |
RST |
CE |
DC |
DIN |
CLK |
VCC |
Light |
GND |
Arduino |
D19 |
D10 |
D11 |
D12 |
D13 |
3.3v |
GND |
GND |
Подключение ИК-приемника:
ИК-приемник |
OUT |
GND |
VCC |
Arduino |
D6 |
GND |
3.3v |
Стоит обратить внимание, что для каждого пульта управления свои коды. На нашем пульте для управления направлением движения змейки мы использовали клавиши «вправо», «влево», «вверх» и «вниз». Поэтому для подстановки своих значений вам следует для начала снять показания кнопок своего ИК-пульта. Скетч данной программы приводим ниже:
#include <IRremote.h> int RECV_PIN = 6; IRrec#include <IRremote.h> int RECV_PIN = 6; IRrecv irrecv(RECV_PIN); //Создаем объект получения сигнала с определенного порта decode_results results; //Переменная, хранящая результат void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Начинаем прием } void loop() { if (irrecv.decode(&results)) { //При получении сигнала... Serial.println(results.value); //выводим его значение в последовательный порт irrecv.resume(); // Получаем следующее значение } } v irrecv(RECV_PIN); //Создаем объект получения сигнала с определенного порта decode_results results; //Переменная, хранящая результат void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Начинаем прием } void loop() { if (irrecv.decode(&results)) { //При получении сигнала... Serial.println(results.value); //выводим его значение в последовательный порт irrecv.resume(); // Получаем следующее значение } }
Далее открываем Serial Monitor и видим вывод значений:
Подставляем полученные значения в этот блок программы:
Если вы все сделали правильно, то можете загрузить скетч в плату и наслаждаться игрой.