Sommario:

Supporto per telefono rotante: 7 passaggi
Supporto per telefono rotante: 7 passaggi

Video: Supporto per telefono rotante: 7 passaggi

Video: Supporto per telefono rotante: 7 passaggi
Video: TOP 4 : Miglior Supporto per Telefono in Bicicletta 2022 2024, Novembre
Anonim
Supporto per telefono rotante
Supporto per telefono rotante

Questo istruttivo è stato creato in adempimento del requisito del progetto del Makecourse presso la University of South Florida (www.makecourse.com).

Vuoi creare un supporto per telefono rotante in modo da poter visualizzare i contenuti del tuo telefono in orientamento verticale o orizzontale senza doverlo tenere? Quindi, non cercare oltre.

Per creare questo progetto, avrai bisogno di:

- Microcontrollore Arduino e IDE

- Cavo USB per caricare il codice

- Tagliere

- Ponticelli

- Display LCD

- Servo

- Colonna che può essere collegata al servo

- Telecomando IR

- Ricevitore IR

- Resistenza da 10k ohm

- Kenu Airframe + Phone Clip (o qualcosa per tenere il telefono in posizione)

- Batteria da 9 V per alimentazione portatile o solo Arduino alimentato tramite USB

Passaggio 1: costruire il circuito del ricevitore IR

Costruisci il circuito del ricevitore IR
Costruisci il circuito del ricevitore IR
Costruisci il circuito del ricevitore IR
Costruisci il circuito del ricevitore IR

Per prima cosa, salta GND e +5V da Arduino ai binari di alimentazione sulla breadboard. Quindi, salta il resistore da 10k ohm dalla barra di alimentazione +5V al pin di uscita del fototransistor del ricevitore IR. Quindi, utilizzare un ponticello per connettersi al pin 11 su Arduino dal pin di uscita del ricevitore IR. Quindi, utilizzare due ponticelli per inviare massa e +5V ai rispettivi pin sul ricevitore IR. Il filtro RC raffigurato nello schema sopra non è necessario. Infine, non ho realizzato lo schema mostrato in questo passaggio e la fonte è presente nell'immagine.

Passaggio 2: collegare il servo, la colonna e il supporto del telefono

Collega il servo, la colonna e il supporto del telefono
Collega il servo, la colonna e il supporto del telefono
Collega il servo, la colonna e il supporto del telefono
Collega il servo, la colonna e il supporto del telefono
Collega il servo, la colonna e il supporto del telefono
Collega il servo, la colonna e il supporto del telefono

Ora, usa due ponticelli per saltare da terra e +5V dei binari di alimentazione della breadboard rispettivamente nei fili marrone e rosso del servo. Quindi, usa un ponticello per collegare il pin 9 su Arduino al filo arancione del servo.

Quindi, collega una colonna alla testa del servo come mostrato nella seconda immagine.

Infine, collega qualcosa per tenere il telefono alla colonna, come Kenu Airframe+, come mostrato nella terza immagine.

Passaggio 3: collegare il display LCD per la lettura dei servi

Collegare il display LCD per la lettura dei servi
Collegare il display LCD per la lettura dei servi

Salta terra e +5V dai binari di alimentazione della breadboard ai rispettivi pin sul display LCD. Inoltre, salta i pin SDA e SCL dall'LCD sull'Ardiuno. I pin SDA e SCL di Arduino possono essere identificati dal retro della scheda Arduino e sono i due pin sopra AREF e Ground sopra il pin 13. Il pin SCL è quello più alto. Ciò consente al display LCD di leggere la posizione corrente del servo.

Passaggio 4: utilizzare il codice e le librerie allegate per programmare Arduino

Usa il codice e le librerie allegate per programmare Arduino
Usa il codice e le librerie allegate per programmare Arduino

Scarica il file RotatingMountCode.zip. Installa l'IDE Arduino e decomprimi il file scaricato in Documents\Arduino. Assicurati di copiare il contenuto della cartella dei miei schizzi e delle biblioteche nella cartella degli schizzi e delle biblioteche. Apri lo sketch ServoIRandLCD e caricalo sul tuo Arduino.

Vedere i passaggi successivi per la spiegazione del codice.

Passaggio 5: collega la fonte di alimentazione desiderata ad Arduino e usa il telecomando per ruotare il supporto

Collega la fonte di alimentazione desiderata ad Arduino e usa il telecomando per ruotare il supporto!
Collega la fonte di alimentazione desiderata ad Arduino e usa il telecomando per ruotare il supporto!
Collega la fonte di alimentazione desiderata ad Arduino e usa il telecomando per ruotare il supporto!
Collega la fonte di alimentazione desiderata ad Arduino e usa il telecomando per ruotare il supporto!

Lascia l'Arduino collegato al computer o scollegalo dal computer e utilizza una batteria da 9 V per fornire alimentazione CC all'Arduino. Infine, usa un telecomando IR economico per controllare il servo e quindi l'orientamento del supporto del telefono!

Il numero 1 sul telecomando dovrebbe impostare la posizione del servo su 0 gradi, il numero 2 su 90 gradi e il numero 3 su 180 gradi. Nel frattempo i pulsanti + e - sul telecomando dovrebbero aumentare o diminuire l'angolo del servo di 1 grado, rispettivamente.

Nota: se si utilizza un telecomando IR diverso da quello illustrato qui, è possibile che i codici IR corrispondenti ai vari pulsanti siano cambiati. In tal caso, modificare lo sketch ServoIRandLCD per utilizzare invece quei codici IR.

Passaggio 6: leggi questo per la spiegazione del codice sorgente

Leggi questo per la spiegazione del codice sorgente
Leggi questo per la spiegazione del codice sorgente
Leggi questo per la spiegazione del codice sorgente
Leggi questo per la spiegazione del codice sorgente

Il codice sorgente per lo sketch Arduino può essere trovato sotto o nel file.zip precedentemente allegato. Le librerie richieste possono essere trovate solo nel file.zip precedentemente allegato al passaggio 4.

La prima cosa che fa il codice è includere le librerie necessarie per eseguire tutte le funzioni nello sketch. Successivamente, dichiara che il pin 9 su Arduino è il pin del segnale abilitato per PWM per il servo. Inoltre, rende il pin 11 di Arduino il pin utilizzato per il ricevitore IR. Successivamente, dichiara una variabile intera utilizzata per tenere traccia della posizione del servo in gradi e la imposta inizialmente a 0 gradi. Quindi, istanzia gli oggetti richiesti per un oggetto IRrecv, un oggetto servo e un oggetto LCD myDisplay (anch'esso configurato nella stessa riga) in modo che questi oggetti possano essere utilizzati in seguito.

Successivamente, nella funzione di configurazione, la porta seriale viene avviata a 9600 bit/sec in modo che il monitor seriale possa essere utilizzato per tenere traccia della posizione del servo, se lo si desidera. Inoltre collega l'oggetto myservo al pin 9, avvia il ricevitore IR e inizializza il display LCD.

Nella funzione loop principale, il cui corpo viene eseguito solo se viene ricevuta una trasmissione IR dal ricevitore IR, il ricevitore IR decodifica il segnale inviato dal telecomando IR utilizzando la funzione decode(&results) e quindi le istruzioni if determinano cosa per impostare il servo a seconda del valore IR ricevuto. La funzione di scrittura viene utilizzata per impostare il servo sui gradi appropriati e la funzione di lettura viene utilizzata per trovare l'angolo corrente del servo e incrementarlo o decrementarlo secondo necessità.

Infine, l'angolo corrente del servo viene inviato sia al monitor seriale che al display LCD utilizzando la funzione myservo.read(), e il ciclo principale itera indefinitamente.

Codice sorgente:

#include //Libreria standard Arduino#include //Libreria IR #include "Wire.h" //Wire.h per LCD (a volte necessario) #include "LiquidCrystal_I2C.h" //Libreria LCD

#define servopin 9 // definisce il pin 9 come il pin utilizzato per il cavo del servocomando (arancione)

int RECV_PIN = 11; //Il fototransistor IR invia l'output al pin 11

int CurrentAngle = 0; //dichiara la variabile intera currentAngle e la imposta su 0

IRrecv irrecv(RECV_PIN); //istanzia un oggetto ricevitore IR decode_results results; //istanzia un oggetto decode_results. Questo oggetto è separato dal ricevitore IR.

Servo mio servo; //istanzia un oggetto Servo chiamato 'myservo' //può essere creato un massimo di otto oggetti servo

LiquidCrystal_I2C myDisplay(0x27, 16, 2); //istanzia l'oggetto LCD e imposta la configurazione

void setup() {

Serial.begin(9600); //avvia la porta seriale

myservo.attach(servopin); //attacca il servo sul pin 9 all'oggetto servo

irrecv.enableIRIn(); //avvia il ricevitore

mioDisplay.init(); //inizializzo LCD

mioDisplay.backlight(); // accendi la retroilluminazione LCD

}

ciclo vuoto() {

if (irrecv.decode(&results)) //se la trasmissione è stata ricevuta…

{ Serial.print("Valore IR ricevuto: ");

Serial.println(results.value); //visualizza il valore ricevuto

//interpreta i comandi ricevuti… if (results.value == 16724175) //1 { //left myservo.write(0); }

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

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

if (results.value == 16754775) //+ { //increment currentAngle = myservo.read(); myservo.write(currentAngle + 1); } if (results.value == 16769055) //- { //decrementa currentAngle = myservo.read(); myservo.write(currentAngle - 1); } }

irrecv.resume(); //Ricevi il valore successivo

//Serial monitor print Serial.print("Posizione servo corrente: ");

Serial.println(mioservo.read()); //questo recupera la posizione del servo e la invia al monitor seriale

//stampa LCD myDisplay.clear();

myDisplay.print("Deg. servo: ");

mioDisplay.print(mioservo.read());

ritardo(200); //ritardo per rendere stabile l'azionamento del servo

}

Passaggio 7: guarda il mio video di Youtube per aiuto

Guarda il mio video YouTube non in elenco che discute e dimostra completamente il progetto se hai domande!

Consigliato: