Рейтинг статьи: 3.000/5 (32 голосов).
Подключение мышки или клавиатуры к arduinoСпонсор этой страницы:
Предисловие
В одном из проектов вместо кучи кнопок и решил использовать старую мышку.
В общем удобно. На маленьком экране можно организовать меню, для изменения параметров удобно использовать колесико и т.д. А при использовании библиотеки AlexGyver для работы с кнопками, можно отслеживать одиночные и двойные нажатия кнопок и т.д.
Поискав в интернете и найдя библиотеку ps2, выяснил, что при отключенной мышке arduino зависает.
В результате библиотеку пришлось дополнить.
Дополнения и функции
Для начала я устранил зависания arduino при отключенной мышки.
Добавлена переменная boolean available, сигнализирующая, о наличии мышки.
процедура init() вынесена в библиотеку.
Добавлена процедура readall(), считывающая смещение по осям, нажатие кнопок, кручение колесика, и записывающая все это в переменные x, y, s, stat.
При отсутствии мышки readall() пытается ее проинициализировать, и в переменные x, y, s запишет 0.
В результате вышку можно подключать или отключать "на лету".
Из нюанса, при подключении на горячую, не устойчиво определяется колесико (у меня в одном случае из 10).
При включении arduino с подключенной мышкой проблем не возникало.
для совместимости оставлены read и write.
Ссылка на библиотеку ps2 для arduino
Ссылка на переписанную библиотеку ps2.zip
Файл из примера
#include
PS2 mouse(6, 5);
void setup()
{
Serial.begin(9600);
mouse.init();
if (mouse.available) {
Serial.println("Mouse init OK");
if (mouse.IM_flag>0) Serial.println("Mouse IM scroll"); else Serial.println("Mouse simple, no scroll");
} else {Serial.println("Mouse not fount");}
}
void loop()
{
mouse.readall();
Serial.print(mouse.stat, BIN);
Serial.print("\tX=");
Serial.print(mouse.x, DEC);
Serial.print("\tY=");
Serial.print(mouse.y, DEC);
Serial.print("\tscroll=");
Serial.print(mouse.s, DEC);
Serial.print("\ttype=");
Serial.print(mouse.IM_flag, DEC);
if (mouse.available) Serial.print("\tMouse OK"); else Serial.print("\tMouse not found");
Serial.println();
}
Комментарии к статье:
-
2022-06-05 15:01:41, Роман :
Доброго времени суток. не могу скачать библиотеку. обнови пожалуйста ссылку
-
2022-06-12 19:43:07, 123 :
обновил
-