Агуулгын хүснэгт:

Maze Puzzle -ийн Gyro мэдрэгчийн хяналттай платформ: 3 алхам
Maze Puzzle -ийн Gyro мэдрэгчийн хяналттай платформ: 3 алхам

Видео: Maze Puzzle -ийн Gyro мэдрэгчийн хяналттай платформ: 3 алхам

Видео: Maze Puzzle -ийн Gyro мэдрэгчийн хяналттай платформ: 3 алхам
Видео: 8.0 gyro maze application 2024, Долдугаар сарын
Anonim
Maze Puzzle -ийн Gyro мэдрэгчийн хяналттай платформ
Maze Puzzle -ийн Gyro мэдрэгчийн хяналттай платформ

Энэхүү зааварчилгааг Өмнөд Флоридагийн их сургуулийн Make курсын төслийн шаардлагыг биелүүлэх зорилгоор бүтээсэн болно (www.makecourse.com)"

Энэхүү энгийн төсөл нь акселерометрийн мэдрэгчээс санал авдаг өөрийгөө тэнцвэржүүлэх платформоор өдөөгдсөн болно. Хэрэв та хараахан амжаагүй бол шалгаарай.

Төсөл нь Arduino UNO - Онлайн дэлгүүрийн вэбсайтаас авах боломжтой микроконтроллерийг ашиглахад хялбар юм! Энэхүү зааварчилгаанд би та өөрөө хэрхэн програмчлагдах боломжтой хазайлтын платформ хийх боломжтойг харуулах болно - дизайны процессоос эхлээд эд ангиудыг авах, 3D хэвлэх файл, угсрах, програмчлах хүртэл. Үргэлжлүүлээрэй, урагшаа явцгаая!

Алхам 1: Шаардлагатай бүрэлдэхүүн хэсгүүд ба 3D хэвлэмэл хэсгүүд

Шаардлагатай бүрэлдэхүүн хэсгүүд ба 3D хэвлэмэл хэсгүүд
Шаардлагатай бүрэлдэхүүн хэсгүүд ба 3D хэвлэмэл хэсгүүд
Шаардлагатай бүрэлдэхүүн хэсгүүд ба 3D хэвлэмэл хэсгүүд
Шаардлагатай бүрэлдэхүүн хэсгүүд ба 3D хэвлэмэл хэсгүүд
Шаардлагатай бүрэлдэхүүн хэсгүүд ба 3D хэвлэмэл хэсгүүд
Шаардлагатай бүрэлдэхүүн хэсгүүд ба 3D хэвлэмэл хэсгүүд

Төсөлд ашигласан бүрэлдэхүүн хэсгүүдийн жагсаалт:

1. Arduino UNO микроконтроллер.

2. Холбогч самбар бүхий самбар.

3. Хайрцаг.

4. Дугуй платформ

5. Maze.

6. Холбоосууд - 3 Үгүй

7. Гурван servo холбох суурь.

8. Gyro/Accelerometer мэдрэгч. (MPU6050)

9.1 квадрат мм утас (500см) - 4 Үгүй

10. 3 мм диаметртэй ган бөмбөлөг.

Төсөлд ашигладаг ихэнх эд анги нь 3D хэвлэсэн бөгөөд би stl хавсаргасан болно. файлуудыг хэвлэхэд бэлэн байна.

Зураг дээр үзүүлсэн шиг бүх эд ангиудыг угсарна. Энэхүү лабиринт нь дугуй тавцан дээр халуун наасан бөгөөд зураг дээрх шиг харагдаж байна. Гурван servo -ийг хайрцгийн таган дээр суурилуулсан 3D хэвлэмэл суурь дээр халуун наасан байх ёстой. Хайрцагт зураг дээр үзүүлсэн шиг угсарсан Arduino UNO болон Breadboard орно. Талхны хавтангийн тохиргоог дараагийн шатанд хэлэлцэх болно.

Угсарсны дараа эцсийн загвар нь сүүлийн зураг дээрх шиг харагдах ёстой.

Алхам 2: Breadboard -ийн тохиргоо

Breadboard тохиргоо
Breadboard тохиргоо
Breadboard тохиргоо
Breadboard тохиргоо
Breadboard тохиргоо
Breadboard тохиргоо

Угсарсны дараа Arduino, Accelerometer мэдрэгч, servos -ийг доор тайлбарласны дагуу холбоно.

Талхны самбар дээрх эерэг ба сөрөг төмөр замыг Arduino -ийн 5V ба GND -т тус тус холбосон болно. Мэдрэгчийг Arduino -той холбодог бөгөөд хагас метрийн утсыг мэдрэгч рүү гагнах ёстой бөгөөд ингэснээр мэдрэгчийн VCC ба GND зүүг талхны самбар дээрх +ve ба -ve төмөр замд холбоно. Мэдрэгчийн SCL ба SDA тээглүүрүүд нь Arduino -ийн A5 ба A4 аналог тээглүүртэй холбогдоно. Гурван servo -ийн PWM тээглүүр нь Arduino -ийн 2, 3, 4 -р зүүтэй, бүх servo -ийн +ve ба -ve зүү нь талхны хавтангийн +ve ба -ve төмөр замд холбогдсон байна. Үүний тусламжтайгаар бидний холболтууд хийгддэг.

Алхам 3: Төслийн код

та MPU6050 болон Servo номын санг интернетээс татаж аваад төсөлд ашиглах боломжтой. Дараах кодыг Arduino дээр эмхэтгэн байршуулбал төсөл бэлэн болно. Мэдрэгчийг хазайлгахад төөрдөг газар яг ижил чиглэлд хазайж байгааг харж болно. Тааварыг шийдвэрлэхэд бага зэрэг хэцүү боловч тоглох нь хөгжилтэй байдаг тул хэсэг хугацаа шаардагдана.

#оруулах

#оруулах

#оруулах

Servo Servo1;

Servo Servo2;

Servo Servo3;

MPU6050 мэдрэгч;

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t ax, ay, az;

int16_t gx, gy, gz;

хүчингүй тохиргоо ()

{

Servo1. хавсаргах (2);

Servo2.attach (3);

Servo3. хавсаргах (4);

Wire.begin ();

Цуваа эхлэх (9600);

}

хоосон давталт ()

{

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

ax = газрын зураг (сүх, -17000, 17000, 0, 180);

ay = газрын зураг (ay, -17000, 17000, 0, 180);

Serial.print ("ax =");

Цуваа.хэвлэх (сүх);

Serial.print ("ay =");

Serial.println (ay);

хэрэв (ax <80 && ay <80) {

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

хэрэв (сүх 120) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

хэрэв (ax> 120 && ay> 0) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3. бичих (servoPos3 ++); }

хэрэв (ax == 90 && ay == 90) {

Servo 1. бичих (0);

Servo2. бичих (0);

Servo3. бичих (0);

}

}

Зөвлөмж болгож буй: