Fixing the Wheel of Fate

This halloween toy is pretty cool, and I have one but the makers (Gemmy) ruined it by making the chip not random. Instead every time the button is pressed, it always lands on one to the right of where it starts. Which takes all the fun out of it as you always know your fate every time.
How hard would it be to fix this electronically with an Arduino chip, so that when you press the button, it lands on one of the 8 at random, so that it is actually a working Wheel of Fate?
Anybody have any thoughts?

Holey crimeny are there a lot of sub categories in this forum! I'm surprised anybody sees anything posted lol. Well heck please put this in the correct slot if its wrong thank you

1 Like

You need a schematic of the components to know what you can do with it

Welcome to the forum BTW

It's in the right slot :grin:!

If you use the random() function in an Arduino program, the same sort of thing will happen unless you seed the random number generator before using the random() function. Use the randomSeed() function to do that.

from the random() function reference:

Notes and Warnings

If it is important for a sequence of values generated by random() to differ, on subsequent executions of a sketch, use randomSeed() to initialize the random number generator with a fairly random input, such as analogRead() on an unconnected pin.

It looks like you have a motor (of undetermined type), some LEDs, a push button and something that generates the sounds. Once you determine the motor type you will need a driver for it. The lights and push buttons are easy to interface. The sounds could be stored on a SD card and played, on cue, with an MP3 player like a DFplayer Mini.

Use a Nano or equivalent to control it all.

@jotjeff - your post moved to a more appropriate category.

Questions.

What else does it do? Sound effects, LEDs, er center a.

Can you take it apart quite a bit and post some pictures?

What is the source of power? What voltage?

It may be easier to just hijack all the hardware and complete eliminate what any build in controller is doing. So the Arduino own the switch(es), motor and lamps.

Possibly using the Arduino to control any sound maker.

Fun!

a7

1 Like

I thought it might be something relatively simple to change it and make it random so it actually tells you a Fate, but could be mistaken.
Its a clever design, there is a little white motor in the back and its all accessible, you can even take the motor out. The speaker is down in the bottom base under the 4 legs. Everything is able to be disassembled with screws, so assumedly you could swap an Arduino chip if it was programmed right. It runs on 3 AA batteries.

They sell these at every Target right now in the Halloween aisle, they're about $25. Its also sold online made by "Hyde and Eek".
If somebody more experienced wants to buy one and take a crack at it, I'd be interested it might be a fun project. But if so let us know here if you're going to try it. I'll hold on to mine then!

What about this one? https://create.arduino.cc/projecthub/ianmckay/wheel-of-misfortune-2fbfa9

Wow that's cool! Creepy artwork tho. And the fortunes are a bit heavy for my taste. "Cursed" "Blinded" "Death" "Imprisoned" geez nobody will even want to try it. I'm sticking with Treats will be Yours lol.

It would probably be simpler to make your own than hack that thing I suspect. At twenty five bucks (amazing how such toys can be priced so low), there's probably one custom chip controlling it all and they went cheap on the logic for choosing the next fortune.

Of course, it would probably cost five times as much to make your version, so maybe accepting non-random fortunes is the answer!

There's no reason to even press the button because the fortune is always one to the right of wherever its pointing.
Yeah you gotta wonder what their people in Gemmy (Hyde and Eek) P&D were thinking. A random number generator is one of the simplest things in programming. They could so easily have made this so much better, a few changes and this thing could have been as popular as the Pet Rock. Probably was an "executive decision" (rolling eyes)

"Well brrmhm! I like the prototype, but ditch the actual functionality so it always lands one to the right of where it starts. That way... it won't really work. Bring it back and we'll call China and start production. Oh and be sure and make it so its impossible for those Arduino boys to tweak. We don't want any working models getting through....."
"Yes boss."

1 Like

Since it only rotates in one direction, I guess one simple transistor would be enough for a driver. A motor driver usually has two H bridges, meaning it's meant for two bidirectional motors.

A classic mechanical wheel of fortune relies on the randomness that comes from the wheel spinning hundreds of revolutions after the power is cut. It might do 672.89 revolutions, which lands on number 89. Or 659.23 revolutions, which lands on number 23. If it started at 0. But it usually starts at the previous, equally random position.

This toy doesn't spin for minutes, and it doesn't have to. The random number can be chosen at button press. Then the wheel can spin 1 to 2 revolutions to reach that number, taking care of mimicing the slowing down both in motion and sound. Or only in sound.

I'd reset the random seed at each button press, by reading the time in milliseconds since machine start. Or if your MCU doesn't have machine time (all Arduinos have, don't they?), make a loop that is scanning for the button press while it increments an int.

Talking about randomSeed(), it's almost always used by simply fetching an analogRead() value from an unconnected analog pin, but this makes just 1024 seeds, so you won't ever have more than 1024 pseudo-random sequences, and often it's not enough.

As randomSeed() needs an unsigned long value, to have some more random sequences, I suggest to get a couple of analogRead() (from two different analog unconnected pins, if available), mix them, and add the millis() value to have a more wide range. Especially if, like this case, the random should be extracted when an event rises, like a button pressed, the millis() comes in real help.

I mean something like this:

  // Random seed
  unsigned long seed = analogRead(A0);
  //delay(50); // Add this if you read from the same analog pin
  seed += analogRead(A1) * 1024 + millis();
  randomSeed(seed);
1 Like

Well as I said these are sold in any Target store in the Halloween aisle.
Here's how I envision the simplest way for this Wheel of Fate to be fixed to actually work with an Arduino:

  • There are 8 possible outcomes on the wheel (see the picture).
  • When you press the button, the wheel spins. It always lands on one to the right of where it started. So if its on "Treats will be Yours!" it will land on "Watch your Back!". Two presses and it stops. Three, and it will land on, "Happy times Ahead!" and on.
  • Now, the activation button basically has two wires going to it, and it simply closes the circuit and the "Hyde and Eek" chip handles the rest. If you press it again, it stops. And again, it goes one more to the right, and on.
  • Therefore, if you press the button 3 times, it will land two to the right instead of one. 5 times, it will land on 3 three to the right. And on.
  • So. Lets say you cut those wires going to the button and run them to a small Arduino chip instead. Then have the button wired to that same chip.
  • When the button is pressed, the arduino then sends one of 8 random presses or close circuit signals to the two outgoing wires. 1 press will send 1, 3, 5, 7, 9, 11, 13, or 15. The arduino chip can do this instantaneously. So in theory, one press on the button going IN to the chip, will randomly send one of 8 presses (1-15) to the original button wires, all ODD numbers of course.
  • Viola, a genuinely working Wheel of Fate.

Anybody want to buy one of these and give it a try, or have any suggestions on a cheap chip that can do this? I think this would be a fun Halloween starter project that could lead to good fortune! :slight_smile:

You can mail me yours and I'll have at it. :expressionless:

But your plan is depending on the COB brain to be able to count… how fast can you feed button presses, and how high will the device actually count?

You could do some experiments along this lines with a relay driven by the Arduino, just put the NO contacts across the switch.

And wherefore

 all ODD numbers of course.

?

a7

This. What happens if you manually press the button while the wheel is in motion?

If you manually press the button while the wheel is in motion NOW, it will stop.
If you pressed it after wired to the Arduino, it would just recalculate and issue another random odd number of presses between 1 and 15. As far as speed, no problem. Just put a delay in the loop.
Heck, just whip out your debit card and click, and you've got one. Free shipping! Its the Amazon age.

https://www.target.com/p/animated-halloween-wheel-of-fate-hyde-38-eek-boutique-8482/-/A-81063366?ref=tgt_adv_XS000000&AFID=google_pla_df&fndsrc=tgtao&DFA=71700000014804813&CPNG=PLA_Seasonal%2BShopping_Brand|Seasonal_Ecomm_Home&adgroup=SC_Seasonal_Halloween+Decor&LID=700000001170770pgs&LNM=PRODUCT_GROUP&network=g&device=c&location=9022112&targetid=pla-1725978161017&ds_rl=1246978&ds_rl=1247068&gclid=Cj0KCQjwj7CZBhDHARIsAPPWv3edUIVOPK8efInwZfMKDSjc4_6dtpefze7yYiLbriCLvrLG6jB5fFwaAt7tEALw_wcB&gclsrc=aw.ds

I hope you can understand that we aren't here to buy things and create projects and/or programs from scratch for third ones, it's not enough having an idea (even if nice, interesting and intriguing like this, I admit!:wink: ) and throwing a "challenge" to others.

Anyway, have a look at THIS mini project, it might help you to start for your gadget modding.

I just had a thought, replace the push button with a proximity sensor so the wheel spins by itself when someone comes near. That would make it more spooky, no?

1 Like

So… no virtually pressing of the button is going to do any different.

Can you use N real button presses to get the device to move N steps to the left or right, whatever, and issue the one "fate" at that position w/o hearing all the others?

Too soon, it stops.
Too late, you hear the +1 entry, not random.

Is there a window of time where you can press the button and get it to skip along? If so, consistent enough to program N presses timed just right?

As for buying one, I am saving money for heating this coming cool season. :wink:

And I dunno who said $25 is cheap for a toy like this - I am amazed at the stuff we get for what seem like pennies on the dollar.

Probably because we burning the planet to a cinder while fiddling, hot accounting for the real cost of all these toys. By which I mean 'bout everything we up to. :expressionless:

a7