Satura rādītājs:

Rotējošs tālruņa stiprinājums: 7 soļi
Rotējošs tālruņa stiprinājums: 7 soļi

Video: Rotējošs tālruņa stiprinājums: 7 soļi

Video: Rotējošs tālruņa stiprinājums: 7 soļi
Video: 7 лайфхаков с ГОРЯЧИМ КЛЕЕМ для вашего ремонта. 2024, Jūlijs
Anonim
Rotējošs tālruņa stiprinājums
Rotējošs tālruņa stiprinājums

Šī pamācība tika izveidota, izpildot Dienvidfloridas Universitātes Makecourse projekta prasības (www.makecourse.com).

Vai vēlaties izveidot rotējošu tālruņa stiprinājumu, lai varētu apskatīt tālruņa saturu portreta vai ainavas orientācijā, to nenoturot? Tad nemeklējiet tālāk.

Lai izveidotu šo projektu, jums būs nepieciešams:

- Arduino mikrokontrolleris un IDE

- USB kabelis koda augšupielādei

- Maizes dēlis

- Jumper vadi

- LCD displejs

- Servo

- kolonna, ko var piestiprināt pie servo

- IR tālvadības pults

- IR uztvērējs

- 10k omu rezistors

- Kenu lidmašīnas rāmis+ tālruņa klips (vai kaut kas, lai turētu tālruni vietā)

- 9 V akumulators pārnēsājamai barošanai vai tikai ar USB darbināms Arduino

1. darbība: izveidojiet IR uztvērēja ķēdi

Izveidojiet IR uztvērēja shēmu
Izveidojiet IR uztvērēja shēmu
Izveidojiet IR uztvērēja shēmu
Izveidojiet IR uztvērēja shēmu

Vispirms leciet GND un +5V no Arduino uz maizes dēļa barošanas sliedēm. Pēc tam leciet savu 10k omu rezistoru no +5V barošanas sliedes uz IS uztvērēja fototransistora izejas tapu. Pēc tam izmantojiet pārejošo vadu, lai izveidotu savienojumu ar Arduino 11. tapu no IR uztvērēja izejas tapas. Pēc tam izmantojiet divus savienojuma vadus, lai nosūtītu zemi un +5 V uz attiecīgajām infrasarkanā uztvērēja tapām. Iepriekš redzamajā shematiskajā attēlā redzamais RC filtrs nav nepieciešams. Visbeidzot, es neizveidoju šajā solī parādīto shematisko attēlu, un tā avots ir attēlā.

2. darbība: pievienojiet servo, kolonnu un tālruņa turētāju

Pievienojiet servo, kolonnu un tālruņa turētāju
Pievienojiet servo, kolonnu un tālruņa turētāju
Pievienojiet servo, kolonnu un tālruņa turētāju
Pievienojiet servo, kolonnu un tālruņa turētāju
Pievienojiet servo, kolonnu un tālruņa turētāju
Pievienojiet servo, kolonnu un tālruņa turētāju

Tagad izmantojiet divus džemperu vadus, lai pārietu no zemes un +5 V maizes dēļa barošanas sliedes attiecīgi servo brūnajos un sarkanajos vados. Pēc tam izmantojiet vienu džemperu vadu, lai piestiprinātu Arduino tapu 9 pie servo oranžās stieples.

Pēc tam piestipriniet kolonnu pie servo galvas, kā parādīts otrajā attēlā.

Visbeidzot, kolonnai pievienojiet kaut ko, lai turētu tālruni, piemēram, Kenu Airframe+, kā parādīts trešajā attēlā.

3. darbība: pievienojiet LCD displeju servo nolasīšanai

Pievienojiet LCD displeju servo nolasīšanai
Pievienojiet LCD displeju servo nolasīšanai

Pārlēkt zemi un +5 V no maizes dēļa barošanas sliedēm līdz attiecīgajām tapām LCD displejā. Pārlejiet arī SDA un SCL tapas no LCD uz Ardiuno. Arduino SDA un SCL tapas var identificēt no Arduino plates aizmugures, un tās ir divas tapas virs AREF un Zemes virs 13. tapas. SCL tapa ir augstākā. Tas ļauj LCD displejam nolasīt pašreizējo servo stāvokli.

4. darbība: izmantojiet Arduino programmēšanai pievienoto kodu un bibliotēkas

Izmantojiet kodu un bibliotēkas, kas pievienotas Arduino programmēšanai
Izmantojiet kodu un bibliotēkas, kas pievienotas Arduino programmēšanai

Lejupielādējiet failu RotatingMountCode.zip. Instalējiet Arduino IDE un izpakojiet lejupielādēto failu mapē Documents / Arduino. Pārliecinieties, ka esat nokopējis manu skiču un bibliotēku mapes saturu savā skiču un bibliotēku mapē. Atveriet ServoIRandLCD skici un augšupielādējiet to savā Arduino.

Koda skaidrojumu skatiet turpmākajās darbībās.

5. darbība: pievienojiet vēlamo barošanas avotu Arduino un izmantojiet tālvadības pulti, lai pagrieztu stiprinājumu

Pievienojiet vēlamo barošanas avotu Arduino un izmantojiet tālvadības pulti, lai pagrieztu stiprinājumu!
Pievienojiet vēlamo barošanas avotu Arduino un izmantojiet tālvadības pulti, lai pagrieztu stiprinājumu!
Pievienojiet vēlamo barošanas avotu Arduino un izmantojiet tālvadības pulti, lai pagrieztu stiprinājumu!
Pievienojiet vēlamo barošanas avotu Arduino un izmantojiet tālvadības pulti, lai pagrieztu stiprinājumu!

Vai nu atstājiet Arduino pievienotu datoram, vai atvienojiet to no datora un izmantojiet 9 V akumulatoru, lai nodrošinātu Arduino līdzstrāvas padevi. Visbeidzot, izmantojiet lētu IR tālvadības pulti, lai kontrolētu servo un līdz ar to arī tālruņa stiprinājuma orientāciju!

Tālvadības pults numuram 1 jāiestata servo pozīcija uz 0 grādiem, skaitlis 2 - 90 grādi un skaitlis 3 līdz 180 grādiem. Tikmēr tālvadības pults taustiņiem + un - vajadzētu attiecīgi palielināt vai samazināt servo leņķi par 1 grādu.

Piezīme. Ja izmantojat citu IR tālvadības pulti, nevis šeit redzamo, iespējams, ir mainīti dažādām pogām atbilstošie IR kodi. Ja tā, mainiet ServoIRandLCD skici, lai tā vietā izmantotu šos IR kodus.

6. darbība. Izlasiet šo avota koda skaidrojumu

Izlasiet šo avota koda skaidrojumu
Izlasiet šo avota koda skaidrojumu
Izlasiet šo avota koda skaidrojumu
Izlasiet šo avota koda skaidrojumu

Arduino skices avota kodu var atrast zemāk vai iepriekš pievienotajā.zip failā. Nepieciešamās bibliotēkas var atrast tikai iepriekš pievienotajā.zip failā, veicot 4. darbību.

Pirmā lieta, ko veic kods, ietver nepieciešamās bibliotēkas, kas nepieciešamas, lai palaistu visas skices funkcijas. Tālāk tas paziņo, ka Arduino 9. tapa ir servo PWM iespējotā signāla tapa. Tas arī padara Arduino 11. tapu par tapu, ko izmanto IR uztvērējam. Pēc tam tas deklarē veselu skaitļu mainīgo, ko izmanto, lai izsekotu servo pozīciju grādos, un sākotnēji nosaka to līdz 0 grādiem. Pēc tam tas uzreiz izveido nepieciešamos objektus IRrecv objektam, servobjektam un myDisplay LCD objektam (kas arī ir konfigurēts tajā pašā rindā), lai šos objektus varētu izmantot vēlāk.

Tālāk iestatīšanas funkcijā seriālais ports tiek palaists ar ātrumu 9600 biti sekundē, lai pēc vajadzības varētu izmantot seriālo monitoru, lai izsekotu servo pozīcijai. Tas arī pievieno myservo objektu 9. tapai, iedarbina IR uztvērēju un inicializē LCD displeju.

Galvenās cilpas funkcijā, kuras pamatteksts tiek izpildīts tikai tad, ja no IR uztvērēja tiek saņemta IS pārraide, IR uztvērējs dekodē signālu, kas tam nosūtīts no IR tālvadības, izmantojot atšifrēšanas (& rezultātu) funkciju, un pēc tam, ja paziņojumi nosaka, kas lai iestatītu servo atkarībā no saņemtās IR vērtības. Rakstīšanas funkcija tiek izmantota, lai iestatītu servo atbilstošos grādos, un lasīšanas funkcija tiek izmantota, lai atrastu servo pašreizējo leņķi un pēc vajadzības to palielinātu vai samazinātu.

Visbeidzot, servo pašreizējais leņķis tiek nosūtīts gan uz seriālo monitoru, gan uz LCD displeju, izmantojot funkciju myservo.read (), un galvenās cilpas atkārtojas bezgalīgi.

Avota kods:

#include // Arduino standarta bibliotēka #include // IR library #include "Wire.h" //Wire.h for LCD (dažreiz nepieciešams) #include "LiquidCrystal_I2C.h" // LCD bibliotēka

#define servopin 9 // tas nosaka tapu 9 kā tapu, ko izmanto servo vadības vadam (oranža)

int RECV_PIN = 11; // IR fototranzistors nosūta izeju uz 11. tapu

int currentAngle = 0; // deklarēt currentAngle veselu skaitļu mainīgo un iestatīt uz 0

IRrecv irrecv (RECV_PIN); // momentāni parādīt IR uztvērēja objektu decode_results rezultāti; // parauga objekts decode_results. Šis objekts ir atsevišķi no IR uztvērēja.

Servo myservo; // parafēt Servo objektu ar nosaukumu 'myservo' // var izveidot ne vairāk kā astoņus servo objektus

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // paraudzīt LCD objektu un iestatīt konfigurāciju

void setup () {

Sērijas sākums (9600); // sākt seriālo portu

myservo.attach (servopin); // piestiprina servo 9. tapā pie servo objekta

irrecv.enableIRIn (); // iedarbiniet uztvērēju

myDisplay.init (); // inicializēt LCD

myDisplay.backlight (); // ieslēgt LCD apgaismojumu

}

void loop () {

if (irrecv.decode (& rezultāti)) // ja saņemta pārraide …

{Serial.print ("IR vērtība saņemta:");

Serial.println (results.value); // parādītā vērtība

// interpretēt saņemtās komandas… if (results.value == 16724175) // 1 {// left myservo.write (0); }

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

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

if (results.value == 16754775) //+ {// pieaugums currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// samazinājums currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

irrecv.resume (); // Saņemiet nākamo vērtību

// Seriālā monitora druka Serial.print ("Pašreizējā servo pozīcija:");

Serial.println (myservo.read ()); // tas izgūst servo pozīciju un nosūta to uz seriālo monitoru

// LCD drukāt myDisplay.clear ();

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

myDisplay.print (myservo.read ());

kavēšanās (200); // kavēšanās, lai padarītu servo iedarbināšanu stabilu

}

7. darbība: skatieties manu YouTube videoklipu, lai saņemtu palīdzību

Skatiet manu neiekļauto YouTube videoklipu, kas pilnībā apspriež un demonstrē projektu, ja jums ir kādi jautājumi!

Ieteicams: