Getting ONE Arduino to do multiple functions at the same time can sometimes be hard. Here’s MULTIPLE Arduinos doing multiple functions at the same time well.
My Dome electronics demo:
Bi-directional communication between head, body and remote (2 Arduino Nanos and a Mega) using NRF24L01 Radio 2.4GHz Transmitter Receivers. The NRF24L01 module operates at 3.3Vs. I tried used the 3.3V pin on the Arduino, which worked but had way too much latency to be of any use. Adding a 3.3V step down regulator fixed the latency issues. A lot of BB-8 builds suffer from muffled sound from speakers being trapped inside dome or body. I’m using a transducer (http://test.mrrcsound.com/tt-25), typically used in RC planes and cars, which vibrates the entire frame effectively turning the entire dome into a giant speaker. I’m using Neopixels for my dome logic lights and a continuous rotation servo to control dome rotation about the dome ring. The club design doesn’t account for rotation, b/c the parts were designed before the movie was released. Neopixels and servos don’t work well together b/c the Neopixel library disables interrupts which affects timing requirements of servos. I only learned this after a couple days of debugging a jittery servo. Luckily Adafruit has an alternate servo library you can use to get Neopixels and servos to play nicely https://learn.adafruit.com/neopixels-and-servos/the-ticoservo-library. The only caveat is that the pins you can use on your Arduino for servo control are limited.
I’ve learned a lot of tips and tricks from members of the BB-8 builders club. Hats off to the droid builders!
My build log: