This is the first version of my blaster compatible with the Nerf Rival rounds. The new version should have less parts, be cheaper and be quiter without the EDF. 2 x Racerstar BR2212 1800KV 2-4S Brushless Motor 1 x 35mm brushless EDF 3 x ESC 1 x N20 Micro Speed motor 1 x 4S LiPo 1 x Arduino Pro Mini 1 x h-bridge for controlling the feeder (not necessary) https://youtu.be/qruwTxABoGA Arduino code (not tested) : Requieres the servo.h lib // motors : Servo motorTop; Servo motorDown; Servo motorEdf; int motorFeedHBridgeEn = 4; // "H-Bridge Enable" use the h-bridge to control the feeding motor int motorFeedHBridgeDirection = 2; // "H-Bridge input" use the h-bridge to control the feeding motor // potentiometers : int wheelSpeed = 0; int wheelSpeedValue; int hopUp = 1; int hopUpValue; int edfSpeed = 2; int edfSpeedValue; int feed = 3; int feedValue; // sensors : int counter = 5; // count the fired shots // buttons : int trigger = 6; // control the feeding motor int rotate = 7; // start the wheel cage int loader = 8; // start the edf void setup() { motorTop.attach(9); motorDown.attach(10); motorEdf.attach(11); } void loop() { // release the trigger, reset motors motorTop.write(0); motorDown.write(0); motorEdf.write(0); digitalWrite(motorFeedHBridgeEn, false); // loading the rounds while(digitalRead(loader)){ motorEdf.write(edfSpeedValue); } // arming the nerf while(digitalRead(rotate))){ // reads the value of the potentiometer (value between 0 and 1023) // scale it to use it with motor (1500 "stopped" to 2000 "full speed") (with my esc) wheelSpeedValue = analogRead(wheelSpeed); wheelSpeedValue = map(wheelSpeedValue, 0, 1023, 1500, 2000); hopUpValue = analogRead(hopUp); hopUpValue = map(hopUpValue, 0, 1023, -100, 100); edfSpeedValue = analogRead(edfSpeed); edfSpeedValue = map(edfSpeedValue, 0, 1023, 1500, 2000);
while(digitalRead(rotate))){ motorEdf.write(edfSpeedValue); motorTop.write(wheelSpeedValue - hopUpValue); motorDown.write(wheelSpeedValue + hopUpValue); while(digitalRead(trigger)){ digitalWrite(motorFeedHBridgeEn, true); digitalWrite(motorFeedHBridgeDirection, true); } }
// release the trigger feeds the motor backwards to avoid rounds jamming the wheelcage int i = 1000; while(i > 0){ digitalWrite(motorFeedHBridgeEn, true); digitalWrite(motorFeedHBridgeDirection, false); i--; } // then turn the feed off digitalWrite(motorFeedHBridgeEn, false); } }
- Master Blaster List
- CC BY-NC 4.0