简单的空中翻书的实现
简单的空中翻书的实现
所需硬件
USB接口arduino板一个 约100多块钱
http://dl.iteye.com/upload/attachment/416547/3bc3877e-0216-32bb-8680-999507153231.jpg
用arduino电路板的目的是能够把各种传感器和电脑相连接,很简单
数字避障传感器2个 每个25元
http://dl.iteye.com/upload/attachment/416543/6d4d1311-7b0a-329a-8600-d206f4691824.jpg
这个传感器相当于红外开关,当传感器前方有物体障碍时,读取这个传感器的两种开关状态
翻书感应原理
当手臂在每个传感器上方划过时,记录该传感器的时间,比较这两个时间值,如果这个值的绝对值介于设定的阈值内(防止划过的时间过快或者过慢)则表示一个划过的动作,当这个差值大于0时 表示一个方向,如果这个差值小于0,则表示是相反的方向。
产生感应动作后,arduino向主机发送一个串口命令,电脑程序读取到命令,根据命令的方向向软件发送前翻页或者后翻页的控制命令。
传感器连接方法:
红线接板子上的5v端口
绿线接公共地端口
第一个传感器黄线接数字端口30
第二个传感器黄线接数字端口35
(可根据需要自定义)
arduino程序:
const int button1Pin = 30;const int button2Pin = 35;const int ledPin =13;int button1State = 0;int button2State = 0;int A = 0;int B = 0;int C = 0;void setup() {Serial.begin(9600);pinMode(ledPin, OUTPUT); pinMode(button1Pin, INPUT); pinMode(button2Pin, INPUT); }void loop(){button1State = digitalRead(button1Pin);if (button1State == HIGH) { digitalWrite(ledPin, LOW);} else { digitalWrite(ledPin, HIGH); A = millis();} button2State = digitalRead(button2Pin);if (button2State == HIGH) { digitalWrite(ledPin, LOW);} else { digitalWrite(ledPin, HIGH); B = millis();} C = abs(A - B);if(C>10 && C<1000){ if(A>B) Serial.print("1"); else Serial.print("2"); A = 0; B = 0; delay(500);}}
附一个开源的flash电子书
http://www.megazine3.de/
实现之后又想到一种更简便省钱的方法是用过摄像头 通过感应画面的向左或向右的变化量
页:
[1]