Introduction: BRAILLE PRINTER

Braille printer or braille embosser (is the same thing), do the same thing as a regular printer, but it prints for blind people. Braille is named after its creator, Frenchman Louis Braille, who lost his eyesight due to a childhood accident.

A full Braille cell includes six raised dots arranged in two lateral rows each having three dots. The dot positions are identified by numbers from one through six. 64 solutions are possible from using one or more dots. A single cell can be used to represent an alphabet letter, number, punctuation mark, or even an entire word.

Step 1: Documentation

Braille printer or braille embosser (is the same thing), do the same thing as a regular printer, but it prints for blind people. Braille is named after its creator, Frenchman Louis Braille, who lost his eyesight due to a childhood accident.

First thing I do was to study the alphabet, so I start to research

A full Braille cell includes six raised dots arranged in two lateral rows each having three dots. The dot positions are identified by numbers from one through six. 64 solutions are possible from using one or more dots. A single cell can be used to represent an alphabet letter, number, punctuation mark, or even an entire word.

Step 2: Part List

Some parts is reused form old compuer and printer

  • 2x Driver
  • 1x Servo
  • 1x Arduino
  • 1x old cd reader
  • 1x wheel
  • 1x stepper from old pregular printer
  • some wires
  • glue and motivation, don't forget about motivation!

Step 3: How It Works

The wheel is actioned by stepper motor (X axis) and it drag the paper in. The Y-Axis is made from old CD reader, on top is the servo which will empos the paper.

Step 4: Arduino Software

#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 Servo myservo; Stepper motor(STEPS, in1Pin, in2Pin, in3Pin, in4Pin); Stepper mfoaie(STEPS2, in5Pin, in6Pin, in7Pin, in8Pin);

void m1 () { int steps = Serial.parseInt(); motor.step(steps); }

void m2 () { int steps2 = Serial.parseInt(); mfoaie.step(steps2); }

void servo() { myservo.write(1); delay(200); myservo.write(30); delay(200); }

void litera(char l){ if (l == ']'){mfoaie.step(2);} if (l == ';'){mfoaie.step(1);} if (l == 'A'){servo(); mfoaie.step(5);} if (l == 'B'){ servo(); motor.step(39); servo(); motor.step(-39); mfoaie.step(2);mfoaie.step(3); } if (l == 'C'){servo(); mfoaie.step(2);servo();mfoaie.step(3);} if (l == 'D'){servo(); mfoaie.step(2);servo();motor.step(39);servo();motor.step(-39);mfoaie.step(3);} if (l == 'E'){servo(); mfoaie.step(2);motor.step(39);servo();motor.step(-39);mfoaie.step(3);} if (l == 'F'){servo();motor.step(39);servo();motor.step(-39);mfoaie.step(2);servo();mfoaie.step(3);} if (l == 'G'){servo();motor.step(39);servo();mfoaie.step(2);servo();motor.step(-39);servo();mfoaie.step(3);} if (l == 'H'){servo();motor.step(39);servo();mfoaie.step(2);servo();motor.step(-39);mfoaie.step(3);} if (l == 'I'){ motor.step(39); servo(); motor.step(-39); mfoaie.step(2);servo();mfoaie.step(3);} if (l == 'J'){motor.step(39);servo();mfoaie.step(2);servo();motor.step(-39);servo();mfoaie.step(3);} if (l == 'K'){servo();motor.step(69);servo();motor.step(-69);mfoaie.step(5);} if (l == 'L'){servo();motor.step(39);servo();motor.step(30);servo();motor.step(-69);mfoaie.step(5);} if (l == 'M'){servo();motor.step(69);servo();motor.step(-69);servo();mfoaie.step(2);servo();mfoaie.step(3);} if (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);} if (l == 'O'){servo();motor.step(69);servo();motor.step(-69);servo();mfoaie.step(2);motor.step(39);servo();motor.step(-39);mfoaie.step(3);} if (l == 'P'){servo();motor.step(39);servo();motor.step(30);servo();motor.step(-69);mfoaie.step(2);servo();mfoaie.step(3);} if (l == 'Q'){servo();motor.step(39);servo();motor.step(30);servo();motor.step(-30);mfoaie.step(2);servo();motor.step(-39);servo();mfoaie.step(3);} if (l == 'R'){servo();motor.step(39);servo();motor.step(30);servo();motor.step(-30);mfoaie.step(2);servo();motor.step(-39);mfoaie.step(3);} if (l == 'S'){motor.step(39);servo();motor.step(30);servo();motor.step(-69);mfoaie.step(2);servo();mfoaie.step(3);} if (l == 'T'){motor.step(39);servo();motor.step(30);servo();motor.step(-30);mfoaie.step(2);servo();motor.step(-39);servo();mfoaie.step(3);} if (l == 'U'){servo();motor.step(69);servo();mfoaie.step(2);servo();motor.step(-69);mfoaie.step(3);} if (l == 'V'){servo();motor.step(39);servo();motor.step(30);servo();mfoaie.step(2);servo();motor.step(-69);mfoaie.step(3);} if (l == 'W'){motor.step(39);servo();motor.step(30);mfoaie.step(2);servo();motor.step(-30);servo();motor.step(-39);servo();mfoaie.step(3);} if (l == 'X'){servo();motor.step(69);servo();mfoaie.step(2);servo();motor.step(-69);mfoaie.step(3);} if (l == 'Y'){servo();motor.step(69);servo();mfoaie.step(2);servo();motor.step(-30);servo();motor.step(-39);servo();mfoaie.step(3);} if (l == 'Z'){servo();motor.step(69);servo();mfoaie.step(2);servo();motor.step(-30);servo();motor.step(-39);mfoaie.step(3);} }

//steps depend of what kind of stepper you use and the distance between holes. see pic.

void setup() { // initialize serial communication: Serial.begin(9600); pinMode(in1Pin, OUTPUT); pinMode(in2Pin, OUTPUT); pinMode(in3Pin, OUTPUT); pinMode(in4Pin, OUTPUT); pinMode(in5Pin, OUTPUT); pinMode(in6Pin, OUTPUT); pinMode(in7Pin, OUTPUT); pinMode(in8Pin, OUTPUT); Serial.begin(9600); myservo.attach(4); myservo.write(40); motor.setSpeed(100); mfoaie.setSpeed(50); // delay(10000); }

void loop() { // read the sensor: if (Serial.available() > 0) { char inByte = Serial.read(); litera(inByte);

}}

Step 5: Attention

This project is for overview. I will try to make another one with detailed steps. This project was made in one day.]

THANKS! :)

Comments

author
R Jordan Kreindler (author)2016-10-21

Thank you for taking the time to post. Quite interesting.

The very best.

About This Instructable

1,580views

26favorites

License:

More by Tezeusz:BRAILLE PRINTERLamp with bulbLCD 16x2, arduino and special software (liShowLCD)
Add instructable to: