Kazalo:
- Zaloge
- 1. korak: Gradnja baze
- 2. korak: Servo kos
- Korak 3: Dodajanje servo motorja in zvitka papirja na podlago
- 4. korak: Izdelava okvirja koračnega motorja
- 5. korak: Zaključni dotiki
- 6. korak: Elektronika
- 7. korak: Odpravljanje težav
Video: Pisatelj Mordujeve kode Arduino: 7 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:02
Naredil sem robota, ki lahko katero koli besedilo pretvori v Morzejevo kodo in ga nato zapiše !! Narejen je iz kartona in Lega, za elektroniko pa sem uporabil Arduino in samo dva motorja.
Zaloge
Arduino Uno plošča Koračni motor Mikro servo SG90ULN2003 gonilniški modul koračnega motorja Napajalni modul Breadboard 4 × Mostične žice 6 × Ženske dupont žice 9V1A Adapter USB kabel 2 × Leseni mozniki 2 × Vzmeti iz slame Beli papir LegoSuper lepilo Pištola za vroče lepilo Elastični trak (za izdelavo držalo za pero) Rezalnik za škarje
1. korak: Gradnja baze
Začnite z gradnjo osnove. Moj je širok 4 čepa in dolg 20 čepov, potem ko sem z enim slojem izdelal eno plast s takšnimi dolžinami, sem okoli njega zgradil eno obrobo, ki je na eni strani pustila vrzel, da sem pustil prostor za koračni motor, nato sem dodal kosov ploščic na srednji del, kjer bo papirnati trak. Z uporabo Lega je bil zelo trden in enostaven za spreminjanje. Za izdelavo zvitka papirja sem izrezal trakove papirja A4 širine 1,2 cm (to širino sem izbral, ker je enake širine kot Lego kolo, ki sem ga uporabil, svoje lahko naredite večje ali manjše, odvisno od vašega kolesa) in sem zlepil njihove konce da nastane en zelo dolg trak, potem sem ga ovila okoli kolesa.
2. korak: Servo kos
Za ta korak potrebujete:
- dva lesena moznika dolžine 4 cm
- dve vzmeti dolgi 2 cm
- eno slamo, razrezano na dva kosa dolžine 2 cm
- en kos lepenke velikosti 12 x 4 cm
- dva kosa kartona velikosti 4 x 1,5 cm
- en kos kartona 4 cm x 2 cm
Najprej prilepite moznike na enega od 4 x 1,5 kosov, nato vstavite vzmeti in slamice v moznike, nato pa lepite drugi kartonski kos na drugi strani, da vse drži na svojem mestu.
Drugič, lepite kos 4 cm za 2 cm na slamice.
Tretjič, celoten kos obrnite in na zadnjo stran prilepite majhen moznik, ne na sredini, ampak nekoliko levo. (Pozabil sem dodati majhen moznik na prvi sliki)
Na koncu izrežite luknjo v velikem kosu kartona v velikosti sprednje strani servo motorja in prilepite motor, nato pa kos, ki smo ga pravkar naredili z mozniki, prilepite na velik kos, tako da, ko se servo premakne, potisne majhen moznik navzdol, ki posledično potisne tudi vzmeti navzdol.
Na koncu sem izrezal približno 3 cm od spodnjega dela kosa 12 cm za 4 cm in nanj prilepil še dva kosa 4 cm za 1,5 cm, nato pa to pokril s kartonom velikosti 5,5 cm x 4 cm. zanko elastičnega traku in jo prilepila na majhen kos kartona, nato pa sem jo prilepila na kos 4 cm za 2 cm, ki se bo premaknil navzdol, ko se bo servo zagnala. Ti dodatki so preprečili premikanje označevalca od strani do strani, ko se vzmeti dvignejo.
Korak 3: Dodajanje servo motorja in zvitka papirja na podlago
Na eno stran podstavka sem dodal še dve opeki za podporo servo kosa in ga prilepil na mesto, nato pa kolo dodal na skrajni konec podnožja.
4. korak: Izdelava okvirja koračnega motorja
Ta korak je bil nekoliko izziv, saj motor ni bil popolnoma prilagojen Lego kocki. Vendar mi je to uspelo z dvema luknjama v motorju, da sem ga pritrdil. Nato sem na konico motorja prilepil Lego kolo in ga postavil tik ob podnožje na strani, ki sem jo v 1. koraku pustil odprto.
5. korak: Zaključni dotiki
Dodal sem dva ločna kosa, ki sta pokrila kolo, da je papir pritrjen na mestu. In dodal sem dva manjša loka, enega za držanje žic koračnega motorja, drugega pa za papir. Nazadnje sem spremenil kolo koračnega motorja na nekoliko večje, ki je premaknilo papir bolje kot staro kolo.
6. korak: Elektronika
Nazadnje morate motorje priključiti na Arduino in naložiti kodo.
Začeli bomo s servo motorjem, rjavo žico (ozemljitveno žico) priključili na pin GND, nato rdečo žico (napajalno žico) na 5V pin in oranžno žico (signalno žico) na Dig #5 pin. Nato koračni motor priključite 1N1 na Dig #11, 1N2 na Dig #10, 1N3 na Dig #9, 1N4 na Dig #8, 5V na pozitivno stran plošče in ozemljitveni zatič na negativno stran deska. Ne pozabite priključiti napajalnega modula na ploščo, pri čemer pazite, da se njene pozitivne in negativne strani pravilno poravnajo z ustreznimi stranicami na plošči. Če na to pozabite, boste v projekt obrnili moč in tega ne želite storiti.
Za kodo sem napisal štiri metode, eno za pisanje pike, eno za pisanje pomišljaja in dve za puščanje prostora med vsako črko in vsako besedo. Na ta način lahko pokličem te metode, ko jih potrebujem, namesto da jih za vsako črko ponovno napišem. Nato sem napisal zanko for, ki gre skozi vsako črko besedila, in jo zapisal. Znotraj nje sem napisal stavek if za vsako črko, vendar jo lahko po želji napišete v izjavi switch. Seveda lahko dodate kodo, da programu omogočite branje številk. Ko so vse napeljave pripravljene, samo kopirajte in prilepite kodo v svoj IDE. Ne pozabite namestiti knjižnic koračnih, servo in nizov. Po tem je dobro, da greste.
Kako deluje
Ko se Arduino zažene, program pogleda prvo črko besedila. Odvisno od tega, katero pokliče, pokliče funkcije, ki ga zapišejo v Morsejevo kodo. Na primer, ko se pokliče funkcija pike, je servo motor nastavljen na 160, ki premakne peresnik navzdol, nato pa nazaj na 90, kar omogoča, da se vzmeti vrnejo navzgor in premikajo pero s seboj. In če pokličete funkcijo pomišljaja, servo pomakne pero navzdol, nato koračni motor vrti kolo, ki potegne papir, zaradi česar pero napiše pomišljaj. In če se ena od preslednih funkcij imenuje koračni motor, se vrti, vendar s peresom navzgor, tako da potegne papir in naredi presledek med črkami ali besedami. Ko konča, gre na naslednjo črko in ponovi isti postopek. Upam, da vam je všeč;)
Koda
#vključi
#include #include #include const int stepsPerRevolution = 150; // To je spremenljivka koračnega motorja Niz stavka = "*zdravo"; // Spremenite to spremenljivko za pisanje različnih besed, vendar pišite samo z malimi črkami in začnite besedo z "*" Stepper myStepper (stepsPerRevolution, 8, 10, 9, 11); Servo myServo; // To je metoda, zaradi katere robot napiše piko void dot () {Serial.println ("dot start"); myServo.write (160); zamuda (1000); myServo.write (90); zamuda (1000); myStepper.step (stepsPerRevolution); zamuda (1000); Serial.println ("dot done"); } // To je metoda, zaradi katere robot napiše pomišljaj void dash () {Serial.println ("dash start"); myServo.write (160); zamuda (1000); myStepper.step (stepsPerRevolution); zamuda (1000); myServo.write (90); zamuda (1000); myStepper.step (stepsPerRevolution); zamuda (1000); Serial.println ("pomišljaj končan"); } // To je metoda, zaradi katere robot pusti prostor med vsako črko void space () {Serial.println ("space start"); myServo.write (90); zamuda (1000); myStepper.step (200); zamuda (1000); Serial.println ("presledek opravljen"); } // To je metoda, zaradi katere robot pusti več prostora med vsako besedo void bigSpace () {myServo.write (90); myStepper.step (250); zamuda (1000); } void setup () {// tukaj vnesite nastavitveno kodo, ki jo je treba zagnati enkrat: Serial.begin (9600); myStepper.setSpeed (100); myServo.attach (5); int first = stavek.indexOf ('*'); // ta zanka for gre skozi vsako črko niza in nato pokliče prave metode, da jo zapiše za (int i = 0; i <stavka.length (); i ++) {if (stavka.charAt (prva+i) == 'a') {Serial.print (".-"); pika (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'b') {Serial.print ("-…"); pomišljaj (); pika (); pika (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'c') {Serial.print ("-.-."); pomišljaj (); pika (); pomišljaj (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'd') {Serial.print ("-.."); pomišljaj (); pika (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'e') {Serial.print ("."); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'f') {Serial.print ("..-."); pika (); pika (); pomišljaj (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'g') {Serial.print ("-."); pomišljaj (); pomišljaj (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'h') {Serial.print ("…."); pika (); pika (); pika (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'i') {Serial.print (".."); pika (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'j') {Serial.print (".---"); pika (); pomišljaj (); pomišljaj (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'k') {Serial.print ("-.-"); pomišljaj (); pika (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'l') {Serial.print (".-.."); pika (); pomišljaj (); pika (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'm') {Serial.print ("-"); pomišljaj (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'n') {Serial.print ("-."); pomišljaj (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'o') {Serial.print ("---"); pomišljaj (); pomišljaj (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'p') {Serial.print (".--."); pika (); pomišljaj (); pomišljaj (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 'q') {Serial.print ("--.-"); pomišljaj (); pomišljaj (); pika (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'r') {Serial.print (".-."); pika (); pomišljaj (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 's') {Serial.print ("…"); pika (); pika (); pika (); presledek (); } else if (stavka.charAt (prva + i) == 't') {Serial.print ("-"); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'u') {Serial.print ("..-"); pika (); pika (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'v') {Serial.print ("…-"); pika (); pika (); pika (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'w') {Serial.print (".--"); pika (); pomišljaj (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'x') {Serial.print ("-..-"); pomišljaj (); pika (); pika (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'y') {Serial.print ("-.--"); pomišljaj (); pika (); pomišljaj (); pomišljaj (); presledek (); } else if (stavka.charAt (prva + i) == 'z') {Serial.print ("-.."); pomišljaj (); pomišljaj (); pika (); pika (); presledek (); } else if (stavka.charAt (prva + i) == '') {Serial.print ("/"); bigSpace (); }}} void loop () {// Ne piši ničesar tukaj}
7. korak: Odpravljanje težav
Kolo se ne premika
Med kolesom in papirjem je lahko preveč trenja, poskusite kolo nekoliko dvigniti ali ga spremeniti.
Kolo vleče papir, nato pa se še naprej vrti, ne da bi ga vleklo
Prepričajte se, da ste kolo prilepili na sredino koračnega motorja
Pike in črtice so povezane
Preverite, ali so pike, pomišljaji in preslednice pravilno napisane, naj bodo takšne:
// To je metoda, zaradi katere robot napiše dotvoid dot () {Serial.println ("dot start"); myServo.write (160); zamuda (1000); myServo.write (90); zamuda (1000); myStepper.step (stepsPerRevolution); zamuda (1000); Serial.println ("dot done"); }
// To je metoda, zaradi katere robot napiše pomišljaj
void dash () {Serial.println ("začetek črtice"); myServo.write (160); zamuda (1000); myStepper.step (stepsPerRevolution); zamuda (1000); myServo.write (90); zamuda (1000); myStepper.step (stepsPerRevolution); zamuda (1000); Serial.println ("pomišljaj končan"); }
// To je metoda, zaradi katere robot pusti presledek med vsako črko
void space () {Serial.println ("začetek presledka"); myServo.write (90); zamuda (1000); myStepper.step (200); zamuda (1000); Serial.println ("presledek opravljen"); }
Priporočena:
En ključni pisatelj: 4 koraki
Eden ključnih piscev: Se spomnite Stephena Hawkinga? Bil je profesor na Cambridgeu in slavni matematik na vozičku z računalniško ustvarjenim glasom. Trpel je za motorično nevronsko boleznijo in proti koncu življenja, potem ko je izgubil govor, je lahko
ScanUp NFC bralnik/pisatelj in snemalnik zvoka za slepe, slabovidne in vse ostale: 4 koraki (s slikami)
ScanUp NFC bralnik/pisatelj in snemalnik zvoka za slepe, slabovidne in vse ostale: Študiram industrijsko oblikovanje in projekt je delo mojega semestra. Cilj je podpreti slabovidne in slepe osebe z napravo, ki omogoča snemanje zvoka v formatu. WAV na kartico SD in klic teh podatkov z oznako NFC. Torej v
Oddajnik Mordujeve kode Arduino: 11 korakov
Oddajnik Mordujeve kode Arduino: V tem navodilu boste uporabili Arduino Uno za ustvarjanje oddajnika Morsejeve kode in uporabili serijski monitor za branje poslanih sporočil. Deli, ki jih potrebujete: Arduino UnoBreadboardBuzzerButtonsJumper žice
Enostavni pisatelj Brailleove pisave (govor v Braillovo pisavo): 8 korakov (s slikami)
Enostavni pisatelj Brailleove pisave (Govor v Braillovo pisavo): Pozdravljeni vsi, vse se je začelo z izdelavo preprostega ploterja XY, potem ko sem ga uspešno zaključil, razmišljal sem, da bom razvil preprost pretvornik besedila iz govora v brajico. Začel sem ga iskati na spletu in nepričakovano so bile cene previsoke , to me je okrepilo
Visoki pisatelj: 4 koraki
Visoki pisatelj: pisatelj iz New Yorka KATSU prikazuje funkcionalnost najnovejšega orodja iz raziskovalnega laboratorija za grafite: Visoki pisatelj. Visoki pisatelj, ki temelji na prejšnjih modelih barvnih stebrov inovatorjev, kot sta Barry McGee in Citizens Against Ugly Street Spam, je