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

Arduino Servo Drum Machine: 4 алхам
Arduino Servo Drum Machine: 4 алхам

Видео: Arduino Servo Drum Machine: 4 алхам

Видео: Arduino Servo Drum Machine: 4 алхам
Видео: Arduino Servo Robotic Drummer - Does Wipeout 2024, Арваннэгдүгээр
Anonim
Image
Image

Энэ бол энгийн хоёр микро-servo ба Arduino Uno удирдлагатай бөмбөрийн машин эсвэл робот юм. Серво нь L хэлбэрийн модон хаалт дээр бэхлэгдсэн бөгөөд 4 ширхэг хүчтэй соронзтой бөмбөр дээр байрладаг. Серво гарыг бөмбөрийн саваа болгон ашигладаг хоёр савхаар боосон байна. Энэ нь нэлээд чанга боловч хэт чанга биш юм. Стандарт хэмжээтэй servo болон арай хүнд жинтэй бөмбөрийн саваа ашиглан илүү чанга цохилт авах боломжтой. Гэхдээ энэ нь servos -ийн тусдаа тэжээлийн хангамжийг шаарддаг. Ардуино бичил сервос ашигласнаар тусдаа тэжээлийн хангамжгүйгээр шууд тэжээх хангалттай хэмжээний гүйдэл өгдөг.

Видео бичлэг нь Wipeout бөмбөрийн соло програмын энгийн хувилбарыг програмчлах оролдлогыг минь харуулж байна. Мэдээжийн хэрэг, энэ нь минутанд 160 цохилттой байдаггүй, гэхдээ үүнийг өөр серво нэмж оруулснаар олж авах боломжтой. Серво ашиглан ямар дээд эргэлт авах боломжтойг би тооцоолоогүй байгаа бөгөөд энэ нь бөмбөрийн зогсоолоос бөмбөрийн толгой руу шилжихэд тодорхой хугацаа шаардагдах болно.

Таны хийж чадах хэмнэл нь зөвхөн таны төсөөллөөр хязгаарлагддаг бөгөөд хэрэв та хөгжимчин бол бөмбөрийн машин нь дижитал бөмбөрийн машинаас илүү тоглох сонирхолтой хамтрагч юм.

Цорын ганц сул тал бол servo дуу чимээ юм, гэхдээ энэ нь тийм ч мэдэгдэхүйц биш боловч камерын аудио үүнийг маш сайн анзаардаг бололтой.

Алхам 1: Servo хаалт хийх

Servo хаалт хийх
Servo хаалт хийх
Servo хаалт хийх
Servo хаалт хийх

Энэ хаалт нь миний гар дээр байсан хобби фанеруудын зарим туузаар хийгдсэн байдаг. Би L хэлбэрийг хоёр ширхэг металл боолтоор бэхэлсэн. Дараа нь хоёр servo -ийг барихын тулд модны жижиг хэсгийг дээд туузан дээр наасан байна.

Надад модон блок руу шургуулсан хоёр тохиромжтой servo хаалт байсан.

Би 4 неодиум соронз ашиглан хаалтанд хүрдийг барьж өгсөн.

Алхам 2: Сервүүдийг Arduino Uno руу холбоно уу

Servo -г Arduino Uno руу холбоно уу
Servo -г Arduino Uno руу холбоно уу

Servo vcc (дунд утас) нь Arduino 5 v зүү рүү явдаг.

Газардуулгын утаснууд Arduino газарддаг.

Дохионы утаснууд нь 6 ба 7 -р зүү рүү ордог.

Серво бамбай нь танд байгаа бол бүр ч хялбар болгоно.

Алхам 3: Arduino код …

Wipeout тоглох энгийн тоймыг доор харуулав. Та өөрийн тохиргоонд зориулж servo байрлалыг тохируулах хэрэгтэй.

Хөгжилтэй байгаарай!

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

#"servo.h" оруулах

// серво бөмбөрчин Жим Демелло 2018 оны 6 -р сар

Servo myservo1, myservo2;

int servoPin6 = 6; // servo

int servoPin7 = 7;

хүчингүй myServo (int servoPosition, int servoNumber) {

хэрэв (servoNumber == 1) {

myservo1.write (servoPosition);

}

хэрэв (servoNumber == 2) {

myservo2.write (servoPosition);

}

}

void doOneEighthNote (int servoNumber, int beat) {

int delayVal = 60;

хэрэв (servoNumber == 1) {

if (beat) {beat = 10; // хэрэв beat = 1 бол цохилтыг илүү хүчтэй болгохын тулд бага зэрэг серво нэмнэ үү

}

myServo (150 + цохилт, servoNumber); // доош

саатал (delayVal);

myServo (100, servoNumber); // дээш

саатал (delayVal);

}

хэрэв (servoNumber == 2) {

хэрэв (цохих) цохих = -10;

myServo (60 + beat, servoNumber); // доош

саатал (delayVal);

myServo (80, servoNumber); // дээш

саатал (delayVal);

}

}

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

{

// Serial.begin (9600);

myservo1.attach (servoPin6, 1000, 2000); // 9 -р зүү дээрх servo -ийг servo объект руу хавсаргана

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // 9 -р зүү дээрх servo -ийг servo объект руу хавсаргана

myservo2.write (90);

}

void loop () {

арилгах (); // бөмбөрийн үйл ажиллагааг арилгах

// doOneEighthNote (2, 0);

саатал (40);

}

хүчингүй болгох () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // эхний парм бол servo дугаар, хоёр дахь парм (1 = цохих, 0 = цохихгүй)

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 1); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 1); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 1); doOneEighthNote (1, 0);

doOneEighthNote (2, 0); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0);

}

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