Taula de continguts:

Plataforma controlada per sensor giroscòpic per a trencaclosques de laberint: 3 passos
Plataforma controlada per sensor giroscòpic per a trencaclosques de laberint: 3 passos

Vídeo: Plataforma controlada per sensor giroscòpic per a trencaclosques de laberint: 3 passos

Vídeo: Plataforma controlada per sensor giroscòpic per a trencaclosques de laberint: 3 passos
Vídeo: Кварцевый ламинат на пол. Все этапы. ПЕРЕДЕЛКА ХРУЩЕВКИ от А до Я #34 2024, Juliol
Anonim
Plataforma controlada per sensor giroscòpic per a trencaclosques de laberint
Plataforma controlada per sensor giroscòpic per a trencaclosques de laberint

Aquesta instrucció es va crear per complir els requisits del projecte del curs Make a la Universitat de South Florida (www.makecourse.com)"

Aquest senzill projecte s'inspira en una plataforma d'autoequilibri que rep el feedback del sensor de l'acceleròmetre. Comproveu-ho si encara no ho heu fet.

El projecte utilitza Arduino UNO: un microcontrolador fàcil d’utilitzar que podeu obtenir des de llocs web de compres en línia. En aquest instructiu, mostraré com podeu crear la vostra pròpia plataforma basculant programable, des del procés de disseny fins a l’aprovisionament de peces, fitxers d’impressió 3D, muntatge i programació. Seguiu i avancem!

Pas 1: components necessaris i peces impreses en 3D

Components necessaris i peces impreses en 3D
Components necessaris i peces impreses en 3D
Components necessaris i peces impreses en 3D
Components necessaris i peces impreses en 3D
Components necessaris i peces impreses en 3D
Components necessaris i peces impreses en 3D

La llista dels components utilitzats per al projecte:

1. Microcontrolador Arduino UNO.

2. Taula de pa amb cables de pont.

3. Una caixa.

4. Plataforma circular

5. Laberint.

6. Enllaços: 3 no

7. Una base per muntar tres servos.

8. Sensor giroscòpic / acceleròmetre. (MPU6050)

Filferros de 9,1 metres quadrats (500 cm): 4 no

10. Boles d’acer de 3 mm de diàmetre.

La majoria de les parts que s’utilitzen per al projecte estan impreses en 3D i he adjuntat el stl. fitxers llestos per imprimir.

Muntar totes les parts tal com es mostra a les figures. El laberint s’enganxa en calent a la plataforma circular per semblar a la imatge. Els tres servos s’han d’enganxar a la base impresa en 3D que es munta a la tapa de la caixa. La caixa conté Arduino UNO i Breadboard reunits com es mostra a la figura. La configuració de la taula de treball es parlarà al següent pas.

Després del muntatge, el prototip final hauria de semblar a la darrera imatge.

Pas 2: Configuració de la taula de pa

Configuració de taulers de pa
Configuració de taulers de pa
Configuració de taulers de pa
Configuració de taulers de pa
Configuració de taulers de pa
Configuració de taulers de pa

Després del muntatge, els servos Arduino, sensor acceleròmetre, es connecten tal com es descriu a continuació.

Els rails positius i negatius de la placa de connexió estan connectats a 5V i GND d’Arduino respectivament. El sensor es connecta a l’Arduino mitjançant cables de mig metre que s’han de soldar al sensor de manera que els passadors VCC i GND del sensor es connectin als rails + ve i -ve de la placa de control respectivament. Els pins SCL i SDA del sensor que es connectaran als pins analògics A5 i A4 d’Arduino. Els pins PWM dels tres servos estan connectats a 2, 3, 4 pins de l’Arduino respectivament i els pins + ve i -ve de tots els servos estan connectats als rails + ve i -ve de la placa. amb això, es realitzen les nostres connexions.

Pas 3: Codi del projecte

podeu descarregar les biblioteques MPU6050 i Servo des d'Internet i utilitzar-les per al projecte. Compileu i pengeu el següent codi a Arduino i el projecte està a punt. Inclineu el sensor i veureu el laberint inclinant-se en la mateixa direcció. Es necessita una mica de temps per resoldre el trencaclosques, ja que és una mica difícil, però és divertit jugar-hi.

#incloure

#incloure

#incloure

Servo Servo1;

Servo Servo2;

Servo Servo3;

Sensor MPU6050;

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t ax, ay, az;

int16_t gx, gy, gz;

configuració nul·la ()

{

Servo1.attach (2);

Servo2.attach (3);

Servo3.attach (4);

Wire.begin ();

Serial.begin (9600);

}

bucle buit ()

{

sensor.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);

ax = mapa (ax, -17000, 17000, 0, 180);

ay = mapa (ay, -17000, 17000, 0, 180);

Serial.print ("ax =");

Serial.print (ax);

Serial.print ("ay =");

Serial.println (ay);

if (ax <80 && ay <80) {

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

si (destral 120) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

if (ax> 120 && ay> 0) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3.write (servoPos3 ++); }

if (ax == 90 && ay == 90) {

Servo1.write (0);

Servo2.write (0);

Servo3.write (0);

}

}

Recomanat: