Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
Ta pouk je bil ustvarjen v skladu z zahtevami projekta Makecourse na Univerzi v Južni Floridi (www.makecourse.com).
1. korak: Koncept
Ko sem poskušal razmišljati o ideji za ta projekt, sem se odločil narediti nekaj, kar bi bilo uporabno in koristno za moje vsakdanje življenje. Ni veliko takih stvari, ki bi lahko zahtevale dve stopnji svobode, zato sem se odločil, da bom naredil preprosto uro, ki bo ustrezala zahtevi, in jo prikazal na mizi, da bo pokazal čas. Prvotno je bila zamisel izdelava ročne ure, toda 3D natisnjeni del bi bil premajhen, motorji, ki poganjajo uro, pa bi bili še vedno preveliki za ročno uro.
Zato sem pri tem projektu po stanovanju našel nadomestne dele in se odločil, da bom delal na tem.
2. korak: Deli
- 3D natisnjeni deli
- 2 28BYJ-48 5V DC koračni motor
- 2 ULN2003 gonilna plošča koračnega motorja
- Arduino Uno
- HC-05 Bluetooth modul
Vse te dele izdelam jaz, razen kazalcev ure. Nisem zelo ustvarjalen. Spodaj je povezava do njenega ustvarjalca.
www.thingiverse.com/thing:1441809
3. korak: Montaža delov
(1)- Gear_1 in 2 morate namestiti na koračne motorje. Tesno se bodo prilegali, zato bodo potrebovali malo sile, da ostanejo na svojem mestu.
(2)- Base_0 bo ostal na dnu sklopa.
(3)- Base_1 bo postavljen na vrh SpurGear_1, to je glavna komponenta za minuto. Ti dve komponenti lahko zlepite skupaj in se prepričajte, da je osnova na vrhu orodja.
(4)- Base_2 bo postavljen na vrh SpurGears_2, to je glavna komponenta kazalca ur. Enako velja za ta del kot korak (3)
(5)- Roke na urah lahko lepite na podlago Base_1 in Base_2 ali pa izvrtate majhno luknjo, da se namestijo.
(6)- Če želite, da se zobnik minutne kazalke ujema z zobnikom, potrebujete 1 cm ploščad, da postavite celoten sklop na vrh z enim od koračnih motorjev.
Razlog za to je, da glavna osnova ne more biti visoka, saj drugi koračni motor ne bi mogel doseči visoke prestave. Kakorkoli, za enega od koračnih motorjev je potrebna platforma.
4. korak: Knjižnica za Arduino IDE
Koda za ta projekt temelji na knjižnici tyhenryja, imenovani CheapStepper.h
github.com/tyhenry/CheapStepper
Če želite namestiti to knjižnico za svoj arduino. Kliknite kloniraj ali prenesite na zgornjo povezavo in jo prenesite kot datoteko zip.
V Arduino IDE. Skica -> Vključi knjižnico -> Dodaj knjižnico. ZIP
Od vseh knjižnic, ki delujejo, je ta najboljši in izjemno enostaven za uporabo s koračnim motorjem.
5. korak: Nastavitev tiskalne plošče
Uporabil sem Arduino ščit, da sem šel s svojim Arduino UNO. Izgleda bolj čisto, vendar lahko dobite majhno ploščo in jo namesto tega namestite na Arduino UNO. Sledite barvi na shemi, saj so nekatere žice ena na drugi. Zatiči 4-7 so za enega koraka, zatiči 8-11 pa za drugi korak.
Modul Bluetooth mora biti priključen RX -> TX in TX -> RX na ploščo Arduino.
Modre žice so povezave med gonilniki in Arduino UNO
Zelene žice so povezave RX in TX
Črne žice so ozemljene.
Rdeče žice so 5V.
6. korak: Koda
Spodaj je koda za ta projekt.
Tu bo razlaga kode.
Steap koraka CheapStepper (8, 9, 10, 11); Poceni korak Stepper_2 (4, 5, 6, 7);
boolean moveClockwise = true;
// 37,5 min = 4096;
// 1 min = 106,7;
// 5 min = 533,3;
// 15 min = 1603;
// 30 min = 3206;
// 60 min = 6412;
int polno = 4096;
int pol = polno/2; // 2048
float full_time = 6412; // 1 ura
float half_time = full_time/2; // 30 min 3026
float five_time = half_time/2; // 15 min 1603
float one_time = full_time/60; // 1 min 106
float five_time = one_time*5; // 5 min 534,3
float one_sec = one_time/60; // 1 sekunda 1.78
// vsak lahko naredimo 30 minut z vrtenjem motorja 3206 in ponastavitvijo
To je glavni izračun tega projekta. Steper bi potreboval 4096 korakov, da bi se obrnil za 360 stopinj, ker pa so zobniki večji od zobnikov, pritrjenih na steper, je za popolno vrtenje potrebnih več korakov. Ker je zobnik glavna sestavina, ki vrti roke. Moram narediti različne teste, da se prepričam, da so vrednosti pravilne.
full_time je spremenljivka, ki sem jo dodelil za popolno rotacijo roke. To je precej dosledno, a ko se koraki razdelijo na 2, da se doseže določeno gibanje, se vrednost plavajoče vrednosti zmanjša, kar je vozniku otežilo opravljanje dela.
MoveClockwise = true; je, da se koračni motor premika v smeri urinega kazalca, ker pa vrti zobnik v nasprotni smeri urinega kazalca, moramo v nastavitvah narediti logično napako. Na začetku lahko tudi razglasite napačno, vendar to razloži, kako deluje.
void setup () {Serial.begin (9600);
Serial.println ("Pripravljen za začetek premikanja!");
pos = enkrat_krat; del = 900; razmerje = 60;
moveClockwise = false; }
Tukaj razglasim boolean moveClockwise false. pos bo število korakov, del bo zakasnitev, razmerje pa je za minute/s = 60 ali uro/min = 12
Roke nadzorujemo z modulom Bluetooth. Najprej potrebujete serijski terminal Bluetooth iz naprave Android. Povežite se s Hc-05 s kodo PIN 0000 ali 1234. Uporabite lahko nekaj vzorčne kode iz Arduino IDE, da preverite, ali deluje pravilno. Ko je priključen, mora utripati zelo počasi in ne hitro, ko ni povezan.
void loop () {stanje = 0;
if (Serial.available ()> 0) {
stanje = Serial.read (); }
za (float s = 0; s <(pos); s ++) {
stepper.step (moveClockwise); }
za (float s = 0; s <(pos/razmerje); s ++) {
stepper_2.step (premakni se v smeri urinega kazalca); }
zamuda (del);
Serial.available ()> 0 je pomembno, saj vpliva na način delovanja vašega modula Bluetooth. Ta izjava if bo resnična, če obstaja komunikacija med Arduinom in vašo napravo. Spremenljivka stanja bo določila 3 druge spremenljivke, ki sem jih označil za vrh nastavitve (), natisnila pa bo tudi, katero operacijo koda izvaja. Zanka for for je glavna funkcija, ki poganja gibanje koračnega motorja.
if (stanje == '1') {
pos = enkrat_krat; del = 0; razmerje = 12;
Serial.println ("Operacija 1: Brez zamude"); }
To je en primer uporabe vhoda iz naprave Bluetooth za spreminjanje delovanja sistema. Te spremenljivke lahko urejate, vendar želite nadzirati roke.
7. korak: Demo in zaključek
To je predstavitev sistema, ki prikazuje, kako deluje. Za ohišje lahko uporabite vse, kar ustreza vsem sestavnim delom v notranjosti. Ta projekt je bil preprost in zabaven, saj sem prvič natisnil 3D. Modul Bluetooth je bilo zabavno ugotoviti in uporabljati. Naredil sem nekaj napak, ki so bile prepozne za spremembo, vendar je končni izdelek v redu.