Përmbajtje:

Montimi i telefonit rrotullues: 7 hapa
Montimi i telefonit rrotullues: 7 hapa

Video: Montimi i telefonit rrotullues: 7 hapa

Video: Montimi i telefonit rrotullues: 7 hapa
Video: 7 лайфхаков с ГОРЯЧИМ КЛЕЕМ для вашего ремонта. 2024, Korrik
Anonim
Montimi i telefonit rrotullues
Montimi i telefonit rrotullues

Ky udhëzues u krijua në përmbushje të kërkesës së projektit të Makecourse në Universitetin e Floridës së Jugut (www.makecourse.com).

Dëshironi të bëni një montim rrotullues të telefonit në mënyrë që të shihni përmbajtjen e telefonit tuaj në orientim portret ose peizazh pa pasur nevojë ta mbani atë? Pastaj, mos shiko më tej.

Për të krijuar këtë projekt, do t'ju duhet:

- Arduino Mikrokontrollues dhe IDE

- Kabllo USB për të ngarkuar kodin

- Tabela e bukës

- Telat Jumper

- Ekran LCD

- Servo

- Kolona që mund të ngjitet në servo

- Telekomandë IR

- Marrës IR

- Rezistencë 10k Ohm

- Kenu Airframe+ Klip telefoni (ose diçka për ta mbajtur telefonin në vend)

- Bateri 9 V për energji portative ose vetëm Arduino me USB

Hapi 1: Ndërtoni qarkun e marrësit IR

Ndërtoni qarkun e marrësit IR
Ndërtoni qarkun e marrësit IR
Ndërtoni qarkun e marrësit IR
Ndërtoni qarkun e marrësit IR

Së pari, hidheni GND dhe +5V nga Arduino në binarët e rrymës në dërrasën tuaj të bukës. Pastaj, hidheni rezistencën tuaj 10k ohm nga hekurudha e energjisë +5V në kunjin dalës të fototransistorit të marrësit tuaj IR. Tjetra, përdorni një tel bluzë për t'u lidhur me kunjin 11 në Arduino nga kunja dalëse e marrësit IR. Pastaj, përdorni dy tela kërcyes për të dërguar terren dhe +5V në kunjat përkatëse në marrësin IR. Filtri RC i paraqitur në skemën e mësipërme nuk është i nevojshëm. Së fundmi, unë nuk e bëra skemën e treguar në këtë hap, dhe burimi për të është i pranishëm në foto.

Hapi 2: Lidhni Servon, Kolonën dhe Mbajtësin e Telefonit

Lidhni Servon, Kolonën dhe Mbajtësin e Telefonit
Lidhni Servon, Kolonën dhe Mbajtësin e Telefonit
Lidhni Servon, Kolonën dhe Mbajtësin e Telefonit
Lidhni Servon, Kolonën dhe Mbajtësin e Telefonit
Lidhni Servon, Kolonën dhe Mbajtësin e Telefonit
Lidhni Servon, Kolonën dhe Mbajtësin e Telefonit

Tani, përdorni dy tela kërcyes për të kërcyer nga toka dhe +5V të binarëve të fuqisë së bukës në telat ngjyrë kafe dhe të kuqe të servo, përkatësisht. Pastaj, përdorni një tel bluzë për të bashkuar pinin 9 në Arduino në tela portokalli të servo.

Pastaj, bashkëngjitni një kolonë në kokën e servo siç tregohet në foton e dytë.

Së fundi, bashkëngjitni diçka për ta mbajtur telefonin në kolonë, si Kenu Airframe+, siç tregohet në foton e tretë.

Hapi 3: Lidhni ekranin LCD për Servo Readout

Lidhni ekranin LCD për Servo Readout
Lidhni ekranin LCD për Servo Readout

