Mundarija:

Labirintli jumboq uchun sensorlar tomonidan boshqariladigan platforma: 3 qadam
Labirintli jumboq uchun sensorlar tomonidan boshqariladigan platforma: 3 qadam

Video: Labirintli jumboq uchun sensorlar tomonidan boshqariladigan platforma: 3 qadam

Video: Labirintli jumboq uchun sensorlar tomonidan boshqariladigan platforma: 3 qadam
Video: U tomda raqsga tushmoqda. ๐Ÿ’ƒ๐Ÿ’ƒ - Parkour Climb and Jump GamePlay ๐ŸŽฎ๐Ÿ“ฑ ๐Ÿ‡บ๐Ÿ‡ฟ 2024, Iyul
Anonim
Labirintli jumboq uchun sensorlar tomonidan boshqariladigan platforma
Labirintli jumboq uchun sensorlar tomonidan boshqariladigan platforma

Bu ko'rsatma Janubiy Florida universitetining Make kursining loyiha talablarini bajarish uchun yaratilgan (www.makecourse.com)"

Ushbu oddiy loyiha, akselerometr sensori bilan aloqa o'rnatadigan, o'zini-o'zi muvozanatlaydigan platformadan ilhomlangan. Agar buni hali qilmagan bo'lsangiz, tekshirib ko'ring.

Loyihada Arduino UNO - Internet -xarid veb -saytlaridan olishingiz mumkin bo'lgan mikrokontrollerdan foydalanish oson! Bu ko'rsatmada men o'z qo'lingiz bilan dasturlashtiriladigan burilish platformasini qanday yasashingiz mumkinligini ko'rsataman - dizayn jarayonidan tortib qismlar, 3D bosib chiqarish fayllari, yig'ish va dasturlashgacha. Kutib turing va oldinga siljaylik!

1 -qadam: Komponentlar va 3D bosma qismlar

Zarur komponentlar va 3D bosma qismlar
Zarur komponentlar va 3D bosma qismlar
Zarur komponentlar va 3D bosma qismlar
Zarur komponentlar va 3D bosma qismlar
Zarur komponentlar va 3D bosma qismlar
Zarur komponentlar va 3D bosma qismlar

Loyihada ishlatiladigan komponentlar ro'yxati:

1. Arduino UNO mikrokontroller.

2. O'tish simlari bo'lgan non paneli.

3. Bir quti.

4. Dairesel platforma

5. Labirent.

6. Havolalar - 3 ta yo'q

7. Uchta servo o'rnatish uchun tayanch.

8. Gyro/akselerometr sensori. (MPU6050)

9,1 kvadrat mm simlar (500 sm) - 4 ta

10. 3 mm diametrli po'latdan yasalgan sharlar.

Loyiha uchun ishlatiladigan qismlarning aksariyati 3D bosilgan va men stl -ni biriktirganman. chop etishga tayyor fayllar.

Barcha qismlarni rasmda ko'rsatilgandek yig'ing. Labirint dumaloq platformaga issiq yopishtirilgan bo'lib, rasmdagi kabi ko'rinadi. Uchta servo qutining qopqog'iga o'rnatilgan 3D bosilgan taglikka issiq yopishtirilgan bo'lishi kerak. Qutida rasmda ko'rsatilgandek yig'ilgan Arduino UNO va Breadboard mavjud. Keyingi bosqichda non paneli sozlanishi muhokama qilinadi.

Yig'ishdan so'ng, oxirgi prototip oxirgi rasmdagi kabi ko'rinishi kerak.

2 -qadam: Breadboard -ni sozlash

Breadboardni sozlash
Breadboardni sozlash
Breadboardni sozlash
Breadboardni sozlash
Breadboardni sozlash
Breadboardni sozlash

O'rnatishdan so'ng, Arduino, Accelerometer sensori, servolar quyidagicha tasvirlanganidek ulanadi.

Non panelidagi musbat va manfiy relslar mos ravishda Arduino 5V va GND ga ulangan. Sensor Arduino -ga yarim metrli simlar yordamida ulanadi, ular datchikka lehimlanadi, shunday qilib sensorning VCC va GND pinlari mos ravishda non panelidagi +ve -ve relslariga ulanadi. Sensorning SCL va SDA pinlari Arduino A5 va A4 analog pinlariga ulanadi. Uchta servolarning PWM pinlari mos ravishda Arduino -ning 2, 3, 4 -pinlariga va barcha servolarning +ve va -ve pinlari non taxtasining +ve va -ve relslariga ulangan. bu bilan bizning aloqalarimiz tugadi.

3 -qadam: Loyihaning kodi

MPU6050 va Servo kutubxonalarini Internetdan yuklab olishingiz va uni loyiha uchun ishlatishingiz mumkin. Quyidagi kodni Arduino -ga to'plang va yuklang va loyiha tayyor. Sensorni eging va siz labirintning xuddi shu tomonga burilishini ko'rasiz! Bu jumboqni hal qilish biroz vaqt talab etadi, chunki bu biroz qiyin, lekin uni o'ynash qiziqarli.

#qo'shing

#qo'shing

#qo'shing

Servo Servo1;

Servo Servo2;

Servo Servo3;

MPU6050 sensori;

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t ax, oy, az;

int16_t gx, gy, gz;

bo'sh o'rnatish ()

{

Servo1. biriktirish (2);

Servo2. qo'shish (3);

Xizmat ko'rsatish 3. qo'shish (4);

Wire.begin ();

Serial.begin (9600);

}

bo'sh halqa ()

{

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

ax = xarita (bolta, -17000, 17000, 0, 180);

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

Serial.print ("ax =");

Ketma -ket chop etish (bolta);

Serial.print ("oy =");

Serial.println (ay);

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

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

agar (bolta 120) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

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

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3.write (servoPos3 ++); }

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

Servo1.write (0);

Servo2.write (0);

Yozing (0);

}

}

Tavsiya: