Taula de continguts:

Muntatge giratori del telèfon: 7 passos
Muntatge giratori del telèfon: 7 passos

Vídeo: Muntatge giratori del telèfon: 7 passos

Vídeo: Muntatge giratori del telèfon: 7 passos
Vídeo: Как штукатурить откосы на окнах СВОИМИ РУКАМИ 2024, De novembre
Anonim
Muntatge rotatiu del telèfon
Muntatge rotatiu del telèfon

Aquesta instrucció es va crear per complir els requisits del projecte del Makecourse de la Universitat del Sud de Florida (www.makecourse.com).

Voleu muntar un telèfon giratori perquè pugueu visualitzar el contingut del telèfon en orientació vertical o horitzontal sense haver de mantenir-lo? Llavors, no busqueu més.

Per crear aquest projecte, necessitareu:

- Microcontrolador Arduino i IDE

- Cable USB per pujar codi

- Taula de pa

- Cavalls de pont

- Pantalla LCD

- Servo

- Columna que es pot fixar al servo

- Comandament IR

- Receptor IR

- Resistència de 10k ohm

- Kenu Airframe + Clip de telèfon (o alguna cosa per mantenir el telèfon al seu lloc)

- Bateria de 9 V per a alimentació portàtil o només Arduino alimentat per USB

Pas 1: Creeu el circuit del receptor IR

Construeix el circuit del receptor IR
Construeix el circuit del receptor IR
Construeix el circuit del receptor IR
Construeix el circuit del receptor IR

Primer, salteu GND i + 5V des de l’Arduino als rails de potència de la vostra taula de suport. A continuació, salteu la resistència de 10 k ohmis des del carril d'alimentació de + 5 V fins al pin de sortida del fototransistor del receptor IR. A continuació, utilitzeu un cable de pont per connectar-vos al pin 11 de l'Arduino des del pin de sortida del receptor IR. A continuació, utilitzeu dos cables de pont per enviar terra i + 5 V als respectius pins del receptor IR. El filtre RC que apareix a l'esquema anterior no és necessari. Finalment, no vaig fer l’esquema que es mostra en aquest pas i la font d’ell és present a la imatge.

Pas 2: connecteu el servidor, la columna i el suport del telèfon

Connecteu el servidor, la columna i el suport del telèfon
Connecteu el servidor, la columna i el suport del telèfon
Connecteu el servidor, la columna i el suport del telèfon
Connecteu el servidor, la columna i el suport del telèfon
Connecteu el servidor, la columna i el suport del telèfon
Connecteu el servidor, la columna i el suport del telèfon

Ara, utilitzeu dos cables jumper per saltar de terra i + 5 V dels rails d’alimentació dels taulers de control als cables marró i vermell del servo, respectivament. A continuació, utilitzeu un cable de pont per fixar el pin 9 de l’Arduino al fil taronja del servo.

A continuació, fixeu una columna al cap del servo com es mostra a la segona imatge.

Finalment, connecteu alguna cosa per subjectar el telèfon a la columna, com el Kenu Airframe +, tal com es mostra a la tercera imatge.

Pas 3: connecteu la pantalla LCD per a la lectura del servo

Connecteu la pantalla LCD per a la lectura de servo
Connecteu la pantalla LCD per a la lectura de servo

Saltar a terra i + 5 V des dels rails elèctrics de la placa de control fins als respectius pins de la pantalla LCD. A més, salteu els pins SDA i SCL de la pantalla LCD a l'Ardiuno. Els pins SDA i SCL de l'Arduino es poden identificar des de la part posterior de la placa Arduino i són els dos pins situats per sobre de AREF i Ground per sobre del pin 13. El pin SCL és el més alt. Això permet que la pantalla LCD llegeixi la posició actual del servo.

Pas 4: utilitzeu el codi i les biblioteques adjuntes per programar l'Arduino

Utilitzeu el codi i les biblioteques adjuntes per programar l'Arduino
Utilitzeu el codi i les biblioteques adjuntes per programar l'Arduino

Descarregueu el fitxer RotatingMountCode.zip. Instal·leu l'IDE Arduino i descomprimiu el fitxer descarregat a Documents / Arduino. Assegureu-vos de copiar el contingut de la carpeta d'esbossos i biblioteques a la carpeta d'esbossos i biblioteques. Obriu l'esbós de ServoIRandLCD i pengeu-lo al vostre Arduino.

Vegeu els passos posteriors per a l'explicació del codi.

Pas 5: connecteu la font d'alimentació desitjada a Arduino i feu servir el comandament a distància per girar la muntura

Connecteu la font d’energia desitjada a Arduino i feu servir el comandament a distància per girar la muntura
Connecteu la font d’energia desitjada a Arduino i feu servir el comandament a distància per girar la muntura
Connecteu la font d’energia desitjada a Arduino i feu servir el comandament a distància per girar la muntura
Connecteu la font d’energia desitjada a Arduino i feu servir el comandament a distància per girar la muntura

Deixeu l'Arduino endollat a l'ordinador o desconnecteu-lo de l'ordinador i utilitzeu una bateria de 9V per proporcionar alimentació de CC a l'Arduino. Finalment, utilitzeu un comandament a distància IR barat per controlar el servo i, per tant, l’orientació del muntatge del telèfon.

El número 1 del comandament a distància hauria d’establir la posició del servo a 0 graus, el número 2 a 90 graus i el número 3 a 180 graus. Mentrestant, els botons + i - del comandament haurien d’incrementar o disminuir l’angle del servo en 1 grau, respectivament.

Nota: Si utilitzeu un control remot IR diferent del que es mostra aquí, és possible que els codis IR corresponents a diversos botons hagin canviat. Si és així, modifiqueu l'esbós ServoIRandLCD per utilitzar aquests codis IR.

Pas 6: llegiu això per obtenir una explicació del codi font

Llegiu això per obtenir una explicació del codi font
Llegiu això per obtenir una explicació del codi font
Llegiu això per obtenir una explicació del codi font
Llegiu això per obtenir una explicació del codi font

El codi font de l'esbós d'Arduino es pot trobar a continuació o al fitxer.zip adjunt anteriorment. Les biblioteques necessàries només es poden trobar al fitxer.zip adjunt anteriorment al pas 4.

El primer que fa el codi és incloure les biblioteques necessàries per executar totes les funcions de l'esbós. A continuació, declara que el pin 9 de l'Arduino és el pin de senyal habilitat per PWM per al servo. També fa que el pin 11 de l’Arduino sigui el pin que s’utilitza per al receptor IR. A continuació, declara una variable sencera que s’utilitza per fer un seguiment de la posició del servo en graus i el defineix inicialment a 0 graus. A continuació, instancia els objectes necessaris per a un objecte IRrecv, un servo objecte i un objecte myDisplay LCD (que també es configura a la mateixa línia) perquè aquests objectes es puguin utilitzar més endavant.

A continuació, a la funció de configuració, el port sèrie s'inicia a 9600 bits / seg, de manera que es pot utilitzar el monitor sèrie per fer un seguiment de la posició del servo si es desitja. També connecta l’objecte myservo al pin 9, arrenca el receptor IR i inicialitza la pantalla LCD.

A la funció de bucle principal, el cos de la qual només s’executa si es rep una transmissió IR des del receptor IR, el receptor IR descodifica el senyal que se li envia des del comandament IR mitjançant la funció de decodificació (& resultats) i, després, si les sentències determinen què per configurar el servo en funció del valor IR rebut. La funció d'escriptura s'utilitza per configurar el servo als seus graus adequats i la funció de lectura s'utilitza per trobar l'angle actual del servo i incrementar-lo o disminuir-lo segons sigui necessari.

Finalment, l’angle actual del servo s’envia al monitor sèrie i a la pantalla LCD mitjançant la funció myservo.read () i els bucles principals s’itereixen indefinidament.

Codi font:

#include // Biblioteca estàndard Arduino # include // Biblioteca IR #include "Wire.h" //Wire.h per a LCD (de vegades es necessita) #include "LiquidCrystal_I2C.h" // Biblioteca LCD

#define servopin 9 // defineix el pin 9 com el pin utilitzat per al cable de control del servo (taronja)

int RECV_PIN = 11; // El fototransistor IR envia la sortida al pin 11

int CurrentAngle = 0; // declarar la variable enter currentAngle i establir-lo a 0

IRrecv irrecv (RECV_PIN); // instanciar un objecte receptor IR resultats decode_results; // instanciar un objecte decode_results. Aquest objecte és separat del receptor IR.

Servo miservo; // instanciar un objecte Servo anomenat 'myservo' // es poden crear un màxim de vuit objectes servo

LiquidCrystal_I2C myDisplay (0x27, 16, 2); // instanciar objecte LCD i configurar config

configuració nul·la () {

Serial.begin (9600); // iniciar el port sèrie

myservo.attach (servopin); // fixa el servo al pin 9 a l'objecte servo

irrecv.enableIRIn (); // engega el receptor

myDisplay.init (); // inicialitzar LCD

myDisplay.backlight (); // activa la llum de fons LCD

}

bucle buit () {

if (irrecv.decode (& results)) // si la transmissió ha rebut …

{Serial.print ("Valor IR rebut:");

Serial.println (results.value); // mostra el valor rebut

// interpreta les ordres rebudes … if (results.value == 16724175) // 1 {// va deixar 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) // - {// decrement currentAngle = myservo.read (); myservo.write (currentAngle - 1); }}

irrecv.resume (); // Rep el següent valor

// Serial monitor print Serial.print ("Posició actual del servo:");

Serial.println (myservo.read ()); // recupera la posició del servo i l’envia al monitor sèrie

// Impressió LCD myDisplay.clear ();

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

myDisplay.print (myservo.read ());

retard (200); // retard per fer que l’actuació del servo sigui estable

}

Pas 7: mireu el vídeo de Youtube per obtenir ajuda

Mireu el meu vídeo de YouTube que no apareix a la llista i que tracta i demostra completament el projecte si teniu cap pregunta.

Recomanat: