Sisukord:

Pöörlev telefonikinnitus: 7 sammu
Pöörlev telefonikinnitus: 7 sammu

Video: Pöörlev telefonikinnitus: 7 sammu

Video: Pöörlev telefonikinnitus: 7 sammu
Video: тестирую 20 БОЛЬШИХ НАСАДОК для БЕЛКОВО-ЗАВАРНОГО КРЕМА. БОЛЬШОЙ ОБЗОР КРУПНЫХ НАСАДОК для БЗК 2024, Juuli
Anonim
Pöörlev telefonikinnitus
Pöörlev telefonikinnitus

See juhend on loodud Lõuna -Florida ülikooli Makecourse'i projektinõude täitmiseks (www.makecourse.com).

Kas soovite teha pöörleva telefonikinnituse, et saaksite oma telefoni sisu vaadata portree- või horisontaalsuunas ilma seda hoidmata? Ärge siis enam otsige.

Selle projekti loomiseks vajate:

- Arduino mikrokontroller ja IDE

- USB -kaabel koodi üleslaadimiseks

- Leivalaud

- Jumper juhtmed

- LCD ekraan

- Servo

- veerg, mida saab servo külge kinnitada

- IR kaugjuhtimispult

- IR vastuvõtja

- 10k oomi takisti

- Kenu lennukikere+ telefoniklamber (või midagi, mis hoiab telefoni paigas)

- 9 V aku kaasaskantava toite jaoks või lihtsalt USB -toitega Arduino

Samm: ehitage infrapuna vastuvõtja ahel

Ehitage infrapuna vastuvõtja ahel
Ehitage infrapuna vastuvõtja ahel
Ehitage IR vastuvõtja ahel
Ehitage IR vastuvõtja ahel

Kõigepealt hüppa GND ja +5 V Arduino juurest leivaplaadi toitepiiretele. Seejärel hüpata oma 10 kOomi takisti +5 V toiteliinilt oma IR -vastuvõtja fototransistori väljundnõelale. Järgmisena ühendage infrapuna vastuvõtja väljundtihvtist Arduino tihvtiga 11 ühendusjuhtmega. Seejärel kasutage kahe hüppaja juhtme abil maandust ja +5 V IR -vastuvõtja vastavatele tihvtidele. Ülaltoodud skeemil kujutatud RC -filter pole vajalik. Lõpuks ei koostanud ma selles etapis näidatud skeemi ja selle allikas on pildil.

Samm: ühendage servo, veerg ja telefonihoidik

Ühendage servo, veerg ja telefonihoidik
Ühendage servo, veerg ja telefonihoidik
Ühendage servo, veerg ja telefonihoidik
Ühendage servo, veerg ja telefonihoidik
Ühendage servo, veerg ja telefonihoidik
Ühendage servo, veerg ja telefonihoidik

Nüüd kasutage kahe hüppajajuhtme abil hüppamist maapinnalt ja +5 V leivaplaadi toitepiiret vastavalt servo pruunidesse ja punastesse juhtmetesse. Seejärel kinnitage ühe hüppaja juhtmega Arduino tihvt 9 servo oranži juhtme külge.

Seejärel kinnitage servo pea külge veerg, nagu on näidatud teisel pildil.

Lõpuks kinnitage midagi veergu telefoni hoidmiseks, näiteks Kenu Airframe+, nagu on näidatud kolmandal pildil.

Samm: ühendage LCD -ekraan servo lugemiseks

Ühendage LCD -ekraan servo lugemiseks
Ühendage LCD -ekraan servo lugemiseks

Hüpake maapinda ja +5 V oma leivalaua toitepiiretelt LCD -ekraanil olevatele vastavatele tihvtidele. Samuti hüpata SDA- ja SCL -tihvtid LCD -ekraanilt Ardiuno peale. Arduino SDA- ja SCL -tihvtid saab tuvastada Arduino plaadi tagaküljelt ning need on kaks tihvti AREF kohal ja maapind 13. tihvti kohal. SCL -tihvt on kõrgeim. See võimaldab LCD -ekraanil lugeda praegust servoasendit.

Samm: kasutage Arduino programmeerimiseks koodi ja raamatukogusid

Kasutage Arduino programmeerimiseks koodi ja raamatukogusid
Kasutage Arduino programmeerimiseks koodi ja raamatukogusid

Laadige alla fail RotatingMountCode.zip. Installige Arduino IDE ja pakkige allalaaditud fail pakendisse Documents / Arduino. Kopeerige kindlasti minu visandite ja teekide kausta sisu oma visandite ja raamatukogude kausta. Avage eskiis ServoIRandLCD ja laadige see oma Arduinosse üles.

Vaadake koodi selgitamiseks hilisemaid samme.

Samm: ühendage soovitud toiteallikas Arduinoga ja kasutage puldi pööramiseks kaugjuhtimispulti

Ühendage soovitud toiteallikas Arduinoga ja kasutage puldi pööramiseks kaugjuhtimispulti!
Ühendage soovitud toiteallikas Arduinoga ja kasutage puldi pööramiseks kaugjuhtimispulti!
Ühendage soovitud toiteallikas Arduinoga ja kasutage puldi pööramiseks kaugjuhtimispulti!
Ühendage soovitud toiteallikas Arduinoga ja kasutage puldi pööramiseks kaugjuhtimispulti!

Jätke Arduino arvutiga ühendatuks või ühendage see arvutist lahti ja kasutage Arduinole alalisvoolu toiteks 9 V akut. Lõpuks kasutage odavat IR -kaugjuhtimispulti, et juhtida servot ja seega ka telefonikinnituse suunda!

Kaugjuhtimispuldi number 1 peaks seadma servoasendi 0 kraadi, number 2 kuni 90 kraadi ja number 3 kuni 180 kraadi. Samal ajal peaksid kaugjuhtimispuldi nupud + ja - suurendama või vähendama servo nurka vastavalt 1 kraadi võrra.

Märkus: Kui kasutate erinevat IR -kaugjuhtimispulti, mis siin pildil, on võimalik, et erinevatele nuppudele vastavad IR -koodid muutuvad. Kui jah, muutke ServoIRandLCD visandit, et kasutada neid IR -koode.

6. toiming: lugege seda lähtekoodi selgitamiseks

Lugege seda lähtekoodi selgitamiseks
Lugege seda lähtekoodi selgitamiseks
Lugege seda lähtekoodi selgitamiseks
Lugege seda lähtekoodi selgitamiseks

Arduino visandi lähtekoodi leiate alt või varem lisatud.zip -failist. Vajalikud teegid leiate 4. sammus varem lisatud.zip -failist.

Esimese asjana sisaldab kood vajalikke teeke, mis on vajalikud eskiisi kõigi funktsioonide käivitamiseks. Järgmisena kuulutab see Arduino tihvti 9 servo PWM-toega signaali tihvtiks. Samuti muudab see Arduino tihvti 11 IR -vastuvõtja jaoks kasutatavaks tihvtiks. Seejärel deklareerib see täisarvulise muutuja, mida kasutatakse servo positsiooni jälgimiseks kraadides, ja seab selle esialgu 0 kraadile. Seejärel kuvab see vajalikud IRrecv -objekti, servo -objekti ja myDisplay LCD -objekti (mis on samuti samal real konfigureeritud) jaoks vajalikud objektid, et neid objekte saaks hiljem kasutada.

Järgmisena käivitatakse seadistusfunktsioonis jadaport kiirusega 9600 bitti sekundis, nii et jadamonitori saab soovi korral kasutada servo asukoha jälgimiseks. Samuti kinnitab see myservo objekti tihvtiga 9, käivitab IR vastuvõtja ja lähtestab LCD ekraani.

Põhiahela funktsioonis, mille põhiosa käivitatakse ainult siis, kui IR -vastuvõtja võtab vastu IR -ülekande, dekodeerib IR -vastuvõtja talle IR -puldilt saadetud signaali, kasutades dekodeerimise (& tulemusi) funktsiooni ja seejärel, kui avaldused määravad, mis et seadistada servo sõltuvalt vastuvõetud IR väärtusest. Kirjutamisfunktsiooni kasutatakse servo sobivatele astmetele seadmiseks ja lugemisfunktsiooni abil servo praeguse nurga leidmiseks ning selle suurendamiseks või vähendamiseks vastavalt vajadusele.

Lõpuks saadetakse servo praegune nurk nii jadamonitorile kui ka LCD -ekraanile, kasutades funktsiooni myservo.read (), ja peamised ahelad korduvad lõputult.

Lähtekood:

#include // Arduino standardraamatukogu #include // IR -raamatukogu #Include "Wire.h" // LCD -juhtme jaoks mõeldud juhtmeühendus (mõnikord vajalik) #Include "LiquidCrystal_I2C.h" // LCD -raamatukogu

#define servopin 9 // see määratleb tihvti 9 kui servo juhtjuhtme tihvti (oranž)

int RECV_PIN = 11; // IR-fototransistor saadab väljundi pin 11-le

int currentAngle = 0; // deklareerige currentAngle täisarv muutuja ja määrake 0

IRrecv irrecv (RECV_PIN); // infrapuna vastuvõtja objekti dekodeerimine decode_results results; // dekodeerida dekodeerimise_tulemuste objekt. See objekt on IR -vastuvõtjast eraldi.

Servo myservo; // teenindada servo -objekti nimega 'myservo' // saab luua maksimaalselt kaheksa servo -objekti

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // LCD -objekti kiirendamine ja konfiguratsiooni seadistamine

tühine seadistus () {

Seriaalne algus (9600); // jadaporti käivitamine

myservo.attach (servopin); // kinnitab tihvti 9 servo servoobjekti külge

irrecv.enableIRIn (); // käivitage vastuvõtja

myDisplay.init (); // LCD initsialiseerimine

myDisplay.backlight (); // LCD taustvalgustuse sisselülitamine

}

void loop () {

if (irrecv.decode (& results)) // kui edastus on vastu võetud …

{Serial.print ("IR väärtus saadud:");

Serial.println (results.value); // kuvatud väärtus on vastu võetud

// tõlgendada vastuvõetud käske… if (results.value == 16724175) // 1 {// left myservo.write (0); }

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

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

if (results.value == 16754775) //+ {// juurdekasv currentAngle = myservo.read (); myservo.write (currentAngle + 1); } if (results.value == 16769055) //- {// vähendamine currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

irrecv.resume (); // Saate järgmise väärtuse

// Seeriamonitori trükk Serial.print ("Servo praegune asukoht:");

Serial.println (myservo.read ()); // see otsib servoasendi ja saadab selle jadamonitorile

// LCD printimine myDisplay.clear ();

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

myDisplay.print (myservo.read ());

viivitus (200); // viivitus, et muuta servo käivitamine stabiilseks

}

Samm: vaadake abi saamiseks minu Youtube'i videot

Vaadake minu noteerimata YouTube'i videot, mis arutab ja demonstreerib projekti täielikult, kui teil on küsimusi!

Soovitan: