INHOUDSOPGAWE:

Roterende telefoonhouer: 7 stappe
Roterende telefoonhouer: 7 stappe

Video: Roterende telefoonhouer: 7 stappe

Video: Roterende telefoonhouer: 7 stappe
Video: MUURTJE STUCEN IN 7 STAPPEN! - Knauf Doe-Het-Zelf 2024, Julie
Anonim
Roterende telefoonhouer
Roterende telefoonhouer

Hierdie instruksies is geskep ter voldoening aan die projekvereiste van die Makecourse aan die Universiteit van Suid -Florida (www.makecourse.com).

Wil u 'n draaibare telefoonhouer maak, sodat u die inhoud van u telefoon in portret- of liggende oriëntasie kan sien sonder om dit in te hou? Moet dan nie verder soek nie.

Om hierdie projek te skep, benodig u:

- Arduino -mikrobeheerder en IDE

- USB -kabel om kode op te laai

- Broodbord

- Jumper Wires

- LCD -skerm

- Servo

- Kolom wat aan die servo geheg kan word

- IR afstandsbediening

- IR -ontvanger

- 10k ohm weerstand

- Kenu Airframe+ Telefoonknip (of iets om die telefoon vas te hou)

- 9 V -battery vir draagbare krag of net USB -aangedrewe Arduino

Stap 1: Bou die IR -ontvangerbaan

Bou die IR -ontvangerbaan
Bou die IR -ontvangerbaan
Bou die IR -ontvangerbaan
Bou die IR -ontvangerbaan

Spring eers GND en +5V van die Arduino na die kragrails op u broodbord. Spring dan u 10k ohm -weerstand van die +5V -kragrail na die uitvoerpen van u IR -ontvanger -fototransistor. Gebruik vervolgens 'n jumperdraad om aan pen 11 op die Arduino te koppel vanaf die uitvoerpen van die IR -ontvanger. Gebruik dan twee springdrade om grond en +5V na die onderskeie penne op die IR -ontvanger te stuur. Die RC -filter in die skema hierbo is nie nodig nie. Laastens het ek nie die skematiese in hierdie stap getoon nie, en die bron daarvoor is in die prentjie.

Stap 2: Koppel die servo, kolom en telefoonhouer

Koppel die servo, kolom en telefoonhouer
Koppel die servo, kolom en telefoonhouer
Koppel die servo, kolom en telefoonhouer
Koppel die servo, kolom en telefoonhouer
Koppel die servo, kolom en telefoonhouer
Koppel die servo, kolom en telefoonhouer

Gebruik nou twee springdrade om van die grond af te spring en +5V van die broodroosters in die bruin en rooi drade van die servo, onderskeidelik. Gebruik dan 'n jumperdraad om pen 9 op die Arduino aan die oranje draad van die servo vas te maak.

Heg dan 'n kolom aan die kop van die servo vas soos in die tweede prentjie getoon.

Heg laastens iets aan om die telefoon aan die kolom te hou, soos die Kenu Airframe+, soos in die derde prentjie getoon.

Stap 3: Koppel die LCD -skerm vir servo -uitlees

Koppel die LCD -skerm vir servo -uitlees
Koppel die LCD -skerm vir servo -uitlees

Spring grond en +5V van u broodroosters na die onderskeie penne op die LCD -skerm. Spring ook die SDA- en SCL -penne van die LCD op die Ardiuno. Die Arduino se SDA- en SCL -penne kan uit die agterkant van die Arduino -bord geïdentifiseer word en is die twee penne bo AREF en grond bo pen 13. Die SCL -pen is die hoogste. Dit laat die LCD -skerm die huidige servoposisie voorlees.

Stap 4: Gebruik die kode en biblioteke wat aangeheg is om die Arduino te programmeer

Gebruik die kode en biblioteke wat aangeheg is om die Arduino te programmeer
Gebruik die kode en biblioteke wat aangeheg is om die Arduino te programmeer

Laai die RotatingMountCode.zip -lêer af. Installeer die Arduino IDE en pak die afgelaaide lêer uit in Documents / Arduino. Maak seker dat u die inhoud van my sketse en biblioteke -gids na u sketse en biblioteke -gids kopieer. Maak die ServoIRandLCD -skets oop en laai dit op na u Arduino.

Sien latere stappe vir die verduideliking van die kode.

Stap 5: Koppel die gewenste kragbron aan Arduino en gebruik die afstandsbediening om die houer te draai

Koppel die gewenste kragbron aan Arduino en gebruik die afstandsbediening om die houer te draai!
Koppel die gewenste kragbron aan Arduino en gebruik die afstandsbediening om die houer te draai!
Koppel die gewenste kragbron aan Arduino en gebruik die afstandsbediening om die houer te draai!
Koppel die gewenste kragbron aan Arduino en gebruik die afstandsbediening om die houer te draai!

Laat die Arduino by u rekenaar aansluit, of ontkoppel dit van u rekenaar en gebruik 'n 9V -battery om die Arduino gelykstroom te verskaf. Gebruik laastens 'n goedkoop IR -afstandsbediening om die servo en dus die oriëntasie van die telefoonhouer te beheer!

Die nommer 1 op die afstandsbediening moet die servoposisie op 0 grade, nommer 2 tot 90 grade en nommer 3 tot 180 grade stel. Intussen moet die + en - knoppies op die afstandsbediening die servo se hoek onderskeidelik met 1 graad verhoog of verminder.

Opmerking: as u 'n ander IR -afstandsbediening gebruik as die hier op die foto, is dit moontlik dat die IR -kodes wat ooreenstem met verskillende knoppies, verander kan word. As dit die geval is, verander die ServoIRandLCD -skets om eerder die IR -kodes te gebruik.

Stap 6: Lees dit vir 'n verduideliking van die bronkode

Lees dit vir 'n verduideliking van die bronkode
Lees dit vir 'n verduideliking van die bronkode
Lees dit vir 'n verduideliking van die bronkode
Lees dit vir 'n verduideliking van die bronkode

Die bronkode vir die Arduino -skets kan hieronder gevind word of in die voorheen aangehegte zip -lêer. Die vereiste biblioteke kan slegs gevind word in die voorheen aangehegte.zip -lêer in stap 4.

Die eerste ding wat die kode doen, is om die nodige biblioteke in te sluit wat nodig is om al die funksies in die skets uit te voer. Vervolgens verklaar dit pen 9 op die Arduino as die PWM-geaktiveerde seinpen vir die servo. Dit maak ook pen 11 op die Arduino die pen wat gebruik word vir die IR -ontvanger. Vervolgens verklaar dit 'n heelgetal veranderlike wat gebruik word om die posisie van die servo in grade by te hou en stel dit aanvanklik op 0 grade. Dan installeer dit die vereiste voorwerpe vir 'n IRrecv -voorwerp, 'n servo -voorwerp en myDisplay LCD -voorwerp (wat ook in dieselfde reël gekonfigureer is), sodat hierdie voorwerpe later gebruik kan word.

In die opstelfunksie word die seriële poort dan met 9600 bits/sek begin, sodat die seriële monitor gebruik kan word om die posisie van die servo by te hou indien nodig. Dit heg ook die myservo -voorwerp aan pen 9, begin die IR -ontvanger en begin die LCD -skerm.

In die hooflusfunksie, waarvan die liggaam slegs uitgevoer word as 'n IR -oordrag vanaf die IR -ontvanger ontvang word, dekodeer die IR -ontvanger die sein wat van die IR -afstandsbediening na die stuur gestuur word met behulp van die dekodeer (& resultate) funksie en dan as verklarings bepaal wat om die servo in te stel, afhangende van die ontvangde IR -waarde. Die skryffunksie word gebruik om die servo op die toepaslike grade in te stel, en die leesfunksie word gebruik om die huidige hoek van die servo te vind en indien nodig te verhoog of te verlaag.

Uiteindelik word die huidige hoek van die servo na die seriële monitor en die LCD -skerm gestuur met behulp van die myservo.read () -funksie, en die hooflusse herhaal onbepaald.

Bronkode:

#include // Arduino standaardbiblioteek #sluit in // IR -biblioteek #include "Wire.h" //Wire.h for LCD (soms nodig) #include "LiquidCrystal_I2C.h" // LCD library

#define servopin 9 // dit definieer pen 9 as die pen wat gebruik word vir die servobedieningsleiding (oranje)

int RECV_PIN = 11; // IR fototransistor stuur uitset na pen 11

int currentAngle = 0; // verklaar currentAngle heelgetal veranderlike en stel dit op 0

IRrecv irrecv (RECV_PIN); // instansieer 'n IR -ontvanger -voorwerp met dekodeeresultate; // installeer 'n voorwerp met dekode_resultate. Hierdie voorwerp is apart van die IR -ontvanger.

Servo myservo; // instansieer 'n Servo -voorwerp met die naam 'myservo' // 'n maksimum van agt servo -voorwerpe kan geskep word

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // installeer LCD -voorwerp en stel konfig

ongeldige opstelling () {

Serial.begin (9600); // begin die seriële poort

myservo.attach (servopin); // plak die servo op pen 9 aan die servo -voorwerp

irrecv.enableIRIn (); // begin die ontvanger

myDisplay.init (); // initialiseer LCD

myDisplay.backlight (); // skakel LCD -agtergrond aan

}

leemte -lus () {

if (irrecv.decode (& resultate)) // as transmissie ontvang is …

{Serial.print ("IR -waarde ontvang:");

Serial.println (resultate.waarde); // vertoonwaarde ontvang

// interpreteer die opdragte wat ontvang is … if (results.value == 16724175) // 1 {// links myservo.write (0); }

as (results.value == 16718055) // 2 {// middelste myservo.write (90); }

as (results.value == 16743045) // 3 {// regs 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 (); // Ontvang die volgende waarde

// Seriële monitorafdruk Serial.print ("Huidige servoposisie:");

Serial.println (myservo.read ()); // dit haal die servoposisie op en stuur dit na die seriële monitor

// LCD -druk myDisplay.clear ();

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

myDisplay.print (myservo.read ());

vertraging (200); // vertraging om die servo -aktivering stabiel te maak

}

Stap 7: Kyk na my Youtube -video vir hulp

Kyk na my ongenoteerde YouTube -video wat die projek volledig bespreek en demonstreer as u enige vrae het!

Aanbeveel: