Rover

Rover Parts


The first step in any project is to choose the parts. The first component is a Micro:bit. It is the brain of the project. It also holds the code and the temperature sensor. It is very inexpensive and user friendly. 

The second component used is a voltage regulator. It lowers the 9 volts from the battery to 3 volts so the Micro:bit, distance sensor, neopixel, and camera can safely operate. Two voltage regulators are necessary because the current draw is too high for one regulator. If I used only one regulator it would overheat.
  
The third and possibly most important component is the Tb6612fng motor driver. It takes signals from the Micro:bit and tells the motors to move according to the signals from the Micro:bit.

The first sensor is an ultrasonic sensor it sends out a high frequency ping and waits for the ping to return and sends a signal to the Micro:bit. Using the time it took for the ping to return, the Micro:bit calculates the distance to the object.

There is also a ring of neopixels on the front of the rover. Each neopixel can turn many colors. To hold it all together there are many M3 and M4 nuts and threaded rods.

Remote Parts


The joystick  is what controls the rover's movement. It is made of two potentiometers which sense up and down and side to side movement, and one button.

The buttons are just two pieces of metal that touch when you press them. when they connect it completes a circuit so the electricity can come through to the Micro:bit. If the Micro:bit receives an electrical signal, the code I wrote tells the Micro:bit in the remote to send a radio signal to the Micro:bit in the rover, which makes the rover preform a task.

The OLED display displays information on the rover status. It is made of thousands of pixels but is controlled with only two pins using a technology called I2C.

Breadboarding


After assembling the components it is time to breadboard. Breadboarding is very important because it is very easy to quickly make and remake designs.

I connected the MIcro:bit breakout board (which holds the Micro:bit) to the breadboard and then I used wires to connect the pins on the breakout board to the different components, including motor controllers, neopixels, and sensors. I did the same thing with my remote circuits, connecting the pins on the breakout board to the joystick, buttons, and OLED.


The breadboard is designed in a way that allows all pins on a row to connect. You can easily insert components and wires easily into many small holes. There are two types of breadboard wires: solid core wires, which are very clean and orderly but hard to remove, and breadboard jumper wires, which are very easy to insert but look like spaghetti.

Prototyping before creating a PCB.

This is one of the breadboard prototypes I made before putting the final prototype into the tank.

PCBs


A PCB (printed circuit board) is a custom-designed circuit board. You can place components directly into small holes on the circuit board and solder them onto the board. 

I used a program called Easy EDA to design the PCB for my rover remote. It is very user friendly and makes it easy to design PCBs. 

The first step in making the PCB is to make the schematic. First I found my components in the extensive library of components on the website and placed them on the workspace. It doesn’t matter where they are on the workspace yet. Next, to connect components together I used something called net flags. Instead of drawing lines to each pin, I just said where the pin should connect to. It makes the schematic less messy. 

After all the net flags are in place it is time to pick the size and shape of the PCB. It can be any shape but a rectangle is easiest. If you want a custom shape it is necessary to design a shape in Inkscape then import it to Easy EDA. After choosing the shape of your PCB it is time to route the traces. Traces are little conducive strips that connect components. It is very important that traces do not overlap because if they do it can short circuit the PCB. That is why the PCB has many layers; the traces can go over and under each other without touching. My rover PCB has three layers and my remote has two. After I finished designing my PCBs I ordered them and had them shipped to my home from China. Then I sued my soldering iron to solder all of the components into place.

 

After I finished designing my PCBs I ordered them and had them shipped to my home from China. Then I used my soldering iron to solder all of the components into place.

This is something I made to determine the correct size of the PCB so all the components fit the way I wanted.

This is what I made to determine the correct size of the PCB so the components fit correctly.

This is the schematic which shows how the components are connected.

This is the schematic which shows how the components are connected.

This shows silkscreens and the electronic traces on the PCB.

This is the view of the footprints which shows the silkscreens and electronic traces.

This is a 3D rendering to view the final product.

This is the 3D rendering which shows the finished product before it is manufactured.

This is me soldering the components on to the PCB.

This is me soldering the components into place.

This is the final product with one motor, an ultrasonic sensor, and neopixel attached.

This is a finished PCB with some components attached.

3D Printing


I have an Ender3 Pro 3D printer that I used to 3D print the body, gears, top, front, treads and pins. A 3D printer is a machine that extrudes plastic in to a shape. The first step in 3D printing is to design, find, or modify a design. I found the base files on a website called Thingiverse and modified them on a program called TinkerCAD. A printer can only under stand Gcode. To turn the 3D file into Gcode you must slice the file first. I use a program called Cura to slice, or convert a 3D model to Gcode. It also enables you to make supports, rafts, and brims, and change infill, bed temperature, and nozzle temperature. all of these increase the quality of the print.

Now it is time to level the printing bed, which holds the print, with a sheet of paper. you slide a folded piece of paper into the gap between the nozzle and the bed and adjust the bed so that the paper can barely fit. This helps the print come out evenly and helps it adhere to the bed better.


Below is a short video of the rover cover printing.



Code


Code The code is what controls everything the rover and remote do. I coded in MakeCode, which is an online platform that allows me to code in many different languages, including MakeCode blocks, Python, and JavaScript. I wrote two separate programs, one for the rover and one for the remote. The Micro:bit in the remote communicates with the Micro:bit in the rover via radio, which is a service that is unique to the Nordic chip in the Micro:bit.

This is what the tank code looks like in MakeCode blocks.

This is what the remote code looks like in MakeCode blocks.

 

Complete Rover and Remote

IMG_4041

Completed rover with cover.

IMG_4042

Completed rover without cover.

Comments are closed!