Innehållsförteckning:

Roterande telefonfäste: 7 steg
Roterande telefonfäste: 7 steg

Video: Roterande telefonfäste: 7 steg

Video: Roterande telefonfäste: 7 steg
Video: РАЗДАЕТ WIFI СЛЕДИТ ЗА ЧЕЛОВЕКОМ 4G камера видеонаблюдения 2024, Juli
Anonim
Roterande telefonfäste
Roterande telefonfäste

Denna instruerbara skapades för att uppfylla projektkravet för Makecourse vid University of South Florida (www.makecourse.com).

Vill du göra en roterande telefonfäste så att du kan se telefonens innehåll i stående eller liggande riktning utan att behöva hålla den? Titta då inte längre.

För att skapa detta projekt behöver du:

- Arduino mikrokontroller och IDE

- USB -kabel för att ladda upp kod

- Brödbräda

- Tröjor

- LCD skärm

- Servo

- Kolumn som kan fästas på servon

- IR -fjärrkontroll

- IR -mottagare

- 10k ohm motstånd

- Kenu Airframe+ Phone Clip (eller något för att hålla telefonen på plats)

- 9 V batteri för bärbar ström eller bara USB -driven Arduino

Steg 1: Bygg IR -mottagarkretsen

Bygg IR -mottagarkretsen
Bygg IR -mottagarkretsen
Bygg IR -mottagarkretsen
Bygg IR -mottagarkretsen

Hoppa först GND och +5V från Arduino till kraftskenorna på din brödbräda. Hoppa sedan ditt 10k ohm motstånd från +5V kraftskena till utgångsstiften på din IR -mottagares fototransistor. Använd sedan en bygelkabel för att ansluta till stift 11 på Arduino från utgångsstiften på IR -mottagaren. Använd sedan två bygelkablar för att skicka mark och +5V till respektive stift på IR -mottagaren. RC -filtret som visas i schemat ovan är inte nödvändigt. Slutligen gjorde jag inte schemat som visas i detta steg, och källan till det finns i bilden.

Steg 2: Anslut servo, kolumn och telefonhållare

Anslut servo, kolumn och telefonhållare
Anslut servo, kolumn och telefonhållare
Anslut servo, kolumn och telefonhållare
Anslut servo, kolumn och telefonhållare
Anslut servo, kolumn och telefonhållare
Anslut servo, kolumn och telefonhållare

Använd nu två bygeltrådar för att hoppa från marken och +5V av brädbrädans kraftskenor i de bruna respektive röda trådarna på servon. Använd sedan en bygelkabel för att fästa stift 9 på Arduino på servoens orange tråd.

Fäst sedan en kolumn på servohuvudet som visas på den andra bilden.

Slutligen fäst något för att hålla telefonen i kolumnen, som Kenu Airframe+, som visas på den tredje bilden.

Steg 3: Anslut LCD -skärmen för Servoavläsning

Anslut LCD -skärmen för Servoavläsning
Anslut LCD -skärmen för Servoavläsning

Hoppa marken och +5V från dina bräda brädans kraftskenor till respektive stift på LCD -skärmen. Hoppa också SDA- och SCL -stiften från LCD -skärmen till Ardiuno. Arduinos SDA- och SCL -stift kan identifieras från baksidan av Arduino -kortet och är de två stiften ovanför AREF och marken ovanför stift 13. SCL -stiften är den högsta. Detta gör att LCD -skärmen kan läsa av den aktuella servopositionen.

Steg 4: Använd koden och biblioteken som är kopplade för att programmera Arduino

Använd koden och de bibliotek som är kopplade för att programmera Arduino
Använd koden och de bibliotek som är kopplade för att programmera Arduino

Ladda ner filen RotatingMountCode.zip. Installera Arduino IDE och packa upp den nedladdade filen till Documents / Arduino. Se till att du kopierar innehållet i mappen skisser och bibliotek till mappen skisser och bibliotek. Öppna ServoIRandLCD -skissen och ladda upp den till din Arduino.

Se senare steg för kodförklaring.

Steg 5: Anslut önskad strömkälla till Arduino och använd fjärrkontrollen för att rotera fästet

Anslut önskad strömkälla till Arduino och använd fjärrkontrollen för att rotera fästet!
Anslut önskad strömkälla till Arduino och använd fjärrkontrollen för att rotera fästet!
Anslut önskad strömkälla till Arduino och använd fjärrkontrollen för att rotera fästet!
Anslut önskad strömkälla till Arduino och använd fjärrkontrollen för att rotera fästet!

Låt antingen Arduino vara ansluten till din dator eller koppla ur den från datorn och använd ett 9V batteri för att ge Arduino likström. Slutligen, använd en billig IR -fjärrkontroll för att styra servon och därför telefonfästets orientering!

Nummer 1 på fjärrkontrollen bör ställa in servopositionen till 0 grader, nummer 2 till 90 grader och nummer 3 till 180 grader. Samtidigt bör + och - knapparna på fjärrkontrollen öka eller minska servos vinkel med 1 grad, respektive.

Obs! Om du använder en annan IR -fjärrkontroll än den som visas här är det möjligt att IR -koder som motsvarar olika knappar ändras. Om så är fallet, ändra ServoIRandLCD -skissen för att använda dessa IR -koder istället.

Steg 6: Läs detta för källkodförklaring

Läs detta för källkodförklaring
Läs detta för källkodförklaring
Läs detta för källkodförklaring
Läs detta för källkodförklaring

Källkoden för Arduino -skissen finns nedan eller i den tidigare bifogade zip -filen. De nödvändiga biblioteken kan bara hittas i den tidigare bifogade zip -filen i steg 4.

Det första koden gör är att inkludera nödvändiga bibliotek som behövs för att köra alla funktioner i skissen. Därefter förklarar den stift 9 på Arduino att vara PWM-aktiverad signalstift för servon. Det gör också stift 11 på Arduino till stiftet som används för IR -mottagaren. Därefter deklarerar den en heltalsvariabel som används för att hålla reda på servos position i grader och ställer in den till 0 grader, till en början. Sedan instansierar den de nödvändiga objekten för ett IRrecv -objekt, ett servoobjekt och myDisplay LCD -objekt (som också är konfigurerat på samma rad) så att dessa objekt kan användas senare.

I installationsfunktionen startas därefter den seriella porten med 9600 bitar/sek så att seriell bildskärm kan användas för att hålla reda på servos position om så önskas. Det fäster också myservo -objektet till stift 9, startar IR -mottagaren och initierar LCD -skärmen.

I huvudslingfunktionen, vars kropp endast utförs om en IR -överföring tas emot från IR -mottagaren, avkodar IR -mottagaren signalen som skickas till den från IR -fjärrkontrollen med hjälp av avkodningsfunktionen (& resultat) och sedan om uttalanden avgör vad för att ställa in servon till beroende på det mottagna IR -värdet. Skrivfunktionen används för att ställa in servon i lämpliga grader, och läsfunktionen används för att hitta den aktuella vinkeln på servon och öka eller minska den efter behov.

Slutligen skickas servos nuvarande vinkel till både seriell bildskärm och LCD -skärm med funktionen myservo.read (), och huvudslingorna upprepas på obestämd tid.

Källkod:

#inkludera // Arduino standardbibliotek #inkludera // IR -bibliotek #inkludera "Wire.h" //Wire.h för LCD (ibland behövs) #inkludera "LiquidCrystal_I2C.h" // LCD -bibliotek

#define servopin 9 // detta definierar stift 9 som stiftet som används för servokontrollkabeln (orange)

int RECV_PIN = 11; // IR-fototransistor skickar utmatning till stift 11

int currentAngle = 0; // deklarera currentAngles heltalsvariabel och ställ in på 0

IRrecv irrecv (RECV_PIN); // instansera ett IR -mottagarobjekt avkodningsresultat; // instansiera ett avkodningsresultat -objekt. Detta objekt är separat från IR -mottagaren.

Servo myservo; // instansiera ett Servo -objekt med namnet 'myservo' // maximalt åtta servoobjekt kan skapas

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // instansera LCD -objekt och konfigurera konfigur

void setup () {

Serial.begin (9600); // starta seriell port

myservo.attach (servopin); // fäster servon på stift 9 på servoobjektet

irrecv.enableIRIn (); // starta mottagaren

myDisplay.init (); // initiera LCD

myDisplay.backlight (); // Slå på LCD -bakgrundsbelysning

}

void loop () {

if (irrecv.decode (& resultat)) // om överföring mottogs …

{Serial.print ("IR -värde mottaget:");

Serial.println (resultat.värde); // visat värde mottaget

// tolka de mottagna kommandona … if (results.value == 16724175) // 1 {// vänster myservo.write (0); }

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

if (results.value == 16743045) // 3 {// höger 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 (); // Få nästa värde

// Seriell bildskärmsutskrift Serial.print ("Aktuell servoposition:");

Serial.println (myservo.read ()); // detta hämtar servopositionen och skickar den till den seriella bildskärmen

// LCD -utskrift myDisplay.clear ();

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

myDisplay.print (myservo.read ());

fördröjning (200); // fördröjning för att göra servostyrningen stabil

}

Steg 7: Titta på min Youtube -video för hjälp

Se min olistade YouTube -video som helt diskuterar och demonstrerar projektet om du har några frågor!

Rekommenderad: