INHOUDSOPGAWE:

Gyrosensorbeheerde platform vir doolhofraaisels: 3 stappe
Gyrosensorbeheerde platform vir doolhofraaisels: 3 stappe

Video: Gyrosensorbeheerde platform vir doolhofraaisels: 3 stappe

Video: Gyrosensorbeheerde platform vir doolhofraaisels: 3 stappe
Video: Как спрятать данные в ячейках Excel? 2024, Julie
Anonim
Gyrosensorbeheerde platform vir doolhofraaisels
Gyrosensorbeheerde platform vir doolhofraaisels

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

Hierdie eenvoudige projek geïnspireer deur 'n selfbalanserende platform wat terugvoer kry van die versnellingsmetersensor. Kyk gerus as u dit nog nie gedoen het nie.

Die projek gebruik die Arduino UNO - 'n Maklik om 'n mikrobeheerder te gebruik wat u van aanlyn inkopie -webwerwe kan kry! In hierdie instruksies sal ek wys hoe u u eie programmeerbare kantelplatform kan maak - van die ontwerpproses tot die verkryging van onderdele, 3D -druklêers, montering en programmering. Hou aan en laat ons vorentoe gaan!

Stap 1: Vereiste komponente en 3D -gedrukte onderdele

Vereiste komponente en 3D -gedrukte onderdele
Vereiste komponente en 3D -gedrukte onderdele
Vereiste komponente en 3D -gedrukte onderdele
Vereiste komponente en 3D -gedrukte onderdele
Vereiste komponente en 3D -gedrukte onderdele
Vereiste komponente en 3D -gedrukte onderdele

Die lys van die komponente wat vir die projek gebruik word:

1. Arduino UNO mikrobeheerder.

2. Broodbord met springdrade.

3. 'n Boks.

4. Sirkelvormige platform

5. Verbaasdheid.

6. Skakels - 3 nee's

7. 'n Basis vir die montering van drie servo's.

8. Gyro/versnellingsmeter sensor. (MPU6050)

9,1 vierkante meter drade (500 cm) - 4 nrs

10. 3 mm dia staalballe.

Die meeste dele wat vir die projek gebruik is, is 3D -gedruk en ek het die stl. lêers gereed vir druk.

Monteer al die dele soos in die figure getoon. Die doolhof word vasgeplak op die sirkelvormige platform om soos op die prentjie te lyk. Die drie servo's moet warm vasgeplak word op die 3D -gedrukte basis wat op die deksel van die boks gemonteer is. Die boks bevat die Arduino UNO en Breadboard wat saamgestel is soos in die figuur getoon. Die opstel van die broodbord sal in die volgende stap bespreek word.

Na die samestelling moet die finale prototipe lyk soos in die laaste prentjie.

Stap 2: Opstel van broodbord

Opstel van broodbord
Opstel van broodbord
Opstel van broodbord
Opstel van broodbord
Opstel van broodbord
Opstel van broodbord

Na die montering word die Arduino, versnellingsmeter sensor, servo's verbind soos beskryf in die volgende.

Die positiewe en negatiewe relings op die broodbord is gekoppel aan onderskeidelik 5V en GND van Arduino. Die sensor word met die Arduino verbind met behulp van die halwe meter drade wat aan die sensor gesoldeer moet word, sodat die VCC- en GND -penne van die sensor gekoppel moet word aan onderskeidelik +ve en -ve relings op die broodbord. Die SCL- en SDA -penne van die sensor wat aan die A5- en A4 -analoogpenne van Arduino gekoppel moet word. Die PWM -penne van die drie servo's is onderskeidelik verbind met 2, 3, 4 penne van die Arduino en die +ve en -ve penne van al die servo's is gekoppel aan die +ve en -ve relings van die broodbord. Hiermee is ons verbindings gedoen.

Stap 3: Kode vir die projek

u kan die MPU6050- en Servobiblioteke van die internet aflaai en dit vir die projek gebruik. Stel die volgende kode op en laai dit op na die Arduino, en die projek is gereed. Kantel die sensor en u kan die doolhof in dieselfde rigting sien kantel! Dit neem 'n rukkie om die raaisel op te los, want dit is 'n bietjie uitdagend, maar dit is lekker om mee te speel.

#insluit

#insluit

#insluit

Servo Servo1;

Servo Servo2;

Servo Servo3;

MPU6050 sensor;

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t byl, ay, az;

int16_t gx, gy, gz;

leemte opstelling ()

{

Servo1.aanheg (2);

Servo2.aanheg (3);

Servo3.aanheg (4);

Wire.begin ();

Serial.begin (9600);

}

leemte lus ()

{

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

byl = kaart (byl, -17000, 17000, 0, 180);

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

Serial.print ("ax =");

Reeks.afdruk (byl);

Serial.print ("ay =");

Serial.println (ay);

as (byl <80 && ay <80) {

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

as (byl 120) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

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

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3.write (servoPos3 ++); }

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

Servo1. skryf (0);

Servo2. skryf (0);

Servo3. skryf (0);

}

}

Aanbeveel: