Power Wheels Racer Part 12: Updates and fixes

Part 12:

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.









Pi Zero Drone: Part 4

Quad Zero Post #4: Calibrations
              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:

Rotor Direction:
              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!



Michael Perry

Virtual Reality R/C Car: Part 5

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.


video

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.



The Pi Zero Drone Part 3: Connecting the PXFmini

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. 







Virtual Reality R/C Car: Part 4 Adding The Head Tracker

After some testing, we realized that only looking forward is very limiting. Almost everyone who drove the car was tilting their head one way or another in order to try and look around. After doing a little more research on Fatshark's Trinity Head tracking Module I realized that it would be easier to just use another IMU. This was because the trinity is meant to be used with one of the store/online bought R/C remote controllers. However I did order a roll, pan, and tilt camera mount for the FatShark 700L CMOS V2 Camera you can find it here:

http://www.getfpv.com/fatshark-pan-tilt-roll-camera-mount-servos.html?utm_source=google_shopping&m=simple&gdffi=747627bc7e464db68e5f529d971aacf3&gdfms=5072B314B330484BA513E58972DCB359&gclid=CKGevMjpos4CFQsehgodZjQPjA

After looking around online for a bit I chose to use Adafruit's 9DOF IMU Breakout board. You can find it here:

https://www.adafruit.com/product/1714

Adafruit has lots of documentation on all their boards and that makes it much easier to use their products. Once we got the board the next step was to get it hooked up and to learn how it worked. Some information about how to connect the board can be found here:

https://learn.adafruit.com/adafruit-9-dof-imu-breakout/connecting-it-up

Basically what that page translates to is this:

Arduino            IMU
5V        <<-->>  Vin
GND    <<-->>  GND
A5        <<-->>  SCL
A4        <<-->>  SDA

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:

https://learn.adafruit.com/adafruit-9-dof-imu-breakout/software

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:

https://github.com/lukebocabearings/VRRC/blob/master/IMU_TEST

And a video of the code in action:


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.

Receiver Diagram


Transmitter Diagram