使用鼠标库,你可以使用Arduino Leonardo,Micro或Due来控制计算机的屏幕光标。
这个特殊的例子使用五个按钮来移动屏幕上的光标。四个按钮是方向性的(上,下,左,右),一个是用于鼠标左键单击。来自Arduino的光标移动总是相对的。每次读取输入时,光标的位置都会相对于当前位置进行更新。
只要有一个方向按钮被按下,Arduino就会移动鼠标,在合适的方向上将HIGH输入映射到5的范围。
第五个按钮用于控制来自鼠标的左键单击。当按钮被释放时,计算机将识别事件。
你将需要以下组件:
按照电路图连接面包板上的组件,如下图所示。
在计算机上打开Arduino IDE软件。使用Arduino语言进行编码控制你的电路。通过单击“New”打开一个新的草图文件。
对于本例,你需要使用Arduino IDE 1.6.7
#include "Mouse.h" // set pin numbers for the five buttons: const int upButton = 2; const int downButton = 3; const int leftButton = 4; const int rightButton = 5; const int mouseButton = 6; int range = 5; // output range of X or Y movement; affects movement speed int responseDelay = 10; // response delay of the mouse, in ms void setup() { // initialize the buttons" inputs: pinMode(upButton, INPUT); pinMode(downButton, INPUT); pinMode(leftButton, INPUT); pinMode(rightButton, INPUT); pinMode(mouseButton, INPUT); // initialize mouse control: Mouse.begin(); } void loop() { // read the buttons: int upState = digitalRead(upButton); int downState = digitalRead(downButton); int rightState = digitalRead(rightButton); int leftState = digitalRead(leftButton); int clickState = digitalRead(mouseButton); // calculate the movement distance based on the button states: int xDistance = (leftState - rightState) * range; int yDistance = (upState - downState) * range; // if X or Y is non-zero, move: if ((xDistance != 0) || (yDistance != 0)) { Mouse.move(xDistance, yDistance, 0); } // if the mouse button is pressed: if (clickState == HIGH) { // if the mouse is not pressed, press it: if (!Mouse.isPressed(MOUSE_LEFT)) { Mouse.press(MOUSE_LEFT); } } else { // else the mouse button is not pressed: // if the mouse is pressed, release it: if (Mouse.isPressed(MOUSE_LEFT)) { Mouse.release(MOUSE_LEFT); } } // a delay so the mouse does not move too fast: delay(responseDelay); }
使用micro-USB线将电路板连接到计算机。按钮连接到引脚2至6的数字输入。确保使用10k下拉电阻。
在本章中,我们将熟悉Tableau界面中提供的各种导航功能。在运行Tableau桌面上,我们得到顶部的菜单,其中显示了我们可以导航的所...
介绍 EventDispatcher 类是分派事件的所有类的基类。 EventDispatcher 类实现了 IEventDispatcher 接口。 EventDispatcher 类允...
SDK 介绍按 Ctrl + Shift + Alt + S 弹出项目结构设置区,如上图所示。如上图标注 1 所示,IntelliJ IDEA 支持 6 种 SDK...
如文章开头演示的 Gif 实时代码模板,其实时代码模板内容为:System.out.println("-----------YouMeek.com-----------$VAR1$值="...
在 IntelliJ IDEA 的安装讲解中我们其实已经知道,IntelliJ IDEA 本身很多功能也都是通过插件的方式来实现的,只是 IntelliJ IDE...
常用设置如上图 Gif 所示,在我们按 Ctrl + Shift + N 进行打开某个文件的时候,我们可以直接定位到该文件的行数上。一...
Eclipse 查找工作空间中查找Eclipse 查找对话框中可以允许用户在指定工作空间上使用单词或字母模式来查找文件。 或者你可以在指...