top of page

Low Fidelity Prototype

In this assignment, students are assigned the challenge of developing an initial, rudimentary (Low Fidelity) prototype for an autonomous vehicle. The objective is to create a robotic car controlled by the Raspberry Pi and incorporating Limit OS.

Motor Testing video- Jumper wires

Initially, I conducted motor tests using an 18650 battery pack equipped with 18650 batteries, a motor, and jumper wires from an electronics kit. I wrapped the jumper wires around the motor leads, creating a loop at one end. Subsequently, I formed a loop at the end of the battery holder and intertwined the battery holder wire with the jumper wires. Essentially, I directly connected the motor and power source without soldering wires to the leads, aiming to assess if the motor would function without the need for soldering, with the intention of establishing an on/off switch.

I arranged a breadboard circuit similar to the LED project to establish a control system for the motors. The positive wire is connected to GPIO 4, and the negative wire is plugged into the ground, following the same configuration as before. I am endeavoring to replicate the same commands, but this time, I am employing a motor instead of an LED.

I am testing the motors like the first video but with wires from a stripped ethernet cable (seen below) instead of a jumper wire.

IMG_2055.jpg

I am testing the motors like the first video but with male to male wires from the Elegoo Arduino kit

Examining the connection between the batteries and motor through a breadboard setup. This step will facilitate the establishment of a system that can link to the Raspberry Pi and Limit OS for subsequent control.

IMG_2082.jpg

The housing unit for the Low-Fidelity prototype will utilize the same box that the components were shipped in upon purchase.

Testing the connection between the batteries and two motors through a breadboard setup. However, a drawback of this configuration is that, due to the motors being connected in series, one motor may receive more voltage than the other. This could result in the motor further back in the circuit running slower than the one at the front.

Following the motor test with the battery pack connected to the breadboard, I substituted the battery power source with the Raspberry Pi. However, upon attempting to utilize Limit OS, the motor failed to operate.

I suspect that this issue arises because the Raspberry Pi is not supplying sufficient current to the motors. The 18650 batteries provide significantly more power to the motors compared to the Raspberry Pi.

IMG_2091.jpg

Initial iteration of the robot car.

Note: The motors are powered by the battery pack and are arranged on a breadboard. While the vehicle can move when the battery pack is turned on, it currently lacks control and can only move forward.

IMG_2090.jpg

First attempt at soldering, in preparation for the soldering class section. I did not have any flux or silicone grease on hand, but I will use that with future solders.

IMG_2116.jpg

Initial endeavor to integrate the Motor Drivers and Raspberry Pi for motor control.

The left motor is linked to the Out 2 ports, while the right motor is connected to the Out 3 ports. The positive terminal of the battery pack is attached to the +12V port, and the negative terminal is connected to the ground port.

IMG_2117.jpg

Second iteration of wiring two motors together. This time, I managed to set up the circuit successfully, ensuring that the motors run at approximately the same speed. This is crucial for maintaining the vehicle's movement in a straight line rather than causing it to turn.

See circuit below:

IMG_2100.jpg

Video of the car moving forward. Please note that the motors are still operating at different speeds. While this circuit configuration minimizes the discrepancies in motor speeds, it does not completely eliminate them. Additionally, there may be mechanical reasons for these differences, such as varying levels of friction or components catching on surfaces.

The robot car can now move in a relatively straight line. I reconfigured the circuit based on the instructions in the following video, substituting motors for resistors.

IMG_2119.jpg
IMG_2120.jpg

First attempt at motor control through Limit OS using the provided layout. Successfully activated the right motor, but encountered issues with the left motor.

Note: Configured Limit OS in an H-bridge setup, designating each port as a digital output. To dictate the motor's direction, turned on one motor port and left the other off for each motor (left and right).

Operating the vehicle through control interfaces. Instead of setting up the configuration as an H-bridge, as detailed above, I adjusted the controls to map specific combinations of each motor turning on or off to movement in different directions.

Picture taken with the Raspberry Pi camera module.

IMG_2132.jpg

Picture of final vehicle

IMG_2134(1).jpg

1-2 minute video of how the final iteration of the robot works and its documentation process.

image.jpg

Video showcasing the setup and the connection of each component to various parts of the system. This encompasses power sources, motors, motor controller to Raspberry Pi, and the Camera Module.

Lessons Learned:

  1. Directly powering the motor through a breadboard circuit using the Raspberry Pi and Limit OS is not feasible. While the Raspberry Pi can power components like an LED (refer to the LED project), it lacks the capacity to drive the motors we are using.

  2. Allocate ample time for troubleshooting and device construction. Starting late and underestimating the troubleshooting workload resulted in encountering numerous obstacles while setting up the vehicle.

  3. Ensure a complete shutdown of the Raspberry Pi server before turning it off, especially before disconnecting power. This precaution is crucial to prevent potential data corruption on the micro-SD card. Initial issues with my VNC viewer could be attributed to this, though I haven't investigated it thoroughly.

  4. Physically label GPIO pins on the Raspberry Pi for ease of reference. Neglecting to do so made identifying the correspondence between pins and GPIO pins a challenging task.

  5. Acquired various skills during the course, including soldering, Raspberry Pi software installation, basic Linux command programming, and comprehension of H-bridge functionality.

  • facebook
  • twitter
  • linkedin

©2023 by Jessica Brooks. Proudly created with Wix.com

bottom of page