Artist seeking paid help planning/executing interactive art w/ servos & sensors

Good morning -

I'm hoping to hire someone experienced in planning complex arduino projects that are safe, reliable and scalable.

In the past I have simulated motion in my sculpture with shadows from arduino controlled LEDs. I am ready to add physical motion to the panels. My goal for this project is to make each of the panels move - responding to human interaction by extending towards the user when their hand/body gets within a foot of the sensor, then retracting back to a home position.

In this project I have 8 panels, each with 3 connections to a baseboard.

These connections work independently. On the underside of the baseboard there are 24 home made smart linear actuators that house:

  • rack and pinion gear
  • continuous rotation servo
  • limit switch stopping forward motion
  • limit switch stopping backwards motion
  • radar sensor module

Forum member Whandall has been super helpful in getting me this far. First we modified the RCWL radar sensor so it triggers at the rt distance. Then he suggested I use the I2C protocol and (2) PCA9685 boards to connect the (24) servos . He also suggested I use (5) MPC23017 port expanders over i2c to connect switches and sensors (72 total) . I have watched nearly every english youtube video on i2c, PCA9685 and MPC23017 (and some with auto-translated subtitles). I have a relatively good grasp on it. My best guess at the next step is to use interrupts for the sensors and send just a flag back that would trigger appropriate motor commands. Thinking that would keep the system more responsive and not tie down the processor with delays.

But, that's just my best guess - there's probably a better way to do this and that's why I'm looking to hire a pro :slight_smile:

I have a separate Mean Well 5v 40a power supply (it can handle all 24 servos at stall current even tho the limit switches should prevent that from happening - redundancy! ) and all materials to create this i2c bus. Because there are so many inputs in this project, I am seeking help organizing it properly from the beginning and writing code that we can document so it may be repeated and adjusted for other projects.

Please respond here or via PM so we can discuss your availability and rate and any other details I might have left out.

I'm in Chicago if that makes a difference.

Thanks for reading this long post -


It sounds as if each motion axis is independently controlled and its control is only based on the data from the radar(?) sensor? If so, I would simplify the design by using two Arduino Mega2560 clones. That would eliminate any wiring/complexity issues with the expanders and reduce the coding to essentially 24 instances of the same behavior.

The first simplification I'm thinking of is to use a single servo per panel - they don't look like they're very heavy or so. That would reduce the complexity by a factor of three: just one servo and two limit switches per panel, instead of three servos and three limit switches. That's not as much an issue with the code, as it is for your sanity: wiring up that many switches and making sure they're all connected to the correct pins and so is a huge job, and will lead to a serious bundle of wires.

Matrixing is another great way to reduce the pin count (but not necessarily the wiring mess) - 72 switches can be read by just 17 inputs (an 8x9 matrix). A single Mega can handle up to 23 servos, unfortunately just one short of the 24 you want...

You don't need interrupts for the sensors. Not at all. Motion is quite slow, clever wiring can do a lot here: wire switches that belong together to the same 8-channel port and you can read the whole port in one go. Check if anything changed and you won't miss any events. You won't have any problem reacting to the limit switches within 10 ms. If matrixed a read of all switches shouldn't take more than 1 ms after which you can stop any servos that need to. Interrupts only make it more complex.

I'd also suggest doing a custom PCB design for everything to plug in correctly and reliably - I design PCBs for my RC planes and love how easy it makes things. If you're going to have 70-some-odd connections, you'll want a PCB to make all the connections - trust me. If you want, I can possibly design it for you.

Hi all - thanks for the followups

I got a few PMs on this and paired up with an engineer who's helping me take the next steps.

Cedarlakeinstruments - Aside from a holding pattern for some repeated small movements - yes the radar (or sensor input) would be the only thing triggering movement.

Wvmarle - I want control over both forward/backwards movement of the panels and tilt. We have updated the design to use a single spring loaded linear shaft and 3 guide wires each controlled by a servo. I'm not too worried about wires - we're breaking this thing into modules so once I get a single one working I can repeat the wiring verbatim.

Power_Broker - thank you for the offer! I agree with you and so does my collaborator - he's designing the PCBs and it's one of the reasons I'm not too worried about the wiring.

I'll post a some updates as the project progresses!

Power_Broker - thank you for the offer! I agree with you and so does my collaborator - he's designing the PCBs and it's one of the reasons I'm not too worried about the wiring.

I'll post a some updates as the project progresses!

S'all good bro ;). If you have any more projects in the future, I'd be glad to help - I checked out your website and you do some sick art.

I love working on art projects that use electronics. One day I hope to make a side-business out of it myself.