Taula de continguts:

Servomotora Arduino: 4 passos
Servomotora Arduino: 4 passos

Vídeo: Servomotora Arduino: 4 passos

Vídeo: Servomotora Arduino: 4 passos
Vídeo: Уроки Arduino - управление сервомашинкой 2024, Juliol
Anonim
Image
Image

Es tracta d’un simple robot o robot de bateria controlat per dos micro-servo i Arduino Uno. Els servos estan muntats en un suport de fusta en forma de L que es subjecta al tambor amb 4 imants forts. Els braços servo estan cargolats a dos escuradents que serveixen de palets de tambor. És força fort però no massa fort. Es podrien obtenir cops molt més forts utilitzant servos de mida estàndard i tambors reals que són bastant més pesats. Però això també requeriria una font d'alimentació separada per als servos. En utilitzar micro-servos, Arduino subministra prou corrent per alimentar-los directament sense una font d'alimentació separada.

El vídeo mostra el meu intent de programar una versió simple del solo de bateria Wipeout. Per descomptat, no es troba a les 160 pulsacions reals per minut, però això es podria obtenir fàcilment afegint un altre servo que seria bastant genial. No he calculat quins són els bpm superiors que es poden obtenir utilitzant un servo i requereix un cert retard a l’hora d’aconseguir la baqueta des de la seva posició estacionada fins al capçal del tambor.

Els ritmes que podeu crear només estan limitats per la vostra imaginació i la bateria és un company més interessant per tocar que una bateria digital, si sou músic.

L’únic inconvenient és el soroll del servo que no es nota tanmateix, tot i que l’àudio de la càmera sembla captar-lo de manera notable.

Pas 1: creeu el suports de servo

Creeu el suport del servo
Creeu el suport del servo
Creeu el suport del servo
Creeu el suport del servo

Aquest suport està fet amb unes tires de fusta contraxapada que tenia a mà. Vaig crear una forma de L mitjançant dues peces cargolades juntes amb un suport de metall de L. Després es va enganxar un petit bloc de fusta a la tira superior per subjectar els dos servos.

Tenia dos útils suports de servo que vaig cargolar al bloc de fusta.

Vaig utilitzar 4 imants de neodimi per subjectar el suport al tambor.

Pas 2: connecteu els Servos a l'Arduino Uno

Connecteu els Servos a l’Arduino Uno
Connecteu els Servos a l’Arduino Uno

Els servos vcc (cable intermedi) van als pins d'Arduino de 5 v.

Els cables de terra a terra Arduino.

Els cables de senyal van als pins 6 i 7.

Un escut servo seria encara més fàcil si en teniu.

Pas 3: Codi Arduino …

A continuació es mostra l’esbós senzill per reproduir Wipeout. Només heu d’ajustar les posicions del servo per a la vostra configuració particular.

Diverteix-te!

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

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

#include "servo.h"

// servo bateria Jim Demello juny de 2018

Servo myservo1, myservo2;

int servoPin6 = 6; // servo

int servoPin7 = 7;

void myServo (int servoPosition, int servoNumber) {

if (servoNumber == 1) {

myservo1.write (servoPosition);

}

if (servoNumber == 2) {

myservo2.write (servoPosition);

}

}

void doOneEighthNote (int servoNumber, int beat) {

int delayVal = 60;

if (servoNumber == 1) {

if (batec) {batec = 10; // si beat = 1, afegiu una mica més de servo cap avall per obtenir un cop més fort

}

myServo (150 + beat, servoNumber); // avall

retard (delayVal);

myServo (100, servoNumber); // cap amunt

retard (delayVal);

}

if (servoNumber == 2) {

si (batre) batre = -10;

myServo (60 + beat, servoNumber); // avall

retard (delayVal);

myServo (80, servoNumber); // cap amunt

retard (delayVal);

}

}

configuració nul·la ()

{

// Serial.begin (9600);

myservo1.attach (servoPin6, 1000, 2000); // fixa el servo al pin 9 a l'objecte servo

myservo1.write (100);

myservo2.attach (servoPin7, 1000, 2000); // fixa el servo al pin 9 a l'objecte servo

myservo2.write (90);

}

bucle buit () {

wipeout (); // rutina de tambor wipeout

// doOneEighthNote (2, 0);

retard (40);

}

void wipeout () {

doOneEighthNote (2, 1); doOneEighthNote (1, 0); doOneEighthNote (2, 0); doOneEighthNote (1, 0); // el primer parm és el número de servo i el segon parm és el beat (1 = beat, 0 = no beat)

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);

}

Recomanat: