Home › Forums › General Discussion › Remote Control through your Phone.PC or even over the internet useing Arduino › Reply To: Remote Control through your Phone.PC or even over the internet useing Arduino
December 20, 2019 at 1:49 pm #77500
In the last couple of weeks I bought a Venus and modified it to accept beat tracking from a program running on my Mac via Bluetooth.
Let me know if you want more information.
The components I put together were:
- Adafruit ItsyBitsy 32u4 Arduino microcontroller. This sits inside the Venus, tracks the stroke position, and constantly adjusts the motor power to hit beats at the right times.
- Sparkfun BlueSMiRF Silver Bluetooth modem. This allows the ItsyBitsy to talk to my Mac wirelessly.
- KB Electronics SI-5 Signal Isolator board. This connects the ItsyBitsy to the motor controller board that comes inside the stock Venus.
- Laser cut Delrin plastic motor encoder wheel. This attaches to the metal disc on the end of the motor shaft. I designed it in SketchUp and sent the design to Ponoko to be laser cut.
- Adafruit T-slot photo interrupter with cable. This sends a light beam through the encoder wheel and senses as the holes in the wheel move past. The ItsyBitsy uses this to know the position of the motor shaft with microsecond precision.
- Arduino servo software. This is the software that runs on the ItsyBitsy and calculates the motor power changes. I wrote it myself based on software I wrote earlier when I modified a different toy.
- Python beat tracking software. This runs on the Mac. It listens to whatever other programs are playing on the Mac, tracks the beats, and sends the timestamp of each beat to the ItsyBitsy over Bluetooth. I wrote this myself a while back to control a different toy. It’s based on the Essentia beat tracking algorithm, but improved and modified to run in real time. I command it from an Xbox game controller. There are game controller buttons to pause, select double or half time, select whether the stroke should “pull” or “push” on the beat, and other things.