As a preview to what this thing is shaping up to be, here is the gear motor and the new cam design. That new cam is what the bearings will be riding on to make the fitness device move up and down to fake it out. :)
The cam follower will snap through the inner hold in the bearing with something just like this:
It may take a few prints to get the tolerances right, but that's the concept. In this version of the Cheat-O-Matic, the follower will have a light spring damping the vertical motion so it doesn't hop up and down as harshly as the one in the video on my site.
Still a lot of CAD to do. This thing has a toggle switch for power and a port for a 12V DC plug. Hopefully the prints will come out nice and within tolerance and I won't have too much nylon fiddling to do to get the prototype working.
I've been getting more into 3D printing, lately. One of the many things I felt could benefit from 3D printing technology was the Fitbit Cheat-O-Matic (version 1) I wrote about a while ago. It's very funny (as in, I built it as a joke; see previous linked article) and it even got some press at BBC.com. The crazy thing is I've gotten a number of emails from visitors to my site asking if I could build them one. They all were willing to pay for it, as well. That's cool. I don't judge. ;)
The first design was kinda simple and never really built to run indefinitely; on the contrary, it was meant to last long enough for the office Fitbit competition at the time (about a week I think). It was enough to get me through a competition, anyway. Certainly not a design I'd wish to build multiples of and then sell. They would have all failed soon after their users started them up. Turns out RC servos, even the high-quality all-metal-gear ones. I killed three different kinds of servos, one of them being VERY expensive.
I was watching old engineering videos from 1939 on YouTube one day and saw a cool demonstration of a cam and follower in a machine of unknown purpose. I realized then that I could make a very simple contraption using 3D printing and a geared DC motor to shake a Fitbit up and down very easily. It could be super-simple to assemble, cheap to print all the parts but the motor and probably run off a simple 12V wall wart power supply.
This is the CAD design of the new Fitbit Cheat-O-Matic, done in Onshape cloud-based CAD:
Fitbit Cheat-O-Matic 2 3D CAD Rendering in Onshape
The yellow piece is the cam. The dark grey piece with the cross thing on it is the follower and also the holder for the Fitbit. The light blue shaft sticking through the cam is the shaft from the geared down part of the 12V DC motor. The big round cylinder in the back is the motor. The lighter gray and dark blue stuff is the base. The dark blue piece is the part of the base the gear motor is attached to using two screws. The base fits onto the bottom of the faceplate with a simple tab and the two sets of side supports. Here is the exploded view of the CAD rendering:
Exploded view of Fitbit Cheat-O-Matic 2
I 3D printed the parts at Xometry (http://xometry.com). The tolerances on this first attempt were a little tight, so I'm changing up the CAD a bit to save me some plastic shaving and trimming. That's mostly because I'm still kinda new to 3D printing. The total cost for the four parts and shipping was about $50. If I got around to buying a 3D printer, that would be much cheaper, of course.
The 12V DC gear motor came from Robot Shop (http://www.robotshop.com) and cost about $25 with shipping. The gear motor is design to run at about 58 RPM. Since the cam has two high sides, it pops the Fitbit up and down about twice a second which is a pretty brisk walk, if not a run.
The screws I already had on hand. The power comes from a cheap 12V wall wart power adapter from Radio Shack. Anything that can provide about 60 mA of power will suffice. That's the draw I measured while it was running with a Fitbit attached. 1 amp adapters are pretty easy to find.
Here's the Fitbit Cheat-O-Matic 2 in action:
Originally, I'd designed a gap between the cam and the holder for a 1/8" steel ball, thinking that would allow smoother operation. Turns out that caused a tiny bit of binding which made the device louder and made the motor work harder. Without the bearing, the plastic-on-plastic is quite smooth and doesn't appear to be wearing at all.
As far as efficiency, as I write this it is 8:38 PM. The Fitbit app says the machine has racked up 116,000 steps since midnight. I think it's on its way to about 135,000 for a 24-hour period. I was told there'd be no math.
Screenshot from iPhone for Cheat-O-Matic stats for today
I will compete separately from the Fitbit Cheat-O-Matic 2 in future office competitions. I'm a healthy person with a healthy sense of humor, so don't go off on a "that guy's lazy" rant. I am lazy in that I prefer to find faster ways to do things, but I'm certainly not a slug or a lump. Let's keep that straight. ;)
I like making things even if they have no real useful purpose. THIS device certainly qualifies. If you're interested in purchasing one, drop me a message. I'll work on getting them up on my store on this site. Haven't worked out a price since everything has been purchased at one-off pricing.
Andy is using Boca Bearings and has agreed to allow us to present his latest project as part of our workshop. Andy's original post can be found here
After the old brake handle broke off and the weld attaching the steering column came undone, we had to makes some updates to the car. First we decided to design and print a new brake handle. The two main properties we wanted the new one to have was an ergonomic grip and durability. The grip has four slots to fit the drivers fingers for a comfortable grip. To achieve the durability desired the grip was printed out of ABS instead of PLA and was given a 50% infill on the print. Once I put the handle I pulled back on it as hard as I possibly could and it didn't budge. I was even able to lift the front of the car off the ground by pulling back on the handle. Here is a couple images of the handle on the hydraulic break.
However as I designed it the first time the handle did have a couple of flaws. The front end needed to be have a chamfer to clear the hydraulic break when it was resting. Also a small slot needed to be cut out of the inside also. The spacer that goes on the inside of the handle also needed to be shaved down a bit because I forgot to add tolerances to the width of it. I was able to do these with a dremel and angle grinder but since have went back and edited the solidworks file so that the next print will have all the features.
The other thing that is different about this handle is the method in which it fastens to the break. I used 1/4 - 20 low profile screws and heat inserted nuts. The heat inserted nuts can be found on Mcmaster Carr and are inserted into pre-made holes by using a soldering iron. the plastic melts and hardens around the insert so it will stay in place. This is really nice for 3D printed parts because the nut is permanently fixed inside the part. The soldering iron wasn't quite long enough to insert the first heat insert through the hole and I melted a little bit of plastic around the outside. Next time I will have to use a longer skinnier iron. The inserts are pictured below.
Another change that was made was the throttle set up. Instead of twisting your hand around the handle now the throttle is activated by the driver's thumb. This allows the driver steer a little more comfortably while engaging the throttle. Bryan is also going to use two more 90 degree PVC joints and another shaft to make the steering wheel a rectangle rather than a U shape soon.
In order to fix the weld that broke on the steering column. We are going to fabricate a small 90 degree aluminium bracket to hold in place I also had to angle grind the frame so that it sits flat.
In-between
post there have been multiple snags in getting the quad copter in the air. Each
are listed below in order of headaches:
1.Power Sources: I would like to thank Ohms Law to
convincing me that overloading the Pi Zero with too much voltage will indeed
fry the voltage regulator. This will cause the PCB to smoke and make your board
useless. DO NOT CONNECT THE POWER MODULE AND THE 2A POWER SUPPLY AT THE SAME
TIME. I blame my lack of attention and ignorance for this mistake. My solution
is to order a new Raspberry Pi Zero but in the mean time I will continue the
build using a Pi 2 B+. This does have its advantages in more CPU power and
faster processing. I will like to compare the two computers for future builds.
2.ESCs: My original ESCs were HiTech 18Amp with no
BEC power connection which became important in powering the ESCs for ultimate
control. I then traded them for 12A Afro ESC.
3.Wi-Fi Dongle: This part of the project had me
researching network protocols and taught me a lot about specific IEEE protocols
that help me pick the appropriate adapter. Because of the Wi-Fi hotspot on the
PXFmini emitting a 5 GHz band and my failure of creating a similar frequency
band, I choose Netgear AC600 Dual Band wireless AC adapter. This adapter is
capital of emitting 2.4GHz and 5GHz frequency band.
Once these changes were made the Wi-Fi hotspot from the
PXFmini was visible and I was able to connect using APM Mission Planner 2.0.
Once the connection was made the accelerometers and gyroscopes were active and
receiving positioning from the quadcopter.
Steps to configure the copter along with the radio controller and ESC
can be found on the link:
To
successfully control the quadcopter the Rotors have to spin in two different
directions (Clockwise – C & Counter Clockwise – CC.) The figure below
indicates what motors spin in the desired direction.
To test this without
the propellers attached, I placed small sticker tabs on each rotor and
determined the rotation. To change the direction switch any two leads and
double check the direction. Now is time to test!
There are a couple of parts of this project that I am currently trying to tie together but am not quite there yet on each of them. The three things that I have been working on are running the Atmega328P micro-controller without the jump board, changing the R/C Car being used, and integrating the head tracker with the rest of the project.
Changing out the R/C cars has actually been in the making for some time now. The 3D printed truggy had been in the shop when I got here but was not functional. The first issue that I had while working on this car was the differential gears that were make out of PLA the mesh was tough to get right and I had some problems with parts breaking. To fix this I decided to order metal parts for the drive train. I got this idea from a great thing on thingiverse here is the link:
I printed the extra parts, mainly the pinion and spur gears, out of Hatchbox PLA. Soon after the car got a new set of electronics. The motor and ESC that I am currently using are the Traxxas Titan 12T DC motor and the Traxxas XL-5 electronic speed controller. This set up worked temporarily but the spur and pinion gear failed quickly here is a video of the test below.
Since they failed so quickly I decided to try ABS instead. Here is a picture of the new spur and pinion set up.
And here is a picture of the new center differential. These gears should be able to hold up much longer than their PLA counterparts. However some part of the drive-train seems to be sticking. I still need to investigate this issue further.
The next part of this project that I want to talk about is running the Atmega328P chip without the Arduino board. This is what will allow for a printed circuit board to be made for the receiver and transmitter in the future along. This should make the entire design more sleek and durable long term. To do this I started out following the tutorial for using the Atmega328P chip standalone found on Arduinos website. Here is a link:
This is basically a way to run the micro-controller on a breadboard by itself while using the arduino only as a power source and FTDI programmer. The tutorial also explains how to burn the bootloader using the ArduinoISP to burn the firmware. This process allows the chip to understand the code that you write in the Arduino IDE on your computer and upload to it. However, this tutorial did not work for me. I was double and triple checking my wires but nothing seemed to work. In the tutorial it says to select either the Nano or Duemilanova board and then select the Atmega328P option. While doing this the IDE would try to upload the code but eventually time out while trying to connect to the chip. The way that I fixed this was by selecting the Uno/Genuino as the board and then uploading as usual. I am not sure if the tutorial is just wrong or if the board selection that they recommend would work if you also flashed the bootloader using the ArduinoISP. Here is a picture of the working set up.
In this picture I was just testing to make sure I could upload code to the chip and turn on an LED. This will eventually just be the power LED on the board. The connections to the board are Tx and Rx for programming and 5V and GND to power the chip.
After I figured this out the next move was to prototype the entire system on a breadboard and have it run totally independently. While doing this I also want to integrate the head tracker and pan/tilt/roll camera mount. I have most of the receiver and transmitter wired on a breadboard here are pictures of the two.
Receiver Circuit
Transmitter Circuit
I still need to rework the code before testing these two circuit. The main three changes that need to be made are adding one part of the IMU code to the transmitter, the other part to the receiver, and redo all the pin numbers in the code. The reason i have to redo all the pin numbers is because the pins on the standalone chip do not exactly match up with the software. The way that I tell which pin is which is this diagram:
This diagram is really a lifesaver when it comes to working with the UNO it lets you easily see the multiple uses of each pin.
Pictured below is the setup of the PXFmini RPi-0 shield. You can notice the lead pins go straight into the Pi and must be shouldered to ensure a good connection.
The
PWM output pins will be used to connect the ESC and rotors. From the Erle
Robotics website the diagram of the connections are pictured below.
There are also multiple ways to power the controller, I used
a Power Module that plugs into the power port on the shield. Power from the
lipo is used to power the board as well as the ESC. When I am developing
language on the Pi’s terminal, I use a 2A power supply into the power port on
the Pi. Both cases are shown below.
To connect using a RC transceiver, the 9th pin is
PPM enabled, that is Pulse Position Modulation. This allows multiple PWM
signals to be used using one input. If you take a look on the previous post you
can see the connection pins schematic, I used this to connect the ESCs. With
the vast number of radio controllers at the Boca Bearing Workshop, not one is
PPM enabled. Any of the controllers can be used if a PPM encoder is used to
convert the PWM signal to a one wire PPM signal. These are cheap and easy ways
to use any radio controller that you are comfortable with. To date, I am still waiting on my encoder and
once it comes in I will post a video of everything connected with a flying
quadcopter.
Also I connected pins 3, 5, and 6 to the signal pins of the pan, tilt, and roll Servos on the camera mount.
After I connected everything up it was time to start downloading libraries and putting the test code together. I found all my information on how to set up the code for this chip from here:
The key thing is that you have successfully downloaded all four of the libraries they mention in the articles above. The LSM303DLHC and L3DG20 libraries are there to read the information from the gyro and accelerometer/magnetometer. The unified sensor library combines all of this information and the 9DOF library makes this information extremely easy to interpret. On Adafruit's Github they even have an example sketch to help get you started which I have adapted to print some more debugging information and to control the servos. This code that I used to test both the IMU and the camera mount can be found on my Github here:
So now that I know how to use the IMU to control the camera mount the next step will be to add the IMU to the board to the transmitting Arduino connected to arcade motorcycle and to add the camera mount to the receiving Arduino on the car. Also I want to make the step towards running the ATMEGA328p micro-controllers totally separate for the Arduino boards. This will help make the wiring cleaner, the design more durable, and also with the help of CircuitMaker (a PCB design software) the design easier for anyone to recreate. Here are the schematics that I have drawn up to include the IMU and servos for the camera mount.