Мазмұны:

Arduino Servo барабан машинасы: 4 қадам
Arduino Servo барабан машинасы: 4 қадам

Бейне: Arduino Servo барабан машинасы: 4 қадам

Бейне: Arduino Servo барабан машинасы: 4 қадам
Бейне: КАК СДЕЛАТЬ ARDUINO РОБОТ МАШИНКУ КОТОРЫЙ ОБХОДИТ ПРЕПЯТСТВИЯ 2024, Қараша
Anonim
Image
Image

Бұл қарапайым екі микросерво және Arduino Uno басқарылатын барабан машинасы немесе робот. Серво L-тәрізді ағаш кронштейнге орнатылады, ол 4 күшті магнитпен торға барабанға бекітілген. Серво қолдары барабан таяқшасы ретінде қызмет ететін екі таяқшаға бекітілген. Бұл өте қатты, бірақ қатты емес. Стандартты өлшемді серво мен біршама ауыр салмақтағы шынайы барабан таяқшаларын қолдану арқылы әлдеқайда қатты соққылар алуға болады. Бірақ бұл серво үшін бөлек қуат көзін қажет етеді. Микросерваларды қолдану арқылы Arduino оларды бөлек қуат көзінсіз тікелей қуаттандыруға жеткілікті ток береді.

Бейнеде Wipeout барабанының жеке нұсқасын бағдарламалау әрекеті көрсетілген. Әрине, бұл минутына 160 соққы емес, бірақ оны басқа серво қосу арқылы оңай алуға болады, ол өте керемет болар еді. Мен серво көмегімен не алуға болатынын есептемедім және барабан таяқшасын барабанның басына дейін алуды кешіктіруді қажет етеді.

Сіз жасай алатын ырғақтар тек сіздің қиялыңызбен шектеледі, ал егер сіз музыкант болсаңыз, барабан машинасы сандық барабан машинасына қарағанда ойнаудың қызықты серіктесі болады.

Жалғыз минус - бұл серво шуы, ол соншалықты байқалмайды, бірақ камераның дыбысы оны жақсы қабылдайтын сияқты.

1 -қадам: Серво кронштейнін жасаңыз

Серво кронштейнін жасаңыз
Серво кронштейнін жасаңыз
Серво кронштейнін жасаңыз
Серво кронштейнін жасаңыз

Бұл кронштейн менің қолымда болған фанердің кейбір жолақтарынан жасалған. Мен L-пішінін металды L-кронштейнмен бірге екі бөлікті болттар арқылы жасадым. Содан кейін екі серво ұстау үшін үстіңгі жолаққа кішкене ағаш блок жабыстырылды.

Менде ағашқа бекітілген екі ыңғайлы серво кронштейндері болды.

Мен кронштейнді барабанға бекіту үшін 4 неодимий магнитін қолдандым.

2 -қадам: серверлерді Arduino Uno -ға қосыңыз

Серверлерді Arduino Uno -ға қосыңыз
Серверлерді Arduino Uno -ға қосыңыз

Серверлер vcc (орта сым) Arduino 5 v түйреуіштеріне өтеді.

Жер сымдары Arduino жерге қосылады.

Сигналдық сымдар 6 және 7 түйреуіштерге өтеді.

Серво қалқаны, егер сізде болса, оны жеңілдетеді.

3 -қадам: Arduino коды …

Төменде Wipeout ойнауға арналған қарапайым эскиз бар. Сізге арнайы қондырғы үшін серво позицияларын реттеу қажет.

Масайрау!

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

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

#«servo.h» қосыңыз

// серво барабаншысы Джим Демелло 2018 жылдың маусым айы

Сервис myservo1, myservo2;

int servoPin6 = 6; // серво

int servoPin7 = 7;

жарамсыз myServo (int servoPosition, int servoNumber) {

егер (servoNumber == 1) {

myservo1.write (servoPosition);

}

егер (servoNumber == 2) {

myservo2.write (servoPosition);

}

}

doOneEighthNote жарамсыз (int servoNumber, int beat) {

int delayVal = 60;

егер (servoNumber == 1) {

if (beat) {beat = 10; // егер beat = 1 болса, онда күшті соққы үшін тағы бір аз серво қосыңыз

}

myServo (150 + beat, servoNumber); // төмен

кешіктіру (delayVal);

myServo (100, servoNumber); // жоғары

кешіктіру (delayVal);

}

егер (servoNumber == 2) {

if (beat) beat = -10;

myServo (60 + beat, servoNumber); // төмен

кешіктіру (delayVal);

myServo (80, servoNumber); // жоғары

кешіктіру (delayVal);

}

}

жарамсыз орнату ()

{

// Serial.begin (9600);

myservo1.attach (servoPin6, 1000, 2000); // сервоприводқа түйреуішті 9 түйреуішке бекітеді

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // сервоприводқа түйреуішті 9 түйреуішке бекітеді

myservo2.write (90);

}

void loop () {

құлау(); // барабанды жою тәртібі

// doOneEighthNote (2, 0);

кешіктіру (40);

}

жарамсыз жою () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // бірінші парм - серво нөмірі, ал екінші парм - соғылады (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);

}

Ұсынылған: