Mündəricat:

Maze Puzzle üçün Gyro Sensorlu İdarə olunan Platforma: 3 addım
Maze Puzzle üçün Gyro Sensorlu İdarə olunan Platforma: 3 addım

Video: Maze Puzzle üçün Gyro Sensorlu İdarə olunan Platforma: 3 addım

Video: Maze Puzzle üçün Gyro Sensorlu İdarə olunan Platforma: 3 addım
Video: Йога для красивых ног и плоского живота от Анель Тормановой 2024, Dekabr
Anonim
Maze Puzzle üçün Gyro Sensorlu Platform
Maze Puzzle üçün Gyro Sensorlu Platform

Bu təlimat, Cənubi Florida Universitetində (www.makecourse.com) Make kursunun layihə tələbinin yerinə yetirilməsi üçün yaradılmışdır."

Akselerometr sensorundan rəy alan özünü balanslaşdıran bir platformadan ilhamlanan bu sadə layihə. Onsuz da etməmisinizsə yoxlayın.

Layihə Arduino UNO - Onlayn alış -veriş saytlarından əldə edə biləcəyiniz bir mikro nəzarətçidən istifadə edir! Bu təlimatda öz proqramlaşdırıla bilən əyilmə platformanızı necə edə biləcəyinizi göstərəcəyəm - dizayn prosesindən hissələr, 3D çap faylları, montaj və proqramlaşdırmaya qədər. Davam edin və irəli gedək!

Addım 1: Lazım olan komponentlər və 3D çaplı hissələr

Tələb olunan komponentlər və 3D çaplı hissələr
Tələb olunan komponentlər və 3D çaplı hissələr
Tələb olunan komponentlər və 3D çaplı hissələr
Tələb olunan komponentlər və 3D çaplı hissələr
Tələb olunan komponentlər və 3D çaplı hissələr
Tələb olunan komponentlər və 3D çaplı hissələr

Layihə üçün istifadə olunan komponentlərin siyahısı:

1. Arduino UNO mikro nəzarətçisi.

2. Atlama telləri olan çörək lövhəsi.

3. Bir qutu.

4. Dairəvi platforma

5. Labirent.

6. Bağlantılar - 3 yox

7. Üç servo quraşdırmaq üçün bir baza.

8. Gyro/Accelerometer sensoru. (MPU6050)

9.1sq mm tellər (500cm) - 4 Xeyr

10. 3 mm diametrli polad toplar.

Layihə üçün istifadə olunan hissələrin çoxu 3D çapdır və mən stl -ni yapışdırmışam. fayllar çapa hazırdır.

Şəkildə göstərildiyi kimi bütün hissələri yığın. Labirent şəkildəki kimi görünmək üçün dairəvi platformaya isti şəkildə yapışdırılır. Üç servo qutunun qapağına quraşdırılmış 3D çaplı bazaya isti şəkildə yapışdırılmalıdır. Qutuda, şəkildə göstərildiyi kimi yığılmış Arduino UNO və Breadboard var. Çörək taxtasının qurulması növbəti addımda müzakirə olunacaq.

Montajdan sonra son prototip son şəkildəki kimi görünməlidir.

Addım 2: Breadboard Quraşdırması

Çörək Paneli Quraşdırması
Çörək Paneli Quraşdırması
Çörək Paneli Quraşdırması
Çörək Paneli Quraşdırması
Çörək Paneli Quraşdırması
Çörək Paneli Quraşdırması

Montajdan sonra Arduino, Accelerometer sensoru, servolar aşağıda təsvir edildiyi kimi bağlanır.

Çörək lövhəsindəki müsbət və mənfi raylar müvafiq olaraq Arduinonun 5V və GND -nə bağlıdır. Sensor, sensorun lehimlənəcəyi yarım metrlik tellərdən istifadə edərək Arduino -ya qoşulur ki, sensorun VCC və GND sancaqları müvafiq olaraq çörək lövhəsindəki +ve və -ve raylarına bağlansın. Sensorun SCL və SDA pinləri, Arduinonun A5 və A4 analog pinlərinə bağlanacaq. Üç servonun PWM pinləri müvafiq olaraq Arduinonun 2, 3, 4 sancaqlarına və bütün servoların +ve və -ve sancaqları çörək taxtasının +ve və -ve raylarına bağlıdır. bununla əlaqələrimiz qurulur.

Addım 3: Layihə üçün kod

MPU6050 və Servo kitabxanalarını internetdən yükləyə və layihə üçün istifadə edə bilərsiniz. Aşağıdakı kodu Arduino -ya yığın və yükləyin və layihə hazırdır. Sensoru əyərək labirentin eyni istiqamətdə əyildiyini görə bilərsiniz! Bulmacanı həll etmək bir az çətin olsa da oynamaq çox əyləncəli olduğu üçün bir az vaxt lazımdır.

#daxil edin

#daxil edin

#daxil edin

Servo Servo1;

Servo Servo2;

Servo Servo3;

MPU6050 sensoru;

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t ax, ay, az;

int16_t gx, gy, gz;

boş quraşdırma ()

{

Servo1. əlavə (2);

Servo2. əlavə et (3);

Servo3. əlavə (4);

Wire.begin ();

Serial.begin (9600);

}

boşluq döngəsi ()

{

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

ax = xəritə (balta, -17000, 17000, 0, 180);

ay = xəritə (ay, -17000, 17000, 0, 180);

Serial.print ("ax =");

Serial. çap (balta);

Serial.print ("ay =");

Serial.println (ay);

əgər (ax <80 && ay <80) {

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

əgər (balta 120) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

əgər (ax> 120 && ay> 0) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3.write (servoPos3 ++); }

əgər (ax == 90 && ay == 90) {

Servo1.write (0);

Servo2.write (0);

Servo3.write (0);

}

}

Tövsiyə: