Sisällysluettelo:

Pyörivä puhelinkiinnike: 7 vaihetta
Pyörivä puhelinkiinnike: 7 vaihetta

Video: Pyörivä puhelinkiinnike: 7 vaihetta

Video: Pyörivä puhelinkiinnike: 7 vaihetta
Video: Kipsilevyyn kiinnitys | Kaverin puolesta kyselen | Kipsilevyankkurit 2024, Heinäkuu
Anonim
Pyörivä puhelinkiinnike
Pyörivä puhelinkiinnike

Tämä ohje on luotu täyttämään Etelä -Floridan yliopiston Makecourse -projektin vaatimus (www.makecourse.com).

Haluatko tehdä pyörivän puhelinkiinnityksen, jotta voit katsella puhelimesi sisältöä pysty- tai vaakasuunnassa ilman, että pidät sitä kiinni? Älä sitten katso enää.

Tämän projektin luomiseksi tarvitset:

- Arduino -mikrokontrolleri ja IDE

- USB -kaapeli koodin lataamiseen

- Leipälauta

- Hyppyjohdot

- LCD -näyttö

- Servo

- Sarake, joka voidaan kiinnittää servoon

- IR -kaukosäädin

- IR -vastaanotin

- 10 k ohmin vastus

- Kenu Airframe+ Phone Clip (tai jotain, joka pitää puhelimen paikallaan)

- 9 V: n akku kannettavalle virtalähteelle tai vain USB -käyttöinen Arduino

Vaihe 1: Rakenna infrapunavastaanotinpiiri

Rakenna infrapunavastaanotinpiiri
Rakenna infrapunavastaanotinpiiri
Rakenna infrapunavastaanotinpiiri
Rakenna infrapunavastaanotinpiiri

Hyppää ensin GND ja +5V Arduinosta leipälautasi sähkökiskoihin. Hyppää sitten 10 k ohmin vastuksesi +5 V: n virtakiskosta IR -vastaanottimen fototransistorin ulostulonappiin. Käytä seuraavaksi hyppyjohdinta liittääksesi Arduinon nastan 11 IR -vastaanottimen lähtötapista. Käytä sitten kahta hyppyjohtoa maan ja +5 V: n lähettämiseen IR -vastaanottimen vastaaviin nastoihin. Yllä olevassa kaaviossa kuvattu RC -suodatin ei ole tarpeen. Lopuksi, en tehnyt tässä vaiheessa esitettyä kaaviota, ja sen lähde on kuvassa.

Vaihe 2: Yhdistä servo, sarake ja puhelimen pidike

Yhdistä servo, pylväs ja puhelimen pidike
Yhdistä servo, pylväs ja puhelimen pidike
Yhdistä servo, pylväs ja puhelimen pidike
Yhdistä servo, pylväs ja puhelimen pidike
Yhdistä servo, pylväs ja puhelimen pidike
Yhdistä servo, pylväs ja puhelimen pidike

Käytä nyt kahta hyppyjohtoa hyppäämään maasta ja +5 V leipälevyn virtakiskoista servon ruskeisiin ja punaisiin johtoihin. Kiinnitä sitten yhdellä hyppyjohdolla Arduinon nasta 9 servon oranssiin lankaan.

Kiinnitä sitten sarake servon päähän, kuten toisessa kuvassa.

Kiinnitä lopuksi jotain, joka pitää puhelinta sarakkeessa, kuten Kenu Airframe+, kuten näkyy kolmannessa kuvassa.

Vaihe 3: Liitä LCD -näyttö servolukua varten

Liitä nestekidenäyttö servonäyttöä varten
Liitä nestekidenäyttö servonäyttöä varten

Hyppää maahan ja +5 V leipälevyn virtakiskoista LCD -näytön vastaaviin nastoihin. Hyppää myös SDA- ja SCL -nastat nestekidenäytöstä Ardiunoon. Arduinon SDA- ja SCL -nastat voidaan tunnistaa Arduino -levyn takaa ja ne ovat kaksi nastaa AREF: n yläpuolella ja maadoitus nastan 13 yläpuolella. SCL -tappi on korkein. Näin LCD -näyttö voi lukea nykyisen servoasennon.

Vaihe 4: Käytä koodia ja liitettyjä kirjastoja Arduinon ohjelmointiin

Käytä koodia ja liitettyjä kirjastoja Arduinon ohjelmointiin
Käytä koodia ja liitettyjä kirjastoja Arduinon ohjelmointiin

Lataa RotatingMountCode.zip -tiedosto. Asenna Arduino IDE ja pura ladattu tiedosto Documents / Arduino -tiedostoon. Varmista, että kopioit luonnokseni ja kirjastot -kansion sisällöt luonnoksesi ja kirjastot -kansioon. Avaa ServoIRandLCD -luonnos ja lataa se Arduinoosi.

Katso koodin selitykset myöhemmissä vaiheissa.

Vaihe 5: Liitä haluttu virtalähde Arduinoon ja kierrä telinettä kaukosäätimellä

Liitä haluttu virtalähde Arduinoon ja kierrä telinettä kaukosäätimellä!
Liitä haluttu virtalähde Arduinoon ja kierrä telinettä kaukosäätimellä!
Liitä haluttu virtalähde Arduinoon ja kierrä telinettä kaukosäätimellä!
Liitä haluttu virtalähde Arduinoon ja kierrä telinettä kaukosäätimellä!

Jätä Arduino kytkettynä tietokoneeseesi tai irrota se tietokoneesta ja käytä 9 V: n akkua toimittaaksesi Arduinolle tasavirtaa. Käytä lopuksi halpaa infrapunakaukosäädintä servon ja siten puhelinkiinnityksen suunnan ohjaamiseen!

Kaukosäätimen numeron 1 pitäisi asettaa servoasento 0 asteen, numero 2 - 90 astetta ja numero 3 - 180 astetta. Samaan aikaan kaukosäätimen + ja - painikkeiden tulee lisätä tai pienentää servokulmaa 1 aste.

Huomautus: Jos käytät erilaista IR -kaukosäädintä kuin tässä kuvassa, on mahdollista, että eri painikkeita vastaavat IR -koodit muuttuvat. Jos näin on, muokkaa ServoIRandLCD -luonnosta käyttääksesi niitä IR -koodeja.

Vaihe 6: Lue tämä lähdekoodin selityksestä

Lue tämä lähdekoodin selityksestä
Lue tämä lähdekoodin selityksestä
Lue tämä lähdekoodin selityksestä
Lue tämä lähdekoodin selityksestä

Arduino -luonnoksen lähdekoodi löytyy alta tai aiemmin liitetystä.zip -tiedostosta. Tarvittavat kirjastot löytyvät vain aiemmin liitetystä.zip -tiedostosta vaiheessa 4.

Ensimmäinen asia, jonka koodi tekee, sisältää tarvittavat kirjastot, joita tarvitaan luonnoksen kaikkien toimintojen suorittamiseen. Seuraavaksi se julistaa Arduinon nastan 9 olevan PWM-yhteensopiva signaalinappi servolle. Se tekee myös Arduinon nastasta 11 IR -vastaanottimen tapin. Seuraavaksi se ilmoittaa kokonaislukumuuttujan, jota käytetään seuraamaan servon asemaa asteina, ja asettaa sen aluksi 0 asteeseen. Sitten se luo tarvittavat objektit IRrecv -objektille, servo -objektille ja myDisplay LCD -objektille (joka on myös määritetty samalle riville), jotta näitä objekteja voidaan käyttää myöhemmin.

Seuraavaksi asetustoiminnossa sarjaportti käynnistetään nopeudella 9600 bittiä sekunnissa, joten sarjamonitoria voidaan käyttää haluttaessa servon sijainnin seurantaan. Se myös liittää myservo -objektin nastaan 9, käynnistää IR -vastaanottimen ja alustaa LCD -näytön.

Pääsilmukatoiminnossa, jonka runko suoritetaan vain, jos infrapunavastaanotin vastaanottaa IR -lähetyksen, IR -vastaanotin purkaa sille IR -kaukosäätimestä lähetetyn signaalin dekoodaustoiminnolla (& tulokset) ja sitten jos lausekkeet määrittävät mitä servon asettamiseksi vastaanotetun IR -arvon mukaan. Kirjoitustoimintoa käytetään servon asettamiseen sopiviin asteisiin, ja lukutoimintoa käytetään servon nykyisen kulman löytämiseen ja sen lisäämiseen tai vähentämiseen tarpeen mukaan.

Lopuksi servon nykyinen kulma lähetetään sekä sarjamonitorille että nestekidenäytölle myservo.read () -toiminnon avulla, ja pääsilmukat toistuvat loputtomiin.

Lähdekoodi:

#include // Arduino -vakiokirjasto #include // IR -kirjasto #Include "Wire.h" // lanka.h nestekidenäytölle (joskus tarvitaan) #include "LiquidCrystal_I2C.h" // LCD -kirjasto

#define servopin 9 // tämä määrittelee nastan 9 servo -ohjausjohdon tapiksi (oranssi)

int RECV_PIN = 11; // IR-valotransistori lähettää lähdön nastaan 11

int currentAngle = 0; // deklaroi currentAngle -kokonaislukumuuttuja ja aseta arvoksi 0

IRrecv irrecv (RECV_PIN); // hetkellistää IR -vastaanottimen objekti decode_results results; // purkaa dekoodaustulosten objekti. Tämä objekti on erillään IR -vastaanottimesta.

Servo myservo; // luodaan servo -objekti nimeltä "myservo" // enintään kahdeksan servo -objektia voidaan luoda

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // instantiate LCD objekti ja setup config

void setup () {

Sarja.alku (9600); // sarjaportin aloittaminen

myservo.attach (servopin); // kiinnittää nastan 9 servon servo -objektiin

irrecv.enableIRIn (); // käynnistä vastaanotin

myDisplay.init (); // LCD: n alustaminen

myDisplay. taustavalo (); // kytke LCD -taustavalo päälle

}

void loop () {

if (irrecv.decode (& results)) // jos lähetys vastaanotettu…

{Serial.print ("IR -arvo vastaanotettu:");

Sarja.println (tulokset.arvo); // näyttöarvo vastaanotettu

// tulkita vastaanotetut komennot… if (results.value == 16724175) // 1 {// left myservo.write (0); }

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

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

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

irrecv.resume (); // Vastaanota seuraava arvo

// Sarjamonitorin tulostus Serial.print ("Nykyinen servoasento:");

Sarja.println (myservo.read ()); // tämä hakee servoasennon ja lähettää sen sarjamonitorille

// LCD -tulostus myDisplay.clear ();

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

myDisplay.print (myservo.read ());

viive (200); // viive, jotta servotoiminnasta tulee vakaa

}

Vaihe 7: Katso apua Youtube -videostani

Katso piilotettu YouTube -videoni, joka käsittelee ja esittelee projektin kokonaisuudessaan, jos sinulla on kysyttävää!

Suositeltava: