盲文打印机的制作

电子说

1.3w人已加入

描述

步骤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:注意

此项目仅供参考。我将尝试通过详细步骤来制作另一个。这个项目是在一天之内完成的。]

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分