Inhoudsopgave:
Video: Arduino servo-drummachine - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:17
Dit is een eenvoudige twee micro-servo en Arduino Uno gestuurde drummachine of robot. De servo's zijn gemonteerd op een L-vormige beugel van hout die met 4 sterke magneten aan de snaredrum wordt vastgehouden. De servo-armen zijn vastgeschroefd aan twee eetstokjes die als drumstokken dienen. Het is vrij luid maar niet te luid. Veel luidere hits kunnen worden verkregen door servo's van standaardformaat te gebruiken en echte drumstokken die een stuk zwaarder zijn. Maar dat zou ook een aparte voeding voor de servo's vereisen. Door gebruik te maken van micro-servo's levert de Arduino voldoende stroom om ze direct van stroom te voorzien zonder aparte voeding.
De video toont mijn poging om een eenvoudige versie van de Wipeout-drumsolo te programmeren. Natuurlijk is het niet de echte 160 slagen per minuut, maar dat zou gemakkelijk kunnen worden verkregen door een andere servo toe te voegen, wat best cool zou zijn. Ik heb niet berekend wat de hoogste bpm is die kan worden verkregen door een servo te gebruiken en het vereist enige vertraging om de drumstick van zijn geparkeerde positie naar het drumvel te krijgen.
De ritmes die je kunt creëren, worden alleen beperkt door je verbeeldingskracht en de drummachine is een interessantere metgezel om mee te spelen dan een digitale drummachine, als je een muzikant bent.
Het enige nadeel is de servo-ruis die niet echt merkbaar is, hoewel de camera-audio het behoorlijk opvallend lijkt op te pikken.
Stap 1: Bouw de servobeugel
Deze beugel is gemaakt van enkele stroken hobbymultiplex die ik bij de hand had. Ik heb een L-vorm gemaakt door twee stukken aan elkaar te schroeven met een metalen L-beugel. Vervolgens werd een klein blok hout op de bovenste strook gelijmd om de twee servo's vast te houden.
Ik had twee handige servobeugels die ik op het blok hout schroefde.
Ik heb 4 neodymium-magneten gebruikt om de beugel aan de snaredrum te houden.
Stap 2: Sluit de servo's aan op de Arduino Uno
De servo's vcc (middelste draad) gaat naar de Arduino 5 v-pinnen.
De aardingsdraden naar Arduino-aarde.
De signaaldraden gaan naar pin 6 en 7.
Een servo-schild zou het nog gemakkelijker maken als je er een hebt.
Stap 3: Arduino-code…
Hieronder is de eenvoudige schets om Wipeout te spelen. U hoeft alleen de servoposities aan te passen aan uw specifieke opstelling.
Veel plezier!
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#include "servo.h"
// servodrummer Jim Demello juni 2018
Servo myservo1, myservo2;
int servoPin6 = 6; //servo
int servoPin7 = 7;
void myServo(int servoPosition, int servoNumber) {
if (servoNummer == 1) {
myservo1.write(servoPositie);
}
if (servoNummer == 2) {
myservo2.write(servoPositie);
}
}
void doOneEighthNote (int servoNumber, int beat) {
int vertragingVal = 60;
if (servoNummer == 1) {
als (slag) {slag = 10; // als beat = 1 voeg dan een beetje meer servo toe voor een sterkere dreun
}
myServo(150 + beat, servonummer); //omlaag
vertraging (vertragingswaarde);
myServo(100, servoNumber);//up
vertraging (vertragingswaarde);
}
if (servoNummer == 2) {
als (beat) beat = -10;
myServo(60 + beat, servoNummer); //omlaag
vertraging (vertragingswaarde);
myServo(80, servoNumber);//up
vertraging (vertragingswaarde);
}
}
ongeldige setup()
{
// Serieel.begin (9600);
myservo1.attach (servoPin6, 1000, 2000); // bevestigt de servo op pin 9 aan het servo-object
mijnservo1.write(100);
myservo2.attach (servoPin7, 1000, 2000); // bevestigt de servo op pin 9 aan het servo-object
mijnservo2.write(90);
}
lege lus() {
uitvegen(); // wipeout drumroutine
//doOneEighthNote (2, 0);
vertraging (40);
}
ongeldig wissen() {
doOneEighthNote(2, 1); doOneEighthNote(1, 0); doOneEighthNote(2, 0); doOneEighthNote(1, 0); // eerste parm is servonummer en tweede parm is beat (1 = beat, 0 = geen 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);
}
Aanbevolen:
Hoe een servo te modificeren om feedback in gesloten lus te krijgen: 7 stappen
Hoe een servo te modificeren om feedback met gesloten lus te krijgen: ► Tijdens het besturen van een servo met een microcontroller (als Arduino), kun je hem alleen opdrachten geven van de doellocatie (in PPM-signaal). Met deze volgorde zal de servo naar dit doel gaan plaats. Maar het is niet onmiddellijk! Je weet niet precies wanneer de lo
CNC servo stepper (geschikt voor GRBL): 4 stappen
CNC Servo Stepper (GRBL Capable): Dit project is een vrij eenvoudige motorcontroller die het gebruik van goedkope krachtige DC-motoren met GRBL mogelijk maakt om de spindels van een CNC-machine te bedienen. Bekijk de video hierboven voor een demonstratie van deze controller op mijn zelfgebouwde CNC-machinecon
Wi-Servo: Wi-Fi Browser Gecontroleerde Servomotoren (met Arduino + ESP8266): 5 Stappen
Wi-Servo: Wi-fi Browser Controlled Servomotoren (met Arduino + ESP8266): Deze instructable laat zien hoe sommige servomotoren op afstand kunnen worden bediend in een wifi-netwerk, met behulp van een gewone internetbrowser (bijvoorbeeld Firefox). Dit kan in verschillende toepassingen worden gebruikt: speelgoed, robots, drones, camera pan/tilt, enz. De motoren waren
Arduino Servo-zelfstudie: 3 stappen (met afbeeldingen)
Arduino Servo Tutorial: Vandaag leer je servomotoren te gebruiken met Arduino. Een zeer belangrijke vaardigheid voor iedereen die vooruitgang wil boeken in domotica en elektronica. Als je het voltooide project hebt, druk je gewoon op de knop en kijk je hoe de servo in een willekeurige d
Bedien veel servo's met Arduino!: 4 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Bedien veel servo's met Arduino!: Eerst moet ik iets vertellen. Ik had geen mooie foto's. Dus ik heb de foto's van bildr.blog genomen. We weten dat een Arduino UNO niet veel pwm-pinnen heeft om veel servo's te besturen. Dus we hebben vaak een probleem om meer servo's door een arduino te besturen