Cuprins:

Montare rotativă a telefonului: 7 pași
Montare rotativă a telefonului: 7 pași

Video: Montare rotativă a telefonului: 7 pași

Video: Montare rotativă a telefonului: 7 pași
Video: TUTORIAL: Montare (instalare) Navigatie Android pe VW Golf Passat B6, B7, CC Skoda in 12 pasi simpli 2024, Iulie
Anonim
Suport rotativ pentru telefon
Suport rotativ pentru telefon

Acest instructable a fost creat pentru a îndeplini cerințele proiectului Makecourse de la Universitatea din Florida de Sud (www.makecourse.com).

Doriți să creați un suport rotativ pentru telefon, astfel încât să puteți vizualiza conținutul telefonului în orientare portret sau peisaj, fără a fi nevoie să îl țineți? Apoi, nu căutați mai departe.

Pentru a crea acest proiect, veți avea nevoie de:

- Microcontroler Arduino și IDE

- Cablu USB pentru încărcarea codului

- Pană de pâine

- Sârme jumper

- Ecran LCD

- Servo

- Coloană care se poate atașa la servo

- Telecomandă IR

- Receptor IR

- Rezistor de 10k ohm

- Kenu Airframe + Clip pentru telefon (sau ceva care să țină telefonul în poziție)

- Baterie de 9 V pentru alimentare portabilă sau doar USB Arduino

Pasul 1: Construiți circuitul receptorului IR

Construiți circuitul receptorului IR
Construiți circuitul receptorului IR
Construiți circuitul receptorului IR
Construiți circuitul receptorului IR

În primul rând, săriți GND și + 5V de la Arduino la șinele de alimentare de pe panoul dvs. de calcul. Apoi, săriți rezistorul de 10k ohm de la șina de alimentare + 5V la pinul de ieșire al fototranzistorului receptorului IR. Apoi, utilizați un cablu jumper pentru a vă conecta la pinul 11 de pe Arduino de la pinul de ieșire al receptorului IR. Apoi, utilizați două fire jumper pentru a trimite pământ și + 5V la pinii respectivi de pe receptorul IR. Filtrul RC prezentat în schema de mai sus nu este necesar. În cele din urmă, nu am făcut schema prezentată în acest pas, iar sursa pentru aceasta este prezentă în imagine.

Pasul 2: Conectați Servo, Coloană și Suport telefon

Conectați Servo, Coloană și Suport telefon
Conectați Servo, Coloană și Suport telefon
Conectați Servo, Coloană și Suport telefon
Conectați Servo, Coloană și Suport telefon
Conectați Servo, Coloană și Suport telefon
Conectați Servo, Coloană și Suport telefon

Acum, utilizați două fire jumper pentru a sări de la sol și + 5V ale șinelor de alimentare ale panoului de alimentare în firele maro și respectiv roșii ale servo-ului. Apoi, utilizați un fir jumper pentru a atașa pinul 9 de pe Arduino la firul portocaliu al servo-ului.

Apoi, atașați o coloană la capul servoului așa cum se arată în a doua imagine.

În cele din urmă, atașați ceva pentru a ține telefonul pe coloană, cum ar fi Kenu Airframe +, așa cum se arată în a treia imagine.

Pasul 3: Conectați afișajul LCD pentru citirea servo

Conectați afișajul LCD pentru citirea servo
Conectați afișajul LCD pentru citirea servo

Salt la sol și + 5V de la șinele de alimentare ale panoului de control până la pinii respectivi de pe ecranul LCD. De asemenea, săriți pinii SDA și SCL de pe LCD pe Ardiuno. Pinii SDA și SCL ai Arduino pot fi identificați din spatele plăcii Arduino și sunt cei doi pini deasupra AREF și Ground deasupra pinului 13. Pinul SCL este cel mai înalt. Acest lucru permite afișajului LCD să citească poziția servo actuală.

Pasul 4: Utilizați codul și bibliotecile atașate pentru a programa Arduino

Utilizați codul și bibliotecile atașate pentru a programa Arduino
Utilizați codul și bibliotecile atașate pentru a programa Arduino

Descărcați fișierul RotatingMountCode.zip. Instalați IDE-ul Arduino și dezarhivați fișierul descărcat în Documents / Arduino. Asigurați-vă că copiați conținutul dosarului meu de schițe și biblioteci în dosarul dvs. de schițe și biblioteci. Deschideți schița ServoIRandLCD și încărcați-o pe Arduino.

Consultați pașii ulteriori pentru explicația codului.

Pasul 5: Conectați sursa de alimentare dorită la Arduino și folosiți telecomanda pentru a roti suportul

Conectați sursa de alimentare dorită la Arduino și folosiți telecomanda pentru a roti suportul!
Conectați sursa de alimentare dorită la Arduino și folosiți telecomanda pentru a roti suportul!
Conectați sursa de alimentare dorită la Arduino și folosiți telecomanda pentru a roti suportul!
Conectați sursa de alimentare dorită la Arduino și folosiți telecomanda pentru a roti suportul!

Fie lăsați Arduino conectat la computer, fie deconectați-l de la computer și folosiți o baterie de 9V pentru a furniza energie continuă Arduino. În cele din urmă, utilizați o telecomandă IR ieftină pentru a controla servo și, prin urmare, orientarea suportului telefonului!

Numărul 1 de pe telecomandă ar trebui să seteze poziția servo la 0 grade, numărul 2 la 90 de grade și numărul 3 la 180 de grade. Între timp, butoanele + și - de pe telecomandă ar trebui să incrementeze sau să micșoreze unghiul servoului cu 1 grad, respectiv.

Notă: Dacă utilizați o telecomandă IR diferită de cea prezentată aici, este posibil să se schimbe codurile IR corespunzătoare diferitelor butoane. Dacă da, modificați schița ServoIRandLCD pentru a utiliza în schimb acele coduri IR.

Pasul 6: Citiți acest lucru pentru explicația codului sursă

Citiți acest lucru pentru explicația codului sursă
Citiți acest lucru pentru explicația codului sursă
Citiți acest lucru pentru explicația codului sursă
Citiți acest lucru pentru explicația codului sursă

Codul sursă pentru schița Arduino poate fi găsit mai jos sau în fișierul.zip atașat anterior. Bibliotecile necesare pot fi găsite numai în fișierul.zip atașat anterior la pasul 4.

Primul lucru pe care îl face codul este să includă bibliotecile necesare pentru a rula toate funcțiile din schiță. Apoi, declară pinul 9 de pe Arduino ca fiind pinul de semnal activat PWM pentru servo. De asemenea, face pinul 11 de pe Arduino pinul folosit pentru receptorul IR. Apoi, declară o variabilă întreagă utilizată pentru a urmări poziția servo-ului în grade și o setează la 0 grade, inițial. Apoi, instanțiază obiectele necesare pentru un obiect IRrecv, un obiect servo și obiectul meuDisplay LCD (care este, de asemenea, configurat în aceeași linie), astfel încât aceste obiecte să poată fi utilizate ulterior.

Apoi, în funcția de configurare, portul serial este pornit la 9600 biți / sec, astfel încât monitorul serial poate fi utilizat pentru a urmări poziția servo, dacă se dorește. De asemenea, atașează obiectul myservo la pinul 9, pornește receptorul IR și inițializează afișajul LCD.

În funcția buclă principală, al cărei corp este executat numai dacă se primește o transmisie IR de la receptorul IR, receptorul IR decodează semnalul trimis de la telecomanda IR utilizând funcția de decodare (& rezultate) și apoi dacă instrucțiunile determină ce pentru a seta servo-ul în funcție de valoarea IR primită. Funcția de scriere este utilizată pentru a seta servo-ul la gradele sale adecvate, iar funcția de citire este utilizată pentru a găsi unghiul curent al servo-ului și pentru a-l crește sau micșora după cum este necesar.

În cele din urmă, unghiul actual al servo-ului este trimis atât monitorului serial, cât și afișajului LCD utilizând funcția myservo.read (), iar buclele principale iterează la nesfârșit.

Cod sursa:

#include // Arduino standard library # include // IR library #include "Wire.h" //Wire.h for LCD (uneori este necesar) # include "LiquidCrystal_I2C.h" // Biblioteca LCD

#define servopin 9 // acesta definește pinul 9 ca pinul utilizat pentru cablul de comandă servo (portocaliu)

int RECV_PIN = 11; // Fototransistorul IR trimite ieșirea la pinul 11

int CurrentAngle = 0; // declarați variabila întreagă currentAngle și setați la 0

IRrecv irrecv (RECV_PIN); // instantaneează un obiect receptor IR decode_results rezultate; // creați un obiect decode_results. Acest obiect este separat de receptorul IR.

Servo miservo; // creați un obiect Servo numit „myservo” // pot fi create maximum opt obiecte servo

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // creați un obiect LCD și configurați config

configurare nulă () {

Serial.begin (9600); // pornește portul serial

myservo.attach (servopin); // atașează servo pe pinul 9 la obiectul servo

irrecv.enableIRIn (); // pornește receptorul

myDisplay.init (); // inițializați ecranul LCD

myDisplay.backlight (); // activați lumina de fundal LCD

}

bucla nulă () {

if (irrecv.decode (& results)) // dacă transmisia a primit …

{Serial.print ("valoarea IR primită:");

Serial.println (results.value); // afișează valoarea primită

// interpretează comenzile primite … if (results.value == 16724175) // 1 {// a părăsit myservo.write (0); }

if (results.value == 16718055) // 2 {// middle myservo.write (90); }

if (results.value == 16743045) // 3 {// dreapta myservo.write (180); }

if (results.value == 16754775) // + {// increment currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) // - {// decrement currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

irrecv.resume (); // Primiți următoarea valoare

// Serial monitor print Serial.print ("Poziția servo actuală:");

Serial.println (myservo.read ()); // aceasta recuperează poziția servo și o trimite la monitorul serial

// LCD print myDisplay.clear ();

myDisplay.print ("Servo deg.:");

myDisplay.print (myservo.read ());

întârziere (200); // întârziere pentru a face stabilizarea servo-acționării

}

Pasul 7: Urmăriți videoclipul meu Youtube pentru ajutor

Vizualizați videoclipul meu YouTube nelistat care discută pe deplin și demonstrează proiectul dacă aveți întrebări!

Recomandat: