Taula de continguts:
- Subministraments
- Pas 1: Construir la base
- Pas 2: el Servo Piece
- Pas 3: Afegir el servomotor i el rotlle de paper a la base
- Pas 4: construcció del marc del motor pas a pas
- Pas 5: Acabat de tocs
- Pas 6: electrònica
- Pas 7: resolució de problemes
Vídeo: Arduino Morse Code Writer: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:11
He creat un robot que pot convertir qualsevol text en codi Morse i després escriure-ho !! Està fet de cartró i Lego i per a l'electrònica he fet servir Arduino i només dos motors.
Subministraments
Taula Arduino Uno Motor pas a pas Micro servo SG90ULN2003 mòdul de controlador de motor pas a pas Mòdul de subministrament d’energia Taula de pa 4 × cables de pont 6 × cables dupont femella a home Adaptador de cable USB USB 2 × clavilles de fusta 2 × ressorts paper blanc de palla LegoSuper cola pistola de cola calenta Banda elàstica porta-bolígrafs) Talladora de tisores
Pas 1: Construir la base
Comenceu construint la base. El meu fa 4 tacs d’amplada i 20 tacs de llarg, després de construir una capa amb aquestes longituds, he construït un tauler ampli al voltant d’ell deixant un buit per un costat per deixar espai al motor pas a pas, i després he afegit peces de rajoles fins a la part central on hi haurà la tira de paper. L’ús de Lego el va fer molt robust i fàcil de modificar. Per fer el rotlle de paper, he tallat tires de paper A4 d’1,2 cm d’amplada (he escollit aquesta amplada perquè té la mateixa amplada que la roda de Lego que he utilitzat, podeu fer la vostra més gran o més petita segons la vostra roda) i he enganxat els seus extrems per formar una tira molt llarga, la vaig embolicar al voltant de la roda.
Pas 2: el Servo Piece
Per a aquest pas cal:
- dues clavilles de fusta de 4cm de llarg
- dues molles de 2cm de llarg
- una palla tallada en dos trossos de 2cm de llargada cadascun
- un tros de cartró de 12cm per 4cm
- dos trossos de cartró de 4cm per 1,5cm
- un tros de cartró de 4cm per 2cm
En primer lloc, enganxeu les clavilles a una de les peces de 4 per 1,5, després introduïu les molles i les palletes a les clavilles i, a continuació, enganxeu l’altra peça de cartró de l’altre costat per mantenir-ho tot al seu lloc.
En segon lloc, enganxeu la peça de 4cm per 2cm a sobre de les palletes.
En tercer lloc, gireu tota la peça i enganxeu un petit tac a la part posterior, no al centre, sinó lleugerament a l'esquerra. (He oblidat afegir el petit tac a la primera imatge)
Finalment, talleu un forat a la peça gran de cartró de la mida de la part frontal del servomotor i enganxeu-lo, després enganxeu la peça que acabem de fer amb els tacs a la peça gran de manera que, quan el servo es mou, empeny petit tac cap avall que al seu torn empeny també les molles cap avall.
Vaig acabar tallant uns 3cm de la part inferior de la peça de 12cm per 4cm i enganxant-hi dues peces més de 4cm per 1,5cm i després cobrint-la amb un tros de cartró de 5,5cm per 4cm. I per agafar el marcador vaig fer un petit bucle de banda elàstica i el vaig enganxar a un petit tros de cartró i després el vaig enganxar a la peça de 4cm per 2cm que es desplaçarà cap avall quan s'iniciï el servo. Aquests afegits van impedir que el marcador es mogués d'un costat a un altre quan les molles tornen a pujar.
Pas 3: Afegir el servomotor i el rotlle de paper a la base
Vaig afegir dos maons més a un costat de la base per suportar la peça del servo i l’he enganxat al seu lloc, i després he afegit la roda a l’extrem de la base.
Pas 4: construcció del marc del motor pas a pas
Aquest pas va suposar un repte, ja que el motor no estava adaptat perfectament a Lego. Tot i això, ho vaig aconseguir fent servir els dos forats del motor per fixar-lo al seu lloc. A continuació, vaig enganxar una roda de Lego a la punta del motor i després la vaig posar just al costat de la base del costat que vaig deixar obert al pas 1.
Pas 5: Acabat de tocs
He afegit dues peces d’arc per tapar la roda i fixar el paper al seu lloc. I he afegit dues peces d’arc més petites, una per subjectar els cables del motor pas a pas i una altra per subjectar el paper. Per últim, vaig canviar la roda del motor pas a pas per una de més gran que movia el paper millor que l’antiga.
Pas 6: electrònica
Finalment, heu de connectar els motors a l’Arduino i penjar el codi.
Començarem amb el servomotor, connectarem el fil marró (el fil de terra) al pin GND, després el fil vermell (el fil d’alimentació) al pin de 5 V i el fil taronja (el fil de senyal) al Dig # 5 pin. A continuació, el motor pas a pas, connecteu 1N1 a la excavació # 11, 1N2 a la excavació # 10, 1N3 a la excavació # 9, 1N4 a la excavació # 8, el 5V al costat positiu de la placa i el pin de terra al costat negatiu de la taulell de pa. I no us oblideu de connectar el mòdul d’alimentació a la placa de control assegurant-vos que els seus costats positius i negatius s’alineen correctament als costats corresponents de la placa de control. Si oblideu fer-ho, invertireu el poder del vostre projecte i no voleu fer-ho.
Per al codi, he escrit quatre mètodes, un per escriure un punt, un per escriure un guió i dos per deixar espai entre cada lletra i cada paraula. D’aquesta manera, només puc trucar a aquests mètodes quan els necessiti en lloc d’escriure’ls de nou per a cada carta. Llavors vaig escriure un bucle for que recorre cada lletra del text i l’escrivia. Dins d’ella, vaig escriure una sentència if per a cada lletra, però podeu escriure-la en una sentència switch si ho preferiu. Per descomptat, podeu afegir-lo al codi per permetre que el programa pugui llegir números. Quan tot el cablejat estigui a punt, només cal que copieu i enganxeu el codi al vostre IDE. No us oblideu d’instal·lar les biblioteques stepper, servo i string. Després d’això, ja estàs bé.
Com funciona
Quan Arduino inicia el programa, mira la primera lletra del text., I depèn de quina sigui, crida a les funcions que l’escriuen en codi Morse. Per exemple, quan es crida la funció de punt, el servomotor s'estableix en 160, que fa baixar el bolígraf i es torna a 90, cosa que permet que les molles tornin a pujar movent el bolígraf amb elles. I si es diu la funció de guió, el servo mou el bolígraf cap avall, el motor pas a pas gira la roda que estira el paper fent que el bolígraf escrigui un guió. I si s'anomena una de les funcions espacials, el motor pas a pas gira, però amb el bolígraf cap amunt, estira el paper fent un espai entre les lletres o les paraules. En acabar, passa a la següent lletra i repeteix el mateix procés. Espero que els agradi;)
El codi
#incloure
#include #include #include const int stepsPerRevolution = 150; // Aquesta és la variable per al motor pas a pas String sentence = "* hola"; // Canvieu aquesta variable per escriure paraules diferents, però només escriviu amb lletres petites i comenceu la vostra paraula amb "*" Stepper myStepper (stepsPerRevolution, 8, 10, 9, 11); Servo myServo; // Aquest és el mètode que fa que el robot escrigui un punt buit de punt () {Serial.println ("punt d'inici"); myServo.write (160); retard (1000); myServo.write (90); retard (1000); myStepper.step (stepsPerRevolution); retard (1000); Serial.println ("punt fet"); } // Aquest és el mètode que fa que el robot escrigui un guió buit guió () {Serial.println ("dash start"); myServo.write (160); retard (1000); myStepper.step (stepsPerRevolution); retard (1000); myServo.write (90); retard (1000); myStepper.step (stepsPerRevolution); retard (1000); Serial.println ("guió fet"); } // Aquest és el mètode que fa que el robot deixi un espai entre cada lletra buit espai () {Serial.println ("espai inicial"); myServo.write (90); retard (1000); myStepper.step (200); retard (1000); Serial.println ("espai fet"); } // Aquest és el mètode que fa que el robot deixi un espai més gran entre cada paraula buida bigSpace () {myServo.write (90); myStepper.step (250); retard (1000); } void setup () {// poseu aquí el vostre codi de configuració per executar-lo una vegada: Serial.begin (9600); myStepper.setSpeed (100); myServo.attach (5); int first = sentence.indexOf ('*'); // aquest bucle for passa per cada lletra de la cadena i després crida als mètodes adequats per escriure-la per (int i = 0; i <sentence.length (); i ++) {if (sentence.charAt (first + i) == 'a') {Serial.print (".-"); punt (); guió (); espai (); } else if (sentence.charAt (first + i) == 'b') {Serial.print ("- …"); guió (); punt (); punt (); punt (); espai (); } else if (sentence.charAt (first + i) == 'c') {Serial.print ("-.-."); guió (); punt (); guió (); punt (); espai (); } else if (sentence.charAt (first + i) == 'd') {Serial.print ("-.."); guió (); punt (); punt (); espai (); } else if (sentence.charAt (first + i) == 'e') {Serial.print ("."); punt (); espai (); } else if (sentence.charAt (first + i) == 'f') {Serial.print ("..-."); punt (); punt (); guió (); punt (); espai (); } else if (sentence.charAt (first + i) == 'g') {Serial.print ("-."); guió (); guió (); punt (); espai (); } else if (sentence.charAt (first + i) == 'h') {Serial.print ("…."); punt (); punt (); punt (); punt (); espai (); } else if (sentence.charAt (first + i) == 'i') {Serial.print (".."); punt (); punt (); espai (); } else if (sentence.charAt (first + i) == 'j') {Serial.print (".---"); punt (); guió (); guió (); guió (); espai (); } else if (sentence.charAt (first + i) == 'k') {Serial.print ("-.-"); guió (); punt (); guió (); espai (); } else if (sentence.charAt (first + i) == 'l') {Serial.print (".-.."); punt (); guió (); punt (); punt (); espai (); } else if (sentence.charAt (first + i) == 'm') {Serial.print ("-"); guió (); guió (); espai (); } else if (sentence.charAt (first + i) == 'n') {Serial.print ("-."); guió (); punt (); espai (); } else if (sentence.charAt (first + i) == 'o') {Serial.print ("---"); guió (); guió (); guió (); espai (); } else if (sentence.charAt (first + i) == 'p') {Serial.print (".--."); punt (); guió (); guió (); punt (); espai (); } else if (sentence.charAt (first + i) == 'q') {Serial.print ("--.-"); guió (); guió (); punt (); guió (); espai (); } else if (sentence.charAt (first + i) == 'r') {Serial.print (".-."); punt (); guió (); punt (); espai (); } else if (sentence.charAt (first + i) == 's') {Serial.print ("…"); punt (); punt (); punt (); espai (); } else if (sentence.charAt (first + i) == 't') {Serial.print ("-"); guió (); espai (); } else if (sentence.charAt (first + i) == 'u') {Serial.print ("..-"); punt (); punt (); guió (); espai (); } else if (sentence.charAt (first + i) == 'v') {Serial.print ("… -"); punt (); punt (); punt (); guió (); espai (); } else if (sentence.charAt (first + i) == 'w') {Serial.print (".--"); punt (); guió (); guió (); espai (); } else if (sentence.charAt (first + i) == 'x') {Serial.print ("-..-"); guió (); punt (); punt (); guió (); espai (); } else if (sentence.charAt (first + i) == 'y') {Serial.print ("-.--"); guió (); punt (); guió (); guió (); espai (); } else if (sentence.charAt (first + i) == 'z') {Serial.print ("-.."); guió (); guió (); punt (); punt (); espai (); } else if (sentence.charAt (first + i) == '') {Serial.print ("/"); bigSpace (); }}} void loop () {// No escriviu res aquí}
Pas 7: resolució de problemes
La roda no es mou
Pot haver-hi massa fregament entre la roda i el paper, proveu d’elevar una mica la roda o canviar-la.
La roda estira el paper però continua girant sense estirar el paper
Assegureu-vos que heu enganxat la roda al centre del motor pas a pas
Els punts i els guions estan connectats
Comproveu si les funcions punt, guió i espai s’escriuen correctament, haurien de ser així:
// Aquest és el mètode que fa que el robot escrigui un punt dotvoid () {Serial.println ("punt d'inici"); myServo.write (160); retard (1000); myServo.write (90); retard (1000); myStepper.step (stepsPerRevolution); retard (1000); Serial.println ("punt fet"); }
// Aquest és el mètode que fa que el robot escrigui un guió
void dash () {Serial.println ("inici de guió"); myServo.write (160); retard (1000); myStepper.step (stepsPerRevolution); retard (1000); myServo.write (90); retard (1000); myStepper.step (stepsPerRevolution); retard (1000); Serial.println ("guió fet"); }
// Aquest és el mètode que fa que el robot deixi un espai entre cada lletra
void space () {Serial.println ("espai inicial"); myServo.write (90); retard (1000); myStepper.step (200); retard (1000); Serial.println ("espai fet"); }
Recomanat:
Descodificador Morse d'arbre binari: 7 passos (amb imatges)
Descodificador Morse d'arbre binari: a.articles {font-size: 110,0%; font-pes: negreta; estil de lletra: cursiva; decoració de text: cap; background-color: red;} a.articles: hover {background-color: black;} Aquesta instrucció explica com descodificar el codi Morse mitjançant un Arduino Uno R3.T
Joc Crack the Code, caixa de trencaclosques basada en Arduino: 4 passos (amb imatges)
Crack the Code Game, caixa de trencaclosques basada en Arduino: en aquest instructiu, us mostraré com construir el vostre propi joc de codi crack en què utilitzeu un marcador de codificador rotatiu per endevinar el codi generat aleatòriament a la caixa forta. Hi ha 8 LED a la part frontal de la caixa forta que us indiquen quants
Com desmuntar un ordinador amb passos i imatges senzills: 13 passos (amb imatges)
Com desmuntar un ordinador amb passos i imatges senzills: és una instrucció sobre com desmuntar un ordinador. La majoria dels components bàsics són modulars i fàcilment eliminables. Tanmateix, és important que us organitzeu al respecte. Això us ajudarà a evitar la pèrdua de peces i també a fer el muntatge
Generador Morse Arduino Yún: 4 passos (amb imatges)
Arduino Yún Morse Generator: Alguna vegada has estat en un bar on no podies parlar amb el teu amic perquè la música era massa forta? doncs ara podeu demanar-li una cervesa al codi Morse. Comencem
The High Writer: 4 Passos
The High Writer: l'escriptor de Nova York KATSU demostra la funcionalitat de l'última eina del Graffiti Research Lab: The High Writer. Basat en dissenys anteriors de pals de pintura d’innovadors com Barry McGee i Citizens Against Ugly Street Spam, High Writer és