Tartalomjegyzék:
- Kellékek
- 1. lépés: Az alap építése
- 2. lépés: A szervo darab
- 3. lépés: A szervomotor és a papírtekercs hozzáadása az alaphoz
- 4. lépés: A léptetőmotor keretének felépítése
- 5. lépés: Utolsó simítások
- 6. lépés: Elektronika
- 7. lépés: Hibaelhárítás
Videó: Arduino Morse Code Writer: 7 lépés (képekkel)
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Készítettem egy robotot, amely képes bármilyen szöveget Morse -kódra konvertálni, majd leírni !! Kartonból és Legóból készült, az elektronikához pedig Arduino -t és csak két motort használtam.
Kellékek
Arduino Uno tábla Léptetőmotor Mikroszervó SG90ULN2003 léptetőmotor meghajtó modul Tápegység modul Kenyértábla 4 × Jumper vezetékek 6 × Nő-férfi dupont vezetékek 9V1A adapter USB kábel Karton 2 × Fa tiplik 2 × Rugók Szalma Fehér papír LegoSuper ragasztó Forró ragasztópisztoly Rugalmas szalag (tolltartó) Ollóvágó
1. lépés: Az alap építése
Kezdje az alap építésével. Az enyém 4 csapszélességű és 20 csapszeg hosszú, miután egy réteget építettem ilyen hosszúsággal, köré építettem egy csapszeg széles szegélyt, így az egyik oldalon rés maradt, hogy helyet hagyjon a léptetőmotornak, majd hozzáadtam csempe darabokat a középső részhez, ahol a papírcsík lesz. A Lego használatával nagyon stabil és könnyen módosítható lett. A papírtekercs elkészítéséhez 1,2 cm széles A4 -es papírcsíkokat vágtam (ezt a szélességet választottam, mert szélessége megegyezik az általam használt Lego -kerékkel, a kerekétől függően nagyobb vagy kisebb lehet a tied), és összeragasztottam a végeiket. hogy egy nagyon hosszú csíkot képezzek, majd a kerék köré tekertem.
2. lépés: A szervo darab
Ehhez a lépéshez szüksége van:
- két 4 cm hosszú fa dübel
- két rugó 2 cm hosszú
- egy szalma két darab, 2 cm hosszú
- egy 12 x 4 cm -es kartonpapír
- két 4 x 1,5 cm -es kartonpapír
- egy 4 x 2 cm -es kartonpapír
Először ragassza fel a dübeleket a 4 x 1,5 darab egyikére, majd illessze a rugókat és a szívószálakat a tiplikbe, majd ragassza fel a másik kartondobozt a másik oldalra, hogy minden a helyén maradjon.
Másodszor, ragassza fel a 4 cm -es 2 cm -es darabot a szívószálak tetejére.
Harmadszor, fordítsa meg az egész darabot, és ragasszon egy kis dübelt a hátuljára, ne középre, hanem kissé balra. (Az első képen elfelejtettem hozzáadni a kis tiplit)
Végül vágjon egy lyukat a nagy kartondobozba, akkora, mint a szervomotor eleje, és ragassza be a motort, majd ragassza fel a darabot, amelyet a tiplikkel készítettünk a nagy darabhoz, hogy amikor a szervó mozog, nyomja a kis dübel le, ami viszont a rugókat is lenyomja.
Végül kb. 3 cm -re vágtam a 12 cm -es 4 cm -es darab alsó részétől, és még két 4 cm -es, 1,5 cm -es darabot ragasztottam rá, majd lefedtem egy 5,5 cm -es 4 cm -es kartonpapírral. A jelölő megtartásához készítettem egy kis rugalmas gumiszalagot, és egy kis kartondobozra ragasztottam, majd ragasztottam azt a 4 cm -es 2 cm -es darabra, amely a szervó elindulásakor lefelé mozog. Ezek a kiegészítések megakadályozták a jelölő egyik oldalról a másikra történő elmozdulását, amikor a rugók visszatérnek.
3. lépés: A szervomotor és a papírtekercs hozzáadása az alaphoz
Hozzáadtam még két téglát az alap egyik oldalához, hogy támogassa a szervódarabot, és a helyére ragasztottam. Ezután hozzáadtam a kereket az alap túlsó végéhez.
4. lépés: A léptetőmotor keretének felépítése
Ez a lépés némi kihívást jelentett, mert a motort nem úgy készítették el, hogy tökéletesen illeszkedjen a Legóhoz. Azonban sikerült megcsinálnom a motor két lyukának használatával, hogy rögzítse a helyén. Ezután a motor hegyéhez ragasztottam egy Lego kereket, majd közvetlenül az alap mellé tettem azt az oldalt, amelyet az 1. lépésben nyitva hagytam.
5. lépés: Utolsó simítások
Hozzáadtam két ívdarabot, hogy lefedje a kereket, hogy rögzítse a papírt a helyén. És hozzáadtam két kisebb ívdarabot, az egyiket a léptetőmotor vezetékeinek és egy másikat a papír tartásához. Végül kicseréltem a léptetőmotor kerekét egy kicsit nagyobbra, amely jobban mozgatta a papírt, mint a régi kerék.
6. lépés: Elektronika
Végül csatlakoztatnia kell a motorokat az Arduino -hoz, és fel kell töltenie a kódot.
Kezdjük a szervomotorral, csatlakoztassuk a barna vezetéket (a földvezetéket) a GND csaphoz, majd a piros vezetéket (a tápkábelt) az 5 V -os tűhöz, és a narancssárga vezetéket (a jelvezetéket) a Dig #5 csap. Ezután a léptetőmotor csatlakoztassa az 1N1 -et a 11. sz. kenyeretábla. És ne felejtse el csatlakoztatni a tápegység modult a kenyértáblához, ügyelve arra, hogy pozitív és negatív oldala helyesen illeszkedjen a kenyérlap megfelelő oldalaihoz. Ha elfelejti ezt megtenni, akkor visszakapcsolja a projekt hatalmát, és ezt nem akarja megtenni.
A kódhoz négy módszert írtam, egyet ponttal, egyet kötőjellel, kettőt, hogy hagyjak szóközt minden betű és szó között. Így csak hívhatom ezeket a módszereket, amikor szükségem van rájuk, ahelyett, hogy minden levélhez újra megírnám. Aztán írtam egy for ciklust, amely végigmegy a szöveg minden betűjén, és beírja, Belsejében írtam egy if utasítást minden betűhöz, de írhat egy kapcsoló utasításba, ha úgy tetszik. Természetesen hozzáadhat a kódhoz, hogy a program le tudja olvasni a számokat. Ha minden kábelezés kész, csak másolja ki és illessze be a kódot az IDE -be. Ne felejtse el telepíteni a léptető-, szervó- és karakterkönyvtárat. Ezek után nyugodtan indulhatsz.
Hogyan működik
Amikor az Arduino elindítja a programot, megnézi a szöveg első betűjét, és attól függően, hogy melyik az, meghívja azokat a függvényeket, amelyek Morse -kódban írják. Például, amikor a pont funkciót hívják meg, a szervomotor 160 -ra van állítva, amely lefelé mozgatja a tollat, majd visszaállítja 90 -re, ami lehetővé teszi a rugók visszafelé mozgatását a tollat velük együtt. Ha pedig meghívjuk a kötőjel funkciót, akkor a szervó lefelé mozgatja a tollat, majd a léptetőmotor forgatja a kereket, amely meghúzza a papírt, és a toll tollát írni. És ha az egyik szóközfunkciót léptetőmotornak hívják, akkor forog, de felfelé a tollal, így húzza a papírt, így a betűk vagy a szavak között szóköz van. Ha kész, akkor a következő betűre lép, és megismétli ugyanazt a folyamatot. Remélem, tetszik ez;)
A kód
#befoglalni
#include #include #include const int stepsPerRevolution = 150; // Ez a léptetőmotor változója String mondat = "*hello"; // Változtassa meg ezt a változót, hogy különböző szavakat írjon, de csak kis betűkkel írjon, és kezdje szavát "*" -al Stepper myStepper (stepsPerRevolution, 8, 10, 9, 11); Szervo myServo; // Ez az a módszer, amellyel a robot pont void pontot ír () {Serial.println ("dot start"); myServo.write (160); késleltetés (1000); myServo.write (90); késleltetés (1000); myStepper.step (stepsPerRevolution); késleltetés (1000); Serial.println ("pont kész"); } // Ez az a módszer, amellyel a robot kötőjelet írhat void dash () {Serial.println ("dash start"); myServo.write (160); késleltetés (1000); myStepper.step (stepsPerRevolution); késleltetés (1000); myServo.write (90); késleltetés (1000); myStepper.step (stepsPerRevolution); késleltetés (1000); Serial.println ("kötőjel kész"); } // Ez az a módszer, amellyel a robot üres teret hagy minden betű között void space () {Serial.println ("space start"); myServo.write (90); késleltetés (1000); myStepper.step (200); késleltetés (1000); Serial.println ("space done"); } // Ez az a módszer, amellyel a robot nagyobb teret hagy minden szó között void bigSpace () {myServo.write (90); myStepper.step (250); késleltetés (1000); } void setup () {// tegye ide a beállítási kódot, hogy egyszer lefusson: Serial.begin (9600); myStepper.setSpeed (100); myServo.attach (5); int első = mondat.indexOf ('*'); // ez a ciklus végigmegy a karakterlánc minden betűjén, majd meghívja a megfelelő módszereket annak leírására (int i = 0; i <mondat.length (); i ++) {if (mondat.charAt (első+i) == 'a') {Soros.nyomtatás (".-"); pont(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'b') {Serial.print ("-…"); gondolatjel(); pont(); pont(); pont(); tér(); } else if (mondat.charAt (első + i) == 'c') {Soros.nyomtatás ("-.-."); gondolatjel(); pont(); gondolatjel(); pont(); tér(); } else if (mondat.charAt (első + i) == 'd') {Serial.print ("-.."); gondolatjel(); pont(); pont(); tér(); } else if (mondat.charAt (első + i) == 'e') {Serial.print ("."); pont(); tér(); } else if (mondat.charAt (első + i) == 'f') {Serial.print ("..-."); pont(); pont(); gondolatjel(); pont(); tér(); } else if (mondat.charAt (első + i) == 'g') {Serial.print ("-."); gondolatjel(); gondolatjel(); pont(); tér(); } else if (mondat.charAt (első + i) == 'h') {Serial.print ("…."); pont(); pont(); pont(); pont(); tér(); } else if (mondat.charAt (első + i) == 'i') {Serial.print (".."); pont(); pont(); tér(); } else if (mondat.charAt (első + i) == 'j') {Soros.nyomat (".---"); pont(); gondolatjel(); gondolatjel(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'k') {Serial.print ("-.-"); gondolatjel(); pont(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'l') {Serial.print (".-.."); pont(); gondolatjel(); pont(); pont(); tér(); } else if (mondat.charAt (első + i) == 'm') {Serial.print ("-"); gondolatjel(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'n') {Serial.print ("-."); gondolatjel(); pont(); tér(); } else if (mondat.charAt (első + i) == 'o') {Serial.print ("---"); gondolatjel(); gondolatjel(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'p') {Soros.nyomat (".--."); pont(); gondolatjel(); gondolatjel(); pont(); tér(); } else if (mondat.charAt (első + i) == 'q') {Serial.print ("--.-"); gondolatjel(); gondolatjel(); pont(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'r') {Soros.nyomat (".-."); pont(); gondolatjel(); pont(); tér(); } else if (mondat.charAt (első + i) == 's') {Serial.print ("…"); pont(); pont(); pont(); tér(); } else if (mondat.charAt (első + i) == 't') {Serial.print ("-"); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'u') {Serial.print ("..-"); pont(); pont(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'v') {Serial.print ("…-"); pont(); pont(); pont(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'w') {Soros.nyomtatás (".--"); pont(); gondolatjel(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'x') {Serial.print ("-..-"); gondolatjel(); pont(); pont(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'y') {Serial.print ("-.--"); gondolatjel(); pont(); gondolatjel(); gondolatjel(); tér(); } else if (mondat.charAt (első + i) == 'z') {Serial.print ("-.."); gondolatjel(); gondolatjel(); pont(); pont(); tér(); } else if (mondat.charAt (első + i) == '') {Serial.print ("/"); bigSpace (); }}} void loop () {// Ne írj ide semmit}
7. lépés: Hibaelhárítás
A kerék nem mozog
Lehet, hogy túl nagy a súrlódás a kerék és a papír között, próbálja meg kissé felemelni vagy kicserélni a kereket.
A kerék húzza a papírt, de aztán tovább forog anélkül, hogy meghúzná a papírt
Győződjön meg arról, hogy a kereket a léptetőmotor közepére ragasztotta
A pontok és kötőjelek össze vannak kötve
Ellenőrizze, hogy a pont-, kötőjel- és szóközfüggvények helyesen vannak -e írva, ezeknek így kell lenniük:
// Ez az a módszer, amellyel a robot dotvoid pontot ír () {Serial.println ("dot start"); myServo.write (160); késleltetés (1000); myServo.write (90); késleltetés (1000); myStepper.step (stepsPerRevolution); késleltetés (1000); Serial.println ("pont kész"); }
// Ez az a módszer, amellyel a robot kötőjelet ír
void dash () {Serial.println ("kötőjel kezdete"); myServo.write (160); késleltetés (1000); myStepper.step (stepsPerRevolution); késleltetés (1000); myServo.write (90); késleltetés (1000); myStepper.step (stepsPerRevolution); késleltetés (1000); Serial.println ("kötőjel kész"); }
// Ez az a módszer, amellyel a robot minden betű között helyet hagy
void space () {Serial.println ("space start"); myServo.write (90); késleltetés (1000); myStepper.step (200); késleltetés (1000); Serial.println ("space done"); }
Ajánlott:
Morse Code Station: 3 lépés
Morse Code Station: Dit-dit-dah-dah! Ismerje meg a Morse kódot ezzel az egyszerű Arduino Uno projekttel. Ez az egyszerű Arduino projekt egy Morse Code állomás. A Morse -kód egy kommunikációs módszer, amely a karaktereket pontok és kötőjelek sorozataként kódolja. Ez az áramkör piezo hangjelzőt használ
Crack the Code Game, Arduino -alapú rejtvénydoboz: 4 lépés (képekkel)
Crack the Code Game, Arduino -alapú rejtvénydoboz: Ebben az utasításban megmutatom, hogyan kell saját crack -et létrehozni a kódjátékban, amelyben forgó kódoló tárcsával kitalálja a véletlenszerűen generált kódot a széfhez. A széf elején 8 LED található, amelyekből megtudhatja, hogy hány
Arduino Yún Morse generátor: 4 lépés (képekkel)
Arduino Yún Morse Generator: Volt már olyan bárban, ahol nem tudott beszélni a barátjával, mert túl hangos volt a zene? hát most kérhetsz tőle sört Morse -kódban! Lássunk neki
Morse Code Touch Keyer/Autocoder: 12 lépés (képekkel)
Morse Code Touch Keyer/Autocoder: Valójában én építettem ezt a projektet valamikor régen, de úgy gondoltam, hogy valaki tudja használni az ötletet. Én sonkás rádiós vagyok, és egy kicsit későn kezdtem bele, amikor nyugdíjba vonultam, és volt időm. Most megvan az általános engedélyem és használom a telefont (vo
A High Writer: 4 lépés
A High Writer: NYC író, KATSU bemutatja a Graffiti Research Lab legújabb eszközének funkcionalitását: The High Writer. Barry McGee és a Citizens Against Ugly Street Spam korábbi festőoszlopos tervei alapján a High Writer