Kazalo:
- 1. korak: Zgradite vezje IR sprejemnika
- 2. korak: Priključite servo, stolpec in držalo za telefon
- 3. korak: Priključite LCD zaslon za odčitavanje servomotorjev
- 4. korak: Uporabite kodo in knjižnice, priložene za programiranje Arduina
- 5. korak: Želeni vir napajanja priključite na Arduino in z daljinskim upravljalnikom zavrtite nosilec
- Korak 6: Preberite to za razlago izvorne kode
- 7. korak: Za pomoč si oglejte videoposnetek My Youtube
Video: Rotacijski nosilec telefona: 7 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Ta pouk je bil ustvarjen v skladu z zahtevami projekta Makecourse na Univerzi v Južni Floridi (www.makecourse.com).
Želite narediti vrtljiv nosilec za telefon, da si lahko ogledate vsebino telefona v pokončni ali ležeči usmerjenosti, ne da bi ga morali držati? Potem ne glej več.
Če želite ustvariti ta projekt, boste potrebovali:
- Arduino mikrokrmilnik in IDE
- USB kabel za nalaganje kode
- Ogledna plošča
- Mostične žice
- LCD zaslon
- Servo
- Stolpec, ki se lahko pritrdi na servo
- IR daljinski upravljalnik
- IR sprejemnik
- 10k ohmski upor
- Kenu Airframe+ telefonska sponka (ali nekaj, kar drži telefon na mestu)
- 9 V baterija za prenosno napajanje ali samo Arduino z USB pogonom
1. korak: Zgradite vezje IR sprejemnika
Najprej preskočite GND in +5V z Arduina na napajalne tirnice na vaši plošči. Nato preskočite 10k ohmski upor z +5V napajalne tirnice na izhodni zatič fototranzistorja vašega IR sprejemnika. Nato uporabite mostiček za priključitev na pin 11 na Arduinu iz izhodnega zatiča IR sprejemnika. Nato z dvema mostičnima žicama pošljite ozemljitev in +5V na ustrezne zatiče IR sprejemnika. RC filter, prikazan na zgornji shemi, ni potreben. Nazadnje, sheme, prikazane v tem koraku, nisem naredil, vir zanj pa je prisoten na sliki.
2. korak: Priključite servo, stolpec in držalo za telefon
Sedaj z dvema mostičnima žicama skočite s tal in +5V napajalnih tirnic na ohišju v rjavo in rdečo žico servo. Nato z eno mostično žico pritrdite zatič 9 na Arduinu na oranžno žico servomotorja.
Nato na glavo servomotorja pritrdite stolpec, kot je prikazano na drugi sliki.
Nazadnje na stolpec pritrdite nekaj, kar drži telefon, na primer Kenu Airframe+, kot je prikazano na tretji sliki.
3. korak: Priključite LCD zaslon za odčitavanje servomotorjev
Skočite z ozemljitvenih tirnic in +5 V na ustrezne zatiče na LCD zaslonu. Prav tako preskočite zatiče SDA in SCL z LCD -ja na Ardiuno. Zatiča SDA in SCL Arduino je mogoče prepoznati na zadnji strani plošče Arduino in sta dva zatiča nad AREF in Ground nad zatičem 13. SCIN zatič je najvišji. To omogoča, da LCD zaslon odčita trenutni položaj servomotorja.
4. korak: Uporabite kodo in knjižnice, priložene za programiranje Arduina
Prenesite datoteko RotatingMountCode.zip. Namestite Arduino IDE in razpakirajte preneseno datoteko v Documents / Arduino. Kopirajte vsebino mape skic in knjižnic v mapo skic in knjižnic. Odprite skico ServoIRandLCD in jo naložite v svoj Arduino.
Za razlago kode glejte poznejše korake.
5. korak: Želeni vir napajanja priključite na Arduino in z daljinskim upravljalnikom zavrtite nosilec
Arduino pustite priklopljenega na računalnik ali pa ga izključite iz računalnika in uporabite 9V baterijo za napajanje Arduina z enosmernim tokom. Nazadnje uporabite poceni IR daljinski upravljalnik za servo in s tem orientacijo nosilca za telefon!
Številka 1 na daljinskem upravljalniku mora nastaviti položaj servo na 0 stopinj, številka 2 na 90 stopinj in številka 3 na 180 stopinj. Medtem morata gumba + in - na daljinskem upravljalniku povečati ali zmanjšati kot servo za 1 stopinjo.
Opomba: Če uporabljate daljinski upravljalnik IR, ki ni prikazan na tej sliki, je mogoče spremeniti IR kode, ki ustrezajo različnim gumbom. Če je tako, spremenite skico ServoIRandLCD, da namesto tega uporabite te IR kode.
Korak 6: Preberite to za razlago izvorne kode
Izvorno kodo za skico Arduino najdete spodaj ali v prej priloženi datoteki.zip. Potrebne knjižnice najdete le v prej priloženi datoteki.zip v 4. koraku.
Prva stvar, ki jo naredi koda, je vključitev potrebnih knjižnic, potrebnih za izvajanje vseh funkcij v skici. Nato razglasi, da je pin 9 na Arduinu signalni pin za servo, ki podpira PWM. Prav tako je pin 11 na Arduinu pin, ki se uporablja za IR sprejemnik. Nato razglasi celoštevilsko spremenljivko, ki se uporablja za spremljanje položaja servo v stopinjah, in jo sprva nastavi na 0 stopinj. Nato vzpostavi zahtevane objekte za objekt IRrecv, servo objekt in objekt myDisplay LCD (ki je prav tako konfiguriran v isti vrstici), tako da jih lahko kasneje uporabite.
Nato se v nastavitveni funkciji serijska vrata zaženejo pri 9600 bitih/s, tako da lahko serijski monitor po želji spremljate položaj servomotorja. Na pin 9 pritrdi tudi objekt myservo, zažene IR sprejemnik in inicializira LCD zaslon.
V funkciji glavne zanke, katere telo se izvede le, če je IR sprejemnik sprejet od IR sprejemnika, IR sprejemnik dekodira signal, ki mu je poslan z daljinskega upravljalnika IR, z uporabo funkcije dekodiranja (& rezultati) in nato, če izjave določajo, kaj nastavite servo na odvisno od prejete IR vrednosti. Funkcija pisanja se uporablja za nastavitev servomotorja na ustrezne stopnje, funkcija branja pa za iskanje trenutnega kota servomotorja in ga po potrebi poveča ali zmanjša.
Nazadnje se trenutni kot servomotorja pošlje na serijski monitor in LCD zaslon s funkcijo myservo.read (), glavne zanke pa se ponavljajo v nedogled.
Izvorna koda:
#include // Standardna knjižnica Arduino #include // IR knjižnica #include "Wire.h" //Wire.h za LCD (včasih potrebno) #include "LiquidCrystal_I2C.h" // LCD knjižnica
#define servopin 9 // to definira pin 9 kot pin, ki se uporablja za servo krmilni vod (oranžno)
int RECV_PIN = 11; // IR foto-tranzistor pošlje izhod na pin 11
int currentAngle = 0; // razglasimo celoštevilsko spremenljivko currentAngle in nastavimo na 0
IRrecv unrecv (RECV_PIN); // vzpostavimo rezultat predmeta IR sprejemnika decode_results results; // instanciranje objekta decode_results. Ta predmet je ločen od IR sprejemnika.
Servo myservo; // instanciranje servo objekta z imenom 'myservo' // lahko ustvarite največ osem servo objektov
LiquidCrystal_I2C myDisplay (0x27, 16, 2); // instanciramo objekt LCD in nastavimo config
void setup () {
Serial.begin (9600); // zaženite serijska vrata
myservo.attach (servopin); // pritrdi servo na zatiču 9 na servo objekt
unrecv.enableIRIn (); // zaženemo sprejemnik
myDisplay.init (); // inicializiramo LCD
myDisplay.backlight (); // vklop osvetlitve zaslona LCD
}
void loop () {
if (unrecv.decode (& results)) // če je bil sprejet prenos …
{Serial.print ("Prejeta IR vrednost:");
Serial.println (results.value); // prejeta prikazana vrednost
// razlaga prejete ukaze … if (results.value == 16724175) // 1 {// levo myservo.write (0); }
if (results.value == 16718055) // 2 {// srednji myservo.write (90); }
if (results.value == 16743045) // 3 {// desno myservo.write (180); }
if (results.value == 16754775) //+ {// povečanje currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// zmanjšanje currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}
unrecv.resume (); // Prejemamo naslednjo vrednost
// Serijski monitor tiskanje Serial.print ("Trenutni položaj servo:");
Serial.println (myservo.read ()); // ta pridobi položaj servo in ga pošlje serijskemu monitorju
// LCD tiskanje myDisplay.clear ();
myDisplay.print ("Servo deg.:");
myDisplay.print (myservo.read ());
zamuda (200); // zakasnitev za stabilno aktiviranje servomotorja
}
7. korak: Za pomoč si oglejte videoposnetek My Youtube
Če imate kakršna koli vprašanja, si oglejte moj videoposnetek na YouTubu, ki ni na seznamu in v katerem je v celoti obravnavan in predstavljen projekt!
Priporočena:
Rotacijski ventilator z uporabo servo motorja in nadzor hitrosti: 6 korakov
Rotacijski ventilator z uporabo servo motorja in nadzor hitrosti: V tej vadnici se bomo naučili, kako s servo motorjem, potenciometrom, arduinom in Visuinom vrtiti ventilator z nastavljivo hitrostjo. Oglejte si video
Linearni in rotacijski aktuator: 11 korakov
Linearni in rotacijski aktuator: Ta navodila govorijo o tem, kako narediti linearni aktuator z vrtljivo gredjo. To pomeni, da lahko predmet premikate naprej in nazaj ter ga hkrati obračate. Predmet je mogoče premikati 45 mm (1,8 palca) naprej in nazaj ter ga obračati
Pretvorite rotacijski telefon v radio in potujte skozi čas: 5 korakov (s slikami)
Pretvorite rotacijski telefon v radio in potujte skozi čas: rotacijski telefon sem vdrl v radio! Vzemite telefon, izberite državo in desetletje ter poslušajte odlično glasbo! Kako deluje Ta rotacijski telefon ima vgrajen mikroračunalnik (Raspberry Pi), ki komunicira z radiooooo.com, spletnim radijem.
Uporabite koračni motor kot rotacijski dajalnik: 9 korakov (s slikami)
Uporabite koračni motor kot rotacijski dajalnik: Rotacijski dajalniki so odlični za uporabo v projektih mikrokrmilnikov kot vhodna naprava, vendar njihova zmogljivost ni zelo gladka in zadovoljiva. Prav tako sem se odločil, da jim bom namenil veliko rezervnih koračnih motorjev. Torej, če imate kakšen stepper
Nosilec telefona DIY: 7 korakov (s slikami)
Držalo za telefon DIY: Kako narediti delujoče domiselno in privlačno držalo za telefon z vsem tem rezervnim smeti, ki ga ne potrebujete