Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Pohjan rakentaminen
- Vaihe 2: Servopala
- Vaihe 3: Servomoottorin ja paperirullan lisääminen alustaan
- Vaihe 4: Askelmoottorin rungon rakentaminen
- Vaihe 5: Viimeistely
- Vaihe 6: Elektroniikka
- Vaihe 7: Vianetsintä
Video: Arduino Morse Code Writer: 7 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Tein robotin, joka voi muuntaa minkä tahansa tekstin Morse -koodiksi ja kirjoittaa sen sitten ylös !! Se on valmistettu pahvista ja Legosta, ja elektroniikassa käytin Arduinoa ja vain kahta moottoria.
Tarvikkeet
Arduino Uno -levy Askelmoottori Mikro-servo SG90ULN2003 askelmoottorin ohjainmoduuli Virtalähdemoduuli Leipälevy4 × Hyppyjohdot6 × Naaras-uros-dupontijohdot 9V1A-sovitinUSB-kaapeli Pahvi 2 × Puiset tapit 2 × Jouset Olki Valkoinen paperiLegoSuper-liima Kuuma liimapistooli Joustava nauha (kynäteline) Sakset
Vaihe 1: Pohjan rakentaminen
Aloita rakentamalla pohja. Minun on 4 nastaa leveä ja 20 nastaa pitkä, kun olen rakentanut yhden kerroksen näillä pituuksilla, rakensin sen ympärille yhden nastaisen leveän reunan jättäen raon toiselle puolelle, jotta jätän tilaa askelmoottorille, ja lisäsin laattapalat keskiosaan, johon paperinauha tulee. Legon avulla se oli erittäin tukeva ja helppo muokata. Paperirullan tekemiseksi leikkasin 1,2 cm leveitä A4 -paperinauhoja (valitsin tämän leveyden, koska se on sama leveys kuin käyttämäni Lego -pyörä, voit suurentaa tai pienentää pyörääsi riippuen) ja liimasin niiden päät yhteen muodostaen yhden erittäin pitkän nauhan, sitten käärin sen pyörän ympärille.
Vaihe 2: Servopala
Tätä vaihetta varten tarvitset:
- kaksi 4 cm pitkää puista tappia
- kaksi 2 cm pitkää jousta
- yksi olki leikataan kahteen 2 cm pituiseen osaan
- yksi 12 cm x 4 cm pahvi
- kaksi 4 x 1,5 cm pahvia
- yksi 4 x 2 cm pahvi
Liimaa tapit ensin yhteen 4 x 1,5 kappaleesta, työnnä sitten jouset ja oljet tappeihin ja liimaa sitten toinen pahvi toisella puolella pitääksesi kaikki paikoillaan.
Toiseksi liimaa 4 x 2 cm: n kappale olkien päälle.
Kolmanneksi, käännä koko kappale ympäri ja liimaa pieni tappi sen taakse, ei keskelle vaan hieman vasemmalle. (Unohdin lisätä pienen tapin ensimmäiseen kuvaan)
Leikkaa lopuksi isoon pahvipalaan reikä, joka on servomoottorin etuosan kokoinen, ja liimaa moottori sisään, liimaa sitten juuri tekemämme osa tapilla isoun kappaleeseen niin, että kun servo liikkuu, se työntää pieni tappi alas, joka puolestaan työntää myös jouset alas.
Lopulta leikkasin noin 3 cm 12 cm x 4 cm kappaleen alaosasta ja liimasin siihen vielä kaksi 4 cm x 1,5 cm kappaletta ja peitin sen sitten 5,5 x 4 cm pahvilla. elastisen nauhan silmukka ja liimasin sen pieneen pahvipalaan, sitten liimasin sen 4 x 2 cm: n kappaleeseen, joka liikkuu alas, kun servo käynnistyy. Nämä lisäykset estivät merkin liikkumisen sivulta toiselle, kun jouset tulevat takaisin ylös.
Vaihe 3: Servomoottorin ja paperirullan lisääminen alustaan
Lisäsin vielä kaksi tiiliä alustan toiselle puolelle tukemaan servokappaletta ja liimasin sen paikalleen. Sitten lisäsin pyörän pohjan ääripäähän.
Vaihe 4: Askelmoottorin rungon rakentaminen
Tämä vaihe oli hieman haasteellinen, koska moottoria ei tehty sopimaan täydellisesti Legon kanssa. Kuitenkin onnistuin tekemään sen käyttämällä moottorin kahta reikää sen kiinnittämiseksi paikalleen. Seuraavaksi liimasin Lego -pyörän moottorin kärkeen ja laitoin sen sitten alustan viereen sillä puolella, jonka jätin auki vaiheessa 1.
Vaihe 5: Viimeistely
Lisäsin kaksi kaariosaa pyörän peittämiseksi, jotta paperi kiinnittyy paikalleen. Ja lisäsin kaksi pienempää kaarikappaletta, joista toinen piteli askelmoottorin johtoja ja toinen paperia. Lopuksi vaihdoin askelmoottorin pyörän hieman isompaan, joka liikutti paperia paremmin kuin vanha pyörä.
Vaihe 6: Elektroniikka
Lopuksi sinun on kytkettävä moottorit Arduinoon ja ladattava koodi.
Aloitamme servomoottorilla, liitä ruskea johto (maadoitusjohto) GND -nastaan, sitten punainen johto (virtajohto) 5 V: n napaan ja oranssi johto (signaalijohto) Dig #5: een tappi. Seuraavaksi askelmoottori, liitä 1N1 kaivaimeen #11, 1N2 kaivoon #10, 1N3 kaivoon #9, 1N4 kaivaukseen #8, 5V leipälevyn positiiviseen puoleen ja maadoitustappi negatiiviseen puoleen leipälauta. Älä myöskään unohda kytkeä virtalähdemoduulia leipälevyyn varmistaen, että sen positiiviset ja negatiiviset puolet ovat kohdakkain leipälevyn vastaavien sivujen kanssa. Jos unohdat tehdä niin, käännät projektisi voiman etkä halua tehdä sitä.
Koodille kirjoitin neljä tapaa, yksi pisteiden kirjoittamiseen, yhdysviiva ja kaksi kirjaimen ja sanan väliin jättämiseen. Tällä tavalla voin vain soittaa näihin menetelmiin, kun tarvitsen niitä sen sijaan, että kirjoittaisin sen uudelleen jokaiselle kirjeelle. Sitten kirjoitin for -silmukan, joka kulkee tekstin jokaisen kirjaimen läpi ja kirjoittaa sen, sen sisällä kirjoitin if -lauseen jokaiselle kirjaimelle, mutta voit kirjoittaa sen kytkentälausekkeeseen, jos haluat. Voit tietysti lisätä koodin, jotta ohjelma voi lukea numeroita. Kun kaikki johdot on valmis, kopioi ja liitä koodi IDE -laitteeseesi. Älä unohda asentaa askel-, servo- ja merkkijonokirjastoja. Sen jälkeen on hyvä mennä.
Kuinka se toimii
Kun Arduino käynnistyy, ohjelma katsoo tekstin ensimmäistä kirjainta. Ja riippuen siitä, mikä se on, se kutsuu funktiot, jotka kirjoittavat sen Morse -koodilla. Esimerkiksi kun pistefunktiota kutsutaan, servomoottori on asetettu 160: een, joka siirtää kynää alaspäin, sitten se asetetaan takaisin 90: een, jolloin jouset tulevat takaisin ylös liikuttaen kynää mukanaan. Ja jos kojelautaustoimintoa kutsutaan, servo siirtää kynää alaspäin, askelmoottori pyörii pyörää, joka vetää paperia ja saa kynän kirjoittamaan viivan. Ja jos yhtä välilyönnin funktioista kutsutaan askelmoottoriksi, se pyörii kynän ollessa ylöspäin, joten se vetää paperia ja tekee välilyönnin kirjainten tai sanojen väliin. Kun se on tehty, se siirtyy seuraavaan kirjaimeen ja toistaa saman prosessin. Toivottavasti pidät siitä;)
Koodi
#sisältää
#include #include #include const int stepsPerRevolution = 150; // Tämä on askelmoottorin muuttuja String lause = "*hei"; // Muuta tämä muuttuja kirjoittamaan erilaisia sanoja, mutta vain pienillä kirjaimilla ja aloita sanasi "*" Stepper myStepper (stepsPerRevolution, 8, 10, 9, 11); Servo myServo; // Tämä on menetelmä, joka saa robotin kirjoittamaan pisteen tyhjä piste () {Serial.println ("dot start"); myServo.write (160); viive (1000); myServo.write (90); viive (1000); myStepper.step (stepsPerRevolution); viive (1000); Serial.println ("piste valmis"); } // Tämä on menetelmä, joka saa robotin kirjoittamaan viivan void dash () {Serial.println ("dash start"); myServo.write (160); viive (1000); myStepper.step (stepsPerRevolution); viive (1000); myServo.write (90); viive (1000); myStepper.step (stepsPerRevolution); viive (1000); Serial.println ("viiva valmis"); } // Tämä on menetelmä, joka saa robotin jättämään välilyönnin jokaisen kirjaimen väliin tyhjä tila () {Serial.println ("space start"); myServo.write (90); viive (1000); myStepper.step (200); viive (1000); Serial.println ("tilaa tehty"); } // Tämä on menetelmä, joka saa robotin jättämään suuremman välilyönnin jokaisen sanan väliin void bigSpace () {myServo.write (90); myStepper.step (250); viive (1000); } void setup () {// laita asennuskoodi tähän, jotta se suoritetaan kerran: Serial.begin (9600); myStepper.setSpeed (100); myServo.attach (5); int ensimmäinen = lause.indexOf ('*'); // tämä silmukalle käy läpi jokaisen merkkijonon kirjaimen ja kutsuu sitten oikeat menetelmät kirjoittaa se (int i = 0; i <lause.pituus (); i ++) {if (lause.charAt (ensimmäinen+i) == 'a') {Serial.print (".-"); piste(); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'b') {Sarjajälki ("-…"); viiva (); piste(); piste(); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'c') {Sarjajälki ("-.-."); viiva (); piste(); viiva (); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'd') {Sarjajälki ("-.."); viiva (); piste(); piste(); välilyönti (); } else if (lause.charAt (ensimmäinen + i) == 'e') {Sarjajälki ("."); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'f') {Sarjajälki ("..-."); piste(); piste(); viiva (); piste(); välilyönti (); } else if (lause.charAt (ensimmäinen + i) == 'g') {Sarjajälki ("-."); viiva (); viiva (); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'h') {Sarjajälki ("…."); piste(); piste(); piste(); piste(); välilyönti (); } else if (lause.charAt (ensimmäinen + i) == 'i') {Sarjajälki (".."); piste(); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'j') {Sarjajälki (".---"); piste(); viiva (); viiva (); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'k') {Sarjajälki ("-.-"); viiva (); piste(); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'l') {Sarjajälki (".-.."); piste(); viiva (); piste(); piste(); välilyönti (); } else if (lause.charAt (ensimmäinen + i) == 'm') {Sarjajälki ("-"); viiva (); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'n') {Sarjajälki ("-."); viiva (); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'o') {Sarjajälki ("---"); viiva (); viiva (); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'p') {Sarjajälki (".--."); piste(); viiva (); viiva (); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'q') {Sarjajälki ("--.-"); viiva (); viiva (); piste(); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'r') {Sarjajälki (".-."); piste(); viiva (); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 's') {Sarjajälki ("…"); piste(); piste(); piste(); välilyönti (); } else if (lause.charAt (ensimmäinen + i) == 't') {Sarjajälki ("-"); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'u') {Sarjajälki ("..-"); piste(); piste(); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'v') {Sarjajälki ("…-"); piste(); piste(); piste(); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'w') {Sarjajälki (".--"); piste(); viiva (); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'x') {Sarjajälki ("-..-"); viiva (); piste(); piste(); viiva (); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == 'y') {Sarjajälki ("-.--"); viiva (); piste(); viiva (); viiva (); välilyönti (); } else if (lause.charAt (ensimmäinen + i) == 'z') {Sarjajälki ("-.."); viiva (); viiva (); piste(); piste(); välilyönti (); } muu jos (lause.charAt (ensimmäinen + i) == '') {Sarja.jälki ("/"); bigSpace (); }}} void loop () {// Älä kirjoita tähän mitään}
Vaihe 7: Vianetsintä
Pyörä ei liiku
Pyörän ja paperin välillä saattaa olla liikaa kitkaa, yritä nostaa pyörää hieman tai vaihtaa sitä.
Pyörä vetää paperia, mutta sitten se jatkaa pyörimistä vetämättä paperia
Varmista, että olet liimaillut pyörän askelmoottorin keskelle
Pisteet ja viivat yhdistetään
Tarkista, onko piste-, viiva- ja välilyöntitoiminnot kirjoitettu oikein, niiden pitäisi olla seuraavanlaisia:
// Tämä on menetelmä, joka saa robotin kirjoittamaan pisteettömän pisteen () {Serial.println ("dot start"); myServo.write (160); viive (1000); myServo.write (90); viive (1000); myStepper.step (stepsPerRevolution); viive (1000); Serial.println ("piste valmis"); }
// Tämä on menetelmä, joka saa robotin kirjoittamaan viivan
void dash () {Serial.println ("viivan alku"); myServo.write (160); viive (1000); myStepper.step (stepsPerRevolution); viive (1000); myServo.write (90); viive (1000); myStepper.step (stepsPerRevolution); viive (1000); Serial.println ("viiva valmis"); }
// Tämä on menetelmä, joka saa robotin jättämään välilyönnin jokaisen kirjaimen väliin
tyhjä tila () {Serial.println ("välilyönti"); myServo.write (90); viive (1000); myStepper.step (200); viive (1000); Serial.println ("tilaa tehty"); }
Suositeltava:
Morse Code -asema: 3 vaihetta
Morse Code Station: Dit-dit-dah-dah! Opi Morse -koodia tällä helpolla Arduino Uno -projektilla.Tämä helppo Arduino -projekti on Morse Code -asema. Morse -koodi on viestintämenetelmä, joka koodaa merkkejä pisteiden ja viivojen sarjana. Tämä piiri käyttää pietsosummeria
LabDroid: Morse Code Encoder/Decoder: 4 vaihetta
LabDroid: Morse Code Encoder/Decoder: Huomautus: Tätä ohjetta ei voi toteuttaa 1: 1 LabDroidin uusimmassa versiossa. Päivitän sen pian. Tämä projekti näyttää sinulle, mitä voit tehdä LabDroidilla. Koska Hello World tehdään yleensä tekstin, valon tai äänen perusteella, ajattelin LabDr: tä
USB Arduino Morse Code -avain: 6 vaihetta
USB Arduino Morse Code Key: Oletko koskaan halunnut kirjoittaa tietokoneella morse -koodiavaimella tai oppia/opettaa morse -koodia? Olet oikealla sivulla! Muita projekteja varten katso verkkosivustoni calvin.sh
Arduino Morse Code -lähetin: 11 vaihetta
Arduino Morse Code Transmitter: Tässä ohjeessa käytät Arduino Unoa luomaan Morse Code -lähetin ja lukemaan lähettämäsi viestit sarjamonitorin avulla. Tarvittavat osat: Arduino Uno -leipälevyBuzzerButtons
Morse Code Touch Keyer/Autocoder: 12 vaihetta (kuvilla)
Morse Code Touch Keyer/Autocoder: Itse rakensin tämän projektin jokin aika sitten, mutta ajattelin, että joku voisi käyttää ideaa. Olen kinkkuradio -kaveri ja pääsin siihen vähän myöhässä, kun jäin eläkkeelle ja minulla oli aikaa. Minulla on nyt yleinen lisenssi ja käytän puhelinta (vo