Përmbajtje:
- Furnizimet
- Hapi 1: Ndërtimi i Bazës
- Hapi 2: Pjesa Servo
- Hapi 3: Shtimi i Servo Motor dhe Paper Roll në Bazë
- Hapi 4: Ndërtimi i Kornizës së Motorit Stepper
- Hapi 5: Përfundimi i Prekjeve
- Hapi 6: Elektronikë
- Hapi 7: Zgjidhja e problemeve
Video: Arduino Morse Code Writer: 7 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:10
Kam krijuar një robot që mund të konvertojë çdo tekst të dhënë në kodin Morse dhe pastaj ta shkruajë !! Madeshtë bërë nga kartoni dhe Lego dhe për pajisjet elektronike kam përdorur Arduino dhe vetëm dy motorë.
Furnizimet
Arduino Uno bord Stepper motor Micro servo SG90ULN2003 stepper motor modul shoferi Moduli i furnizimit me energji Moduli i furnizimit me energji Breadboard4 w Telat e kërcyesit 6 ires Tela dupont femrash nga meshkujt 9V1A Përshtatës Kabllo USB USB 2 d Dowels prej druri 2 × Springs Letër e bardhë Letër ngjitës Ngjitës mbajtëse stilolapsi) Prerës gërshërë
Hapi 1: Ndërtimi i Bazës
Filloni duke ndërtuar bazën. Miniera është 4 kunja e gjerë dhe 20 kunja e gjatë, pasi ndërtova një shtresë me ato gjatësi, ndërtova një bordurë me një kunj të gjerë rreth saj duke lënë një boshllëk në njërën anë për të lënë hapësirë për motorin stepper, pastaj shtova copat e pllakave në pjesën e mesme ku do të jetë shiriti i letrës. Përdorimi i Lego e bëri atë shumë të fortë dhe të lehtë për tu modifikuar. Për ta bërë letrën të rrotullohet, unë kam prerë shirita letre A4 1,2 cm të gjerë (e zgjodha këtë gjerësi sepse është e njëjta gjerësi me rrotën Lego që kam përdorur, ju mund ta bëni tuajin më të madh ose më të vogël në varësi të timonit tuaj) dhe i ngjita skajet e tyre së bashku për të formuar një shirit shumë të gjatë, pastaj e mbështolla atë rreth timonit.
Hapi 2: Pjesa Servo
Për këtë hap ju nevojiten:
- dy kunja druri 4 cm të gjatë
- dy burime 2 cm të gjatë
- një kashtë të prerë në dy pjesë 2 cm të gjata secila
- një copë kartoni 12cm me 4cm
- dy copa kartoni 4cm me 1.5cm
- një copë kartoni 4cm me 2cm
Së pari, ngjitni kunjat në njërën prej 4 me 1.5 copë, pastaj futni burimet dhe kashtat në kunjat, pastaj ngjiteni pjesën tjetër të kartonit në anën tjetër për të mbajtur gjithçka në vend.
Së dyti, ngjiteni pjesën 4cm me 2cm në majë të kashtave.
Së treti, rrokullisni të gjithë pjesën dhe ngjitni një kunj të vogël në pjesën e pasme të tij, jo në mes, por pak në të majtë. (Kam harruar të shtoj kunj të vogël në foton e parë)
Së fundi, prerë një vrimë në copën e madhe të kartonit me madhësinë e pjesës së përparme të motorit servo dhe ngjiteni motorin, pastaj ngjiteni copën që sapo kemi bërë me dowels në pjesën e madhe në mënyrë që kur servo të lëvizë, të shtyjë kunj i vogël poshtë i cili nga ana tjetër i shtyn edhe burimet poshtë.
Përfundova duke prerë rreth 3 cm nga pjesa e poshtme e pjesës 12cm me 4cm dhe ngjitja dy pjesë të tjera 4cm me 1.5cm në të, pastaj e mbulova atë me një copë kartoni 5.5cm me 4cm. Dhe për të mbajtur shënuesin bëra një të vogël lak të brezit elastik dhe e ngjita në një copë të vogël kartoni, pastaj e ngjita atë në copën 4cm me 2cm e cila do të lëvizë poshtë kur të fillojë servo. Këto shtesa ndaluan shënuesin të lëvizte nga njëra anë në tjetrën kur burimet të kthehen përsëri.
Hapi 3: Shtimi i Servo Motor dhe Paper Roll në Bazë
Shtova dy tulla të tjera në njërën anë të bazës për të mbështetur copën servo dhe e ngjita në vend. Pastaj shtova timonin në skajin më të largët të bazës.
Hapi 4: Ndërtimi i Kornizës së Motorit Stepper
Ky hap ishte pak sfidë, sepse motori nuk ishte bërë për t'u përshtatur me Lego në mënyrë perfekte. Sidoqoftë, unë arrita ta bëj duke përdorur dy vrimat në motor për ta siguruar atë në vend. Tjetra, unë ngjita një rrotë Lego në majë të motorit dhe pastaj e vendosa atë pranë bazës në anën që e lashë hapur në hapin 1.
Hapi 5: Përfundimi i Prekjeve
Shtova dy copa harku për të mbuluar timonin për të rregulluar letrën në vend. Dhe shtova dy copa më të vogla të harkut një për të mbajtur telat e motorit stepper dhe një tjetër për të mbajtur letrën. Së fundmi, unë ndryshova rrotën e motorit stepper në një pak më të madh që lëvizte letrën më mirë se rrota e vjetër.
Hapi 6: Elektronikë
Së fundi, duhet të lidhni motorët me Arduino dhe të ngarkoni kodin.
Ne do të fillojmë me motorin servo, lidhim tela ngjyrë kafe (teli i tokëzimit) në kunjin GND, pastaj tela e kuqe (tela e energjisë) në kunjin 5V, dhe tela portokalli (tela sinjali) në Dig #5 gjilpere. Tjetra, motori stepper, lidhni 1N1 me gërmimin #11, 1N2 me gërmimin #10, 1N3 me gërmimin #9, 1N4 me gërmimin #8, 5V në anën pozitive të dërrasës së bukës dhe kunjin e tokëzimit në anën negative të dërrasë buke. Dhe mos harroni të lidhni modulin e furnizimit me energji elektrike në pjatën e bukës duke u siguruar që anët e tij pozitive dhe negative të përafrohen saktë me anët përkatëse në tabelën e bukës. Nëse harroni ta bëni këtë, do ta ktheni fuqinë në projektin tuaj dhe nuk doni ta bëni këtë.
Për kodin, unë shkrova katër metoda, një për të shkruar një pikë, një për të shkruar një vizë dhe dy për të lënë hapësirë midis secilës shkronjë dhe secilës fjalë. Në atë mënyrë, unë thjesht mund t'i quaj këto metoda kur më duhen, në vend që t'i shkruaj përsëri për çdo shkronjë. Pastaj shkrova një lak për që kalon nëpër secilën shkronjë të tekstit dhe shkruajeni atë, Brenda tij, kam shkruar një deklaratë if për secilën shkronjë, por ju mund ta shkruani atë në një deklaratë switch nëse preferoni. Sigurisht që mund t'i shtoni kodit për t'i mundësuar programit të lexojë numra. Kur të gjitha instalimet elektrike të jenë gati, thjesht kopjoni dhe ngjisni kodin në IDE tuaj. Mos harroni të instaloni bibliotekat stepper, servo dhe string. Pas kësaj, jeni mirë të shkoni.
Si punon
Kur fillon Arduino programi shikon shkronjën e parë të tekstit., Dhe në varësi të cilës është, ai thërret funksionet që e shkruajnë atë në kodin Morse. Për shembull, kur thirret funksioni dot, servo motori vendoset në 160 i cili e zhvendos stilolapsin poshtë, pastaj kthehet në 90 i cili lejon që burimet të kthehen lart duke lëvizur stilolapsin me ta. Dhe nëse thirret funksioni dash, servo e zhvendos stilolapsin poshtë, atëherë motori stepper rrotullon timonin i cili tërheq letrën duke e bërë stilolapsin të shkruajë një dash. Dhe nëse një nga funksionet e hapësirës quhet motori stepper rrotullohet, por me stilolaps lart ai tërheq letrën duke bërë një hapësirë midis shkronjave ose fjalëve. Kur të përfundojë, shkon në shkronjën tjetër dhe përsërit të njëjtin proces. Unë shpresoj se ju pëlqen;)
Kodi
#përfshi
#include #include #includ const const stepsPerRevolution = 150; // Kjo është variabla për motorin stepper Fjalia e vargut = "*përshëndetje"; // Ndryshoni këtë ndryshore për të shkruar fjalë të ndryshme, por shkruani vetëm me shkronja të vogla dhe filloni fjalën tuaj me "*" Stepper myStepper (hapatPerRevolution, 8, 10, 9, 11); Servo myServo; // Kjo është metoda që e bën robotin të shkruajë një pikë të zbrazët pike () {Serial.println ("fillimi i pikës"); myServo.shkruaj (160); vonesa (1000); myServo.shkruaj (90); vonesa (1000); myStepper.step (hapatPerRevolution); vonesa (1000); Serial.println ("pika e kryer"); } // Kjo është metoda që e bën robotin të shkruajë një dash void dash () {Serial.println ("dash dash start"); myServo.shkruaj (160); vonesa (1000); myStepper.step (hapatPerRevolution); vonesa (1000); myServo.shkruaj (90); vonesa (1000); myStepper.step (hapatPerRevolution); vonesa (1000); Serial.println ("dash është bërë"); } // Kjo është metoda që e bën robotin të lërë një hapësirë midis secilës shkronjë void hapësirë () {Serial.println ("fillimi i hapësirës"); myServo.shkruaj (90); vonesa (1000); myStepper.step (200); vonesa (1000); Serial.println ("hapësira e kryer"); } // Kjo është metoda që e bën robotin të lërë një hapësirë më të madhe midis secilës fjalë void bigSpace () {myServo.write (90); myStepper.step (250); vonesa (1000); } void setup () {// vendosni kodin tuaj të konfigurimit këtu, për të ekzekutuar një herë: Serial.begin (9600); myStepper.setSpeed (100); myServo.tash (5); int e parë = fjali.indexOf ('*'); // ky për lak kalon nëpër secilën shkronjë të vargut dhe më pas thërret metodat e duhura për ta shkruar për (int i = 0; i <fjalia.length (); i ++) {if (fjalia.charAt (e para+i) == 'a') {Serial.print (".-"); pikë (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'b') {Serial.print ("-…"); dash (); pikë (); pikë (); pikë (); hapësirë(); } tjetër if (fjalia.charAt (e para + i) == 'c') {Serial.print ("-.-."); dash (); pikë (); dash (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'd') {Serial.print ("-.."); dash (); pikë (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'e') {Serial.print ("."); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'f') {Serial.print ("..-."); pikë (); pikë (); dash (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'g') {Serial.print ("-."); dash (); dash (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'h') {Serial.print ("…."); pikë (); pikë (); pikë (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'i') {Serial.print (".."); pikë (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'j') {Serial.print (".---"); pikë (); dash (); dash (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'k') {Serial.print ("-.-"); dash (); pikë (); dash (); hapësirë(); } tjetër if (fjalia.charAt (e para + i) == 'l') {Serial.print (".-.."); pikë (); dash (); pikë (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'm') {Serial.print ("-"); dash (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'n') {Serial.print ("-."); dash (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'o') {Serial.print ("---"); dash (); dash (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'p') {Serial.print (".--."); pikë (); dash (); dash (); pikë (); hapësirë(); } tjetër if (fjalia.charAt (e para + i) == 'q') {Serial.print ("--.-"); dash (); dash (); pikë (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'r') {Serial.print (".-."); pikë (); dash (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 's') {Serial.print ("…"); pikë (); pikë (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == 't') {Serial.print ("-"); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'u') {Serial.print ("..-"); pikë (); pikë (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'v') {Serial.print ("…-"); pikë (); pikë (); pikë (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'w') {Serial.print (".--"); pikë (); dash (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'x') {Serial.print ("-..-"); dash (); pikë (); pikë (); dash (); hapësirë(); } tjetër if (fjalia.charAt (e para + i) == 'y') {Serial.print ("-.--"); dash (); pikë (); dash (); dash (); hapësirë(); } else if (fjalia.charAt (e para + i) == 'z') {Serial.print ("-.."); dash (); dash (); pikë (); pikë (); hapësirë(); } else if (fjalia.charAt (e para + i) == '') {Serial.print ("/"); bigSpace (); }}} void loop () {// Mos shkruaj asgjë këtu}
Hapi 7: Zgjidhja e problemeve
Rrota nuk lëviz
Mund të ketë shumë fërkime midis timonit dhe letrës, provoni ta ngrini pak rrotën ose ta ndryshoni.
Rrota e tërheq letrën por më pas ajo vazhdon të rrotullohet pa e tërhequr letrën
Sigurohuni që të keni ngjitur timonin në qendër të motorit stepper
Pikat dhe pikat janë të lidhura
Kontrolloni nëse funksionet e pikës, dashit dhe hapësirës janë shkruar saktë, ato duhet të jenë kështu:
// Kjo është metoda që e bën robotin të shkruajë një pikë dotvoid () {Serial.println ("fillimi i pikës"); myServo.shkruaj (160); vonesa (1000); myServo.shkruaj (90); vonesa (1000); myStepper.step (hapatPerRevolution); vonesa (1000); Serial.println ("pika e kryer"); }
// Kjo është metoda që e bën robotin të shkruajë një dash
void dash () {Serial.println ("dash dash start"); myServo.shkruaj (160); vonesa (1000); myStepper.step (hapatPerRevolution); vonesa (1000); myServo.shkruaj (90); vonesa (1000); myStepper.step (hapatPerRevolution); vonesa (1000); Serial.println ("dash është bërë"); }
// Kjo është metoda që e bën robotin të lërë një hapësirë midis secilës shkronjë
void space () {Serial.println ("fillimi i hapësirës"); myServo.shkruaj (90); vonesa (1000); myStepper.step (200); vonesa (1000); Serial.println ("hapësira e kryer"); }
Recommended:
Dekoduesi i pemës binare Morse: 7 hapa (me fotografi)
Dekoduesi i pemës binare Morse: a.artiklet {font-size: 110.0%; font-weight: bold; font-style: italic; dekorimi i tekstit: asnjë; sfond-ngjyra: e kuqe;} a.artikuj: rri pezull {sfond-ngjyra: e zezë;} Kjo shpjegon se si të deshifroni kodin Morse duke përdorur një Arduino Uno R3.T
Crack the Code Game, Arduino Puzzle Box i bazuar: 4 hapa (me fotografi)
Crack the Code Game, Arduino Based Puzzle Box: Në këtë Instructable, unë do t'ju tregoj se si të krijoni lojën tuaj të kodit në të cilën përdorni një çelës kodues rrotullues për të supozuar kodin e gjeneruar rastësisht në kasafortë. Ka 8 LED në pjesën e përparme të kasafortës për t'ju treguar se sa prej
Arduino Yún Morse Generator: 4 hapa (me fotografi)
Arduino Yún Morse Generator: A keni qenë ndonjëherë në një bar ku nuk mund të flisnit me mikun tuaj sepse muzika ishte shumë e fortë? mirë tani mund t'i kërkoni një birrë në Kodin Morse! Le të fillojmë
Altoids Tin Morse Code Praktika e Praktikës: 6 Hapa
Çelësi i Praktikës i Altoids Tin Morse Code: Unë kisha disa kallaj Altoid të vendosur përreth dhe vendosa të bëj një çelës praktike të Kodit Morse. Ky ka të bëjë me projektin më të thjeshtë elektronik që mund të merrni, por rezultati përfundimtar është një lloj argëtimi. Materialet: Kallaji Altoids - i zbrazët dhe i pastruarPiezo Buzzer
Morse Code Touch Keyer/Autocoder: 12 hapa (me fotografi)
Morse Code Touch Keyer/Autocoder: Unë në fakt e ndërtova këtë projekt disa kohë më parë, por mendova se dikush mund të jetë në gjendje të përdorë idenë. Unë jam një djalë i radios me proshutë dhe u futa pak vonë në jetë kur u pensionova dhe kisha kohë. Unë kam licencën time të përgjithshme tani dhe përdor telefonin (zë