Kërceni tokën dhe +5V nga binarët e fuqisë së bordit tuaj të bukës në kunjat përkatëse në ekranin LCD. Gjithashtu, hidheni kunjat SDA dhe SCL nga LCD në Ardiuno. Kunjat SDA dhe SCL të Arduino mund të identifikohen nga pjesa e pasme e tabelës Arduino dhe janë dy kunjat mbi AREF dhe Ground mbi kunjin 13. Kunja SCL është ajo më e larta. Kjo lejon që ekrani LCD të lexojë pozicionin aktual të servo.

Hapi 4: Përdorni Kodin dhe Bibliotekat e Bashkangjitura për të Programuar Arduino

Përdorni Kodin dhe Bibliotekat e Bashkangjitura për të Programuar Arduino
Përdorni Kodin dhe Bibliotekat e Bashkangjitura për të Programuar Arduino

Shkarkoni skedarin RotatingMountCode.zip. Instaloni Arduino IDE dhe zbërtheni skedarin e shkarkuar në Documents / Arduino. Sigurohuni që të kopjoni përmbajtjen e skedës sime të skicave dhe bibliotekave në skedën tuaj të skicave dhe bibliotekave. Hapni skicën ServoIRandLCD dhe ngarkojeni atë në Arduino tuaj.

Shikoni hapat e mëvonshëm për shpjegimin e kodit.

Hapi 5: Lidhni burimin e dëshiruar të energjisë me Arduino dhe përdorni telekomandën për të rrotulluar malin

Lidhni burimin e dëshiruar të energjisë me Arduino dhe përdorni telekomandën për të rrotulluar malin!
Lidhni burimin e dëshiruar të energjisë me Arduino dhe përdorni telekomandën për të rrotulluar malin!
Lidhni burimin e dëshiruar të energjisë me Arduino dhe përdorni telekomandën për të rrotulluar malin!
Lidhni burimin e dëshiruar të energjisë me Arduino dhe përdorni telekomandën për të rrotulluar malin!

Ose lini Arduino të kyçur në kompjuterin tuaj ose shkëputeni nga kompjuteri juaj dhe përdorni një bateri 9V për të siguruar energji DC në Arduino. Së fundi, përdorni një telekomandë IR të lirë për të kontrolluar servo -në dhe për këtë arsye orientimin e montimit të telefonit!

Numri 1 në telekomandë duhet të vendosë pozicionin e servo në 0 gradë, numrin 2 në 90 gradë dhe numrin 3 në 180 gradë. Ndërkohë butonat + dhe - në telekomandë duhet të rrisin ose zvogëlojnë këndin e servo me 1 shkallë, respektivisht.

Shënim: Nëse përdorni një telekomandë IR të ndryshme nga ajo e paraqitur këtu, është e mundur që kodet IR që korrespondojnë me butona të ndryshëm të ndryshojnë. Nëse është kështu, modifikoni skicën ServoIRandLCD për t'i përdorur ato kode IR në vend.

Hapi 6: Lexoni këtë për Shpjegimin e Kodit Burimor

Lexoni këtë për Shpjegimin e Kodit Burimor
Lexoni këtë për Shpjegimin e Kodit Burimor
Lexoni këtë për Shpjegimin e Kodit Burimor
Lexoni këtë për Shpjegimin e Kodit Burimor

Kodi burim për skicën Arduino mund të gjendet më poshtë ose në skedarin.zip të bashkangjitur më parë. Bibliotekat e kërkuara mund të gjenden vetëm në skedarin.zip të bashkangjitur më parë në hapin 4.

Gjëja e parë që bën kodi është përfshirja e bibliotekave të nevojshme të nevojshme për të ekzekutuar të gjitha funksionet në skicë. Tjetra, ajo deklaron pin 9 në Arduino të jetë pin sinjal i aktivizuar me PWM për servo. Gjithashtu bën pin 11 në Arduino kunjin e përdorur për marrësin IR. Tjetra, ajo deklaron një ndryshore të plotë të përdorur për të mbajtur nën kontroll pozicionin e servo në gradë dhe e vendos atë në 0 gradë, fillimisht. Pastaj, ai instinkton objektet e kërkuara për një objekt IRrecv, një servo objekt, dhe objektin myDisplay LCD (që është konfiguruar gjithashtu në të njëjtën linjë) kështu që këto objekte mund të përdoren më vonë.

