Arduino Implementation

As our project progressed, we realized that having a separate microcontroller for the motor control would be a good idea so that the Raspberry Pi can focus solely on the “thinking” side of the robot. We have decided to use an Arduino Uno R3 for this task. The Arduino doesn’t handle any mapping or decision-making, that all happens on the Raspberry Pi. Instead, the Arduino’s job is to take the movement commands coming from the Pi and turn them into real physical actions on the car. Together, the two boards work like a brain and a body: the Pi figures out what the robot should do, and the Arduino makes it actually happen. A more technical description of the Arduino can be found on the Design Choices page.

Making Progress

In the past week we have made significant progress in the development of our racecar. First, we finally got Gazebo working and were able to simulate a robot similar to our racecar in an environment and used it’s simulated sensors to navigate the robot to a selected point. This was a major stride towards the eventual path planning and obstacle avoidance of our actual racecar.

We also wanted to make a housing for all our hardware so that there were as few wires and equipment showing as possible. The design of this housing was done in Onshape and then printed on an Elegoo Neptune 4 Pro 3D printer. The print itself took about 7.5 hours and 300 grams of filament but luckily it only took two tries to get everything to fit together nicely.

Images of the Gazebo simulation and housing design can be found on the Progress page

Connecting the Raspberry Pi to Wi-Fi

Today, we spent about two and a half hours working with the Raspberry Pi in an effort to get it communicating with the laptop via Wi-Fi. Our plan was to connect them both to the schools network since we wouldn’t have to worry about the two being too far apart. Something about the schools network was not allowing them to communicate and we could not find a way around that so, instead we settled for the personal hotspot on Cole’s iPhone. Unfortunately this means that someone will have to follow behind the RC car with the laptop once we actually get it to navigate the halls of the engineering building. While this isn’t the most ideal solution, it’s better than nothing.

Recent Roadblocks

For the past few weeks, we have had issues bridging the Raspberry Pi with a desktop computer because to do so, they must be connected to the same network. However, the Raspberry Pi is currently connected via Ethernet, which results in a different IP address compared to Wi-Fi. Our temporary solution is to connect the desktop to the Ethernet so that they share the same IP address. This is not a long-term solution because the Raspberry Pi will eventually need to be wireless.

Another roadblock we have come across is the lack of our own desktop computer in our workspace. We often have to share a computer with the project group next to us, which can be an inconvenience at times. We also require a monitor to view the software downloaded on the Raspberry Pi, which we do not have. We are currently working with the engineering department to get us the equipment we need.

Initial Drive and Steering Test

Today we implemented an Arduino Uno R3 into our racecar to test the motors response to basic drive commands. Our goal was to find out what a safe speed would be for the car to operate. Since we did not want the car to drive itself off the table, we elevated it by the base so that the wheels could spin freely. What we failed to consider was the lack of weight on the wheels, which caused the them to spin way too fast, nearly shaking the car apart. Lesson learned.