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.
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.
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.
Comments are closed!