步骤1:文档
盲文打印机或盲文压花机(是同一件事),与普通打印机做同样的事情,但它是为盲人打印的。盲文以其创建者法国人路易斯·布莱叶(Louis Braille)的名字命名,后者因儿童时期的事故而失去了视力。
我要做的第一件事是学习字母,所以我开始研究
完整的盲文单元包含六个凸起的点,这些凸起的点排列在两个横向行中,每个横向行具有三个点。点的位置由一到六的数字标识。使用一个或多个点可以实现64个解决方案。单个单元格可用于表示字母,数字,标点符号,甚至整个单词。
步骤2:部件列表
某些零件从旧的计算机和打印机中重新使用
2x驱动程序
1x伺服
1x Arduino
1x旧CD读取器
1x滚轮
1x旧步进打印机的步进器
一些电线
胶水和动力,不要忘记动力!
步骤3:工作原理
轮子由步进电机(X轴)驱动,将纸张拖入。Y轴由旧的CD读取器制成,顶部是伺服系统,将纸张放入。
第4步:Arduino软件
#include
#include
int in1Pin = 12; int in2Pin = 11; int in3Pin = 10; int in4Pin = 9;
int in5Pin = 8; int in6Pin = 7; int in7Pin = 6; int in8Pin = 5;
#define STEPS 24 #define STEPS2 56伺服myservo;步进电机(STEPS,in1Pin,in2Pin,in3Pin,in4Pin);步进电机(STEPS2,in5Pin,in6Pin,in7Pin,in8Pin);
void m1(){int steps = Serial.parseInt(); motor.step(步骤); }
void m2(){int steps2 = Serial.parseInt(); mfoaie.step(steps2); }
void伺服(){myservo.write(1);延迟(200); myservo.write(30);延迟(200); }
void litera(char l){if(l ==‘]’){mfoaie.step(2);} if(l ==‘;’){mfoaie.step(1); }如果(l ==‘A’){servo(); mfoaie.step(5);}如果(l ==‘B’){伺服(); motor.step(39);伺服(); motor.step(1-39); mfoaie.step(2); mfoaie.step(3); }如果(l ==‘C’){servo(); mfoaie.step(2); servo(); mfoaie.step(3);}如果(l ==‘D’){servo(); mfoaie.step(2); servo(); motor.step(39); servo(); motor.step(-39); mfoaie.step(3);}如果(l ==‘E’){servo( ); mfoaie.step(2); motor.step(39); servo(); motor.step(-39); mfoaie.step(3);}如果(l ==‘F’){servo(); motor。 step(39); servo(); motor.step(-39); mfoaie.step(2); servo(); mfoaie.step(3);}如果(l ==‘G’){servo(); motor.step(39); servo(); mfoaie.step(2); servo(); motor.step(-39); servo(); mfoaie.step(3);}如果(l ==‘H’ ){servo(); motor.step(39); servo(); mfoaie.step(2); servo(); motor.step(-39); mfoaie.step(3);}如果(l ==‘ I’){motor.step(39);伺服(); motor.step(1-39); mfoaie.step(2); servo(); mfoaie.step(3);}如果(l ==‘J’){motor.step(39); servo(); mfoaie.step(2); servo() ; motor.step(-39); servo(); mfoaie.step(3);}如果(l ==‘K’){servo(); motor.step(69); servo(); motor.step( -69); mfoaie.step(5);}如果(l ==‘L’){servo(); motor.step(39); servo(); motor.step(30); servo(); motor。 step(-69); mfoaie.step(5);}如果(l ==‘M’){servo(); motor.step(69); servo(); motor.step(-69); servo() ; mfoaie.step(2); servo(); mfoaie.step(3);}如果(l ==‘N’){servo(); motor.step(69); servo(); motor.step(- 69); servo(); mfoaie.step(2); servo(); motor.step(39); servo(); motor.step(-39); mfoaie.step(3);}如果(l == ‘O’){伺服(); motor.step(69);伺服(); motor.step(-69);伺服(); mfoaie.step(2); motor.step(39);伺服(); motor.step(-39); mfoaie.step(3);}如果(l ==‘P’){servo(); motor.step(39); servo(); motor.step(30); servo( ); motor.step(-69); mfoaie.step(2); servo(); mfoaie.step(3);}如果(l ==‘Q’){servo(); motor.step(39);伺服(); motor.step(30);伺服(); motor.step(-30); mfoaie.step(2);伺服(); motor.step(1-39);伺服(); mfoaie.step( 3);}如果(l ==‘R “){伺服(); motor.step(39);伺服(); motor.step(30);伺服(); motor.step(-30); mfoaie.step(2);伺服();马达。 step(-39); mfoaie.step(3);}如果(l ==’S‘){motor.step(39); servo(); motor.step(30); servo(); motor.step( -69); mfoaie.step(2); servo(); mfoaie.step(3);}如果(l ==’T‘){motor.step(39); servo(); motor.step(30) ; servo(); motor.step(-30); mfoaie.step(2); servo(); motor.step(-39); servo(); mfoaie.step(3);}如果(l ==’ U‘){servo(); motor.step(69); servo(); mfoaie.step(2); servo(); motor.step(-69); mfoaie.step(3);}如果(l = =’V‘){servo(); motor.step(39); servo(); motor.step(30); servo(); mfoaie.step(2); servo(); motor.step(-69) ; mfoaie.step(3);}如果(l ==’W‘){motor.step(39); servo(); motor.step(30); mfoaie.step(2); servo(); motor。 step(-30); servo(); motor.step(-39); servo(); mfoaie.step(3);}如果(l ==’X‘){servo(); motor.step(69) ; servo(); mfoaie.step(2); servo(); motor.step(-69); mfoaie.step(3);}如果(l ==’Y‘){servo(); motor.step( 69);伺服(); mfoaie.step(2);伺服(); motor.step(-30);伺服(); motor.step(1-39);伺服(); mfoaie.step(3);}如果(l ==’Z‘){se RVO(); motor.step(69);伺服(); mfoaie.step(2);伺服(); motor.step(-30);伺服(); motor.step(1-39); mfoaie.step( 3);}}
//步长取决于您使用哪种步进器以及孔之间的距离。
void setup(){//初始化串行通信:Serial.begin(9600); pinMode(in1Pin,输出); pinMode(in2Pin,输出); pinMode(in3Pin,输出); pinMode(in4Pin,输出); pinMode(in5Pin,输出); pinMode(in6Pin,输出); pinMode(in7Pin,输出); pinMode(in8Pin,输出); Serial.begin(9600); myservo.attach(4); myservo.write(40); motor.setSpeed(100); mfoaie.setSpeed(50);//delay(10000); }
void loop(){//读取传感器:if(Serial.available()》 0){char inByte = Serial.read(); litera(inByte);
}}
步骤5:注意
此项目仅供参考。我将尝试通过详细步骤来制作另一个。这个项目是在一天之内完成的。]
-
打印机
+关注
关注
10文章
762浏览量
45541
发布评论请先 登录
相关推荐
评论