Tjetra, në funksionin e konfigurimit, porti serik fillon me 9600 bit/sek, kështu që monitori serik mund të përdoret për të mbajtur nën kontroll pozicionin e servo nëse dëshironi. Ai gjithashtu lidh objektin myservo në pin 9, fillon marrësin IR dhe inicializon ekranin LCD.

Në funksionin e lakut kryesor, trupi i të cilit ekzekutohet vetëm nëse një transmetim IR merret nga marrësi IR, marrësi IR dekodon sinjalin që i është dërguar nga telekomanda IR duke përdorur funksionin e dekodimit (& rezultateve) dhe pastaj nëse deklaratat përcaktojnë se çfarë për të vendosur servo në varësi të vlerës IR të marrë. Funksioni i shkrimit përdoret për të vendosur servo në shkallët e tij të përshtatshme, dhe funksioni i leximit përdoret për të gjetur këndin aktual të servo dhe për ta rritur ose zvogëluar atë sipas nevojës.

Së fundi, këndi aktual i servo -së dërgohet si në monitorin serik ashtu edhe në ekranin LCD duke përdorur funksionin myservo.read (), dhe sythe kryesore përsëriten pafundësisht.

Kodi i burimit:

#include // Biblioteka standarde Arduino #përfshijë // bibliotekën IR #përfshi "Wire.h" //Wire.h për LCD (ndonjëherë nevojitet) #përfshi "Bibliotekën LiquidCrystal_I2C.h" // LCD

#define servopin 9 // kjo përcakton pin 9 si kunja e përdorur për plumbin e kontrollit servo (portokalli)

int RECV_PIN = 11; // Foto-tranzistori IR dërgon daljen në pin 11

int currentAngle = 0; // deklaro variablin e plotë currentAngle dhe vendoseni në 0

IRrecv irrecv (RECV_PIN); // instanti një objekt marrës IR dekodoni_rezultatet; // instantize një objekt decode_results. Ky objekt është i ndarë nga marrësi IR.

Servo myservo; // instanti një objekt Servo të quajtur 'myservo' // mund të krijohen një maksimum prej tetë servo objekteve

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // instantiate objektin LCD dhe konfiguroni konfigurimin

void setup () {

Serial.filloj (9600); // filloni portin serik

myservo.attach (servopin); // i bashkon servo -në pin 9 me objektin servo

irrecv.enableIRIn (); // filloni marrësin

myDisplay.init (); // inicoj LCD

myDisplay.backlight (); // ndizni dritën e pasme LCD

}

lak void () {

nëse (irreq.decode (& rezultatet)) // nëse transmetimi është marrë…

{Serial.print ("Vlera IR e marrë:");

Serial.println (rezultatet.vlera); // shfaq vlerën e marrë

// interpretoni komandat e marra … nëse (results.value == 16724175) // 1 {// majtas myservo.write (0); }

nëse (results.value == 16718055) // 2 {// myservo. mesme shkruaj (90); }

nëse (results.value == 16743045) // 3 {// right myservo.write (180); }

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

irrecv.resume (); // Merr vlerën tjetër

// Shtypja e monitorit serial Serial.print ("Pozicioni aktual i servo:");

Serial.println (myservo.read ()); // kjo merr pozicionin servo dhe e dërgon atë në monitorin serik

// LCD print myDisplay.clear ();

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

myDisplay.print (myservo.read ());

vonesë (200); // vonesa për ta bërë aktivizimin e servo të qëndrueshëm

}

Hapi 7: Shikoni videon time në Youtube për ndihmë

Shikoni videon time të palistuar në YouTube e cila diskuton dhe demonstron plotësisht projektin nëse keni ndonjë pyetje!

Recommended: