Maker.io main logo

Vibe-O-Matic 3000

2018-01-30 | By SparkFun Electronics

License: See Original Project Arduino

Courtesy of Sparkfun

Introduction

It all started because a friend sent me a link to a baby crib that Ford made.

I had no idea how much money or time Ford spent but I figured I could do something similar. It might be a little too DIY… And my son might not like it at all… But I present to you The Vibe-O-Matic 3000:

Baby in bouncy chair with Arduino

VOM3K

Ok, what’s going on here? The VOM3K is designed to replicate every aspect of riding in a car. The seat vibrates to varying degrees much the way a car will turn on, drive for a bit, stop at lights, etc. The seat lights up on the sides in a pulsating way just like a car’s headlights will light up the cabin. And the speakers play a recording of road noise recorded during a 15 minute drive.

Now for the big question. Does the baby like it, or LOVE it? Turns out the baby is just confused by it. The smart little bugger knows it’s not the car but he doesn’t quite know what it is. He doesn’t fuss or cry when he’s in it but doesn’t pass out like in the back seat of the car. Instead, he tends to stare up at me with an inquisitive look I can only interpret as “Dad, why do you keep saying the word Arduino. Am I Arduino-ing right now?!”

Required Materials

Here’s the part list:

You will also need:

Tools

You will need a soldering iron, solder, general soldering accessories, and tools to connect the project.

You will also need:

The Build

To build the Vibe-O-Matic, I needed three things:

  • Vibration
  • Sound
  • Light

Luckily, the bouncy seat that friends gave us (thank you Victoria!) had a small vibration motor attached.

Baby bouncy chair

The original vibration design used a single C cell battery (approximately 1.5V) with a simple ON/OFF slide switch. I removed the power switch and battery and used the MOSFET power control kit to control the motor via the Arduino at 5V. Since the DC motor was used to vibrate the seat, it did not matter what pin was used when connecting it to the “Device” side of the n-channel MOSFET’s breakout board.

Vibration motor modified with MOSFET control

Vibration motor modified with MOSFET control

What does the motor do when run at 5V instead of the designed 1.5V? It runs a lot faster and a lot louder. Thankfully, the Arduino has PWM on a handful of pins so we are able to run the motor from 0 to 100% throttle. Therefore, if the vibration is too great (or the motor gets too warm), we can ramp down the power to an acceptable level. I ended up running the motor from about 40% to 80% power. Any higher and the boy gets even more weirded out.

Next, I soldered an Arduino Pro to the MP3 Player Shield. Note that the Arduino is mounted above the shield. It’s not mandatory that an Arduino go below a shield. I knew I was going to need to solder a variety of additional things like switches and buttons to the Arduino. It was easier for me to mount the MP3 shield below so I could see the pins I needed to access on the Arduino. After stacking, the following wired connections were made as shown in the following table.

Arduino Pro with MP3 Shield

5V Arduino Pro stacked on MP3 Shield with wired connections

Vibe-O-Matic 3000

I made a base board out of MDF to mount everything to. I had some extra paint around so I painted it (thinking a coat of paint would have a positive impact on my wife’s feelings about this whole endeavor). The speakers are attached with a couple of screws through the MDF into the plastic speaker housing. The enclosure and electronics were similarly secured with a couple screws.

MDF base board

MDF base board

The chair was then zip tied to the MDF. The individually addressable APA102 warm white LEDs had an adhesive backing like most strips do. But like most LED strips, this backing tends to wear out after a few days so I added hot-glue to various points on the LED strip to secure it.

Bouncy chair mounted to baseboard

Bouncy chair mounted to baseboard

The APA102 LEDs are controlled with the excellent FastLED library. The ‘Cylon’ example was modified to mimic car’s headlights illuminating the cabin as they pass on the left, right, and front.

Next, I recorded a 12 minute drive through my city with the windows down. If you listen to the track you can hear where a couple large diesel trucks pass by. It’s a pretty good track although it’s hard to pick up good road noises. At one point I envisioned using a light sensor, GPS, and accelerometer to properly record the light and vibration through the drive. At that same moment my son started to scream and I decided it was better to take the SISI (screw it, ship it) approach: the LEDs trigger every 30 seconds with a random right/front/left decision and the vibration motor changes to a new, random, vibration level (40 to 80% throttle) every 60 seconds.

The Code

Note: This example assumes you are using the latest version of the Arduino IDE on your desktop. If this is your first time using Arduino, please review our tutorial on installing the Arduino IDE. If you have not previously installed an Arduino library, please check out our installation guide.

To follow along with this project, you will need to install the following libraries:

FASTLED ARDUINO LIBRARY

SPARKFUN MP3 PLAYER SHIELD ARDUINO LIBRARY

A rocker switch was used to select between Vibe (vibrate for 15 minutes, no lights or sound) and Car (the full effect). The Go! button allows the user to start or stop an action.

Buttons to make the baby chair go

A stripped down UI

You can find the code for the Vibe-O-Matic 3000 here:

VIBE-O-MATIC 3000 EXAMPLE CODE

It looks at the state of the rocker switch and the start button to determine what to do. Once actuated the MP3 shield plays the track until completion. The LEDs and motor turn ON/OFF randomly every 30 and 60 seconds, respectively. There’s also a vibe-only mode that vibrates the chair for 15 minutes.

The Result

In the end, Jack doesn’t really like or dislike the seat. I suspect the snugness of car seat is important. I also think the vibrations in a car are at a lower frequency and a much higher amplitude than the small vibe motor can do. I hope someone can learn from my lessons and do an even better version!

制造商零件编号 PRPC040SFAN-RC
CONN HEADER VERT 40POS 2.54MM
Sullins Connector Solutions
制造商零件编号 HDR100IMP40F-G-V-TH
CONN HDR 40POS 0.1 GOLD PCB
Chip Quik Inc.
制造商零件编号 EJ501A
CONN PWR JACK 2.1X5.5MM SOLDER
MPD (Memory Protection Devices)
制造商零件编号 PRT-09915
JUMPER 3 WIRE ASSEMBLY
SparkFun Electronics
制造商零件编号 PRT-08023
HOOK-UP SOLID 22AWG RED 25'
SparkFun Electronics
制造商零件编号 AP16GMCSH10U1-B
MEM CARD MICROSD 16GB 10 UHS 1
Apacer Memory America
制造商零件编号 DEV-12660
SPARKFUN MP3 PLAYER SHIELD
SparkFun Electronics
制造商零件编号 CAB-11301
CBL USB2.0 A PLUG-MIN B PLUG 6'
SparkFun Electronics
制造商零件编号 DEV-09716
BRIDGE USB 2.0 MODULE
SparkFun Electronics
制造商零件编号 DEV-10915
ARDUINO PRO 5V/16MHZ ATMEGA328
SparkFun Electronics
制造商零件编号 JIC-842
PLIERS ELECT LONG NOSE 6.75"
Jonard Tools
Add all DigiKey Parts to Cart
TechForum

Have questions or comments? Continue the conversation on TechForum, DigiKey's online community and technical resource.

Visit TechForum