top of page

Remote-Controlled Car

HTML, Python, Lasercutting, 3D Printing, OnShape

Group of 3: 11/28 - 12/06, 12/06 - 12/15

Overview

This project, which was for my Electronics and Controls class, was a remote-controlled robot that could support a 1kg load. There were two phases for this project. The goal for the first phase was to have it driven remotely through a hallway. For the second phase, the car needed to traverse a maze without the driver seeing the maze. For our microcontroller, we were given a RaspberryPi.

First Iteration

Second Iteration

Phase 1

11/28 - 12/06

Designing

Physical

For our physical design, we had several constraints.

  • It must fit in a circle 30 cm in diameter.

  • It must be less than 30 cm tall.

  • It should not use an RC car controller

  • The top of the robot should be a freight platform that can support a load, up to 10 cm in diameter that weighs up to 1 kg

​

In our design, we opted for 2-wheel drive to maintain a simple, yet effective driving system. To maintain balance, we decided to use a castor wheel in the rear.

69182547742__21491465-B290-41F3-8132-13A489FBC257.jpg

Sketch of Design Brainstorm

Remote Controlling System

We created an HTML website that could remotely control the robot. Whenever a button was pressed, it would call for a function to be executed through Javascript, which then called a function stored in the Raspberry Pi's system. This was done using FLASK and jQuery. I worked primarily on the design of the HTML website in this phase.

Screenshot_20221212_114244.png

HTML Website

Screenshot_20221229_121137.png

JavaScript Code

Screenshot_20221229_121038.png

RaspberryPi Code

Fabrication

For the chassis of the robot, we used acrylic which was laser cut. We also laser cut motor attachments that would then allow for the wheels to be attached to the wheels, and a screw was installed in the back with wax paper on top as a makeshift castor wheel. The design for the chassis was first CADed in OnShape. The freight platform was created using a handsaw and table saw. Everything was attached using hot glue.

Results/Challenges

We found difficulty in driving the car due to no modulation in the speed of the motors, and both motors ran at slightly different angular speeds, resulting in the car gradually shifting to the right when moving forward. Furthermore, we found that the corners of the car could get stuck when turning corners. Nonetheless, it was still able to drive down the hallway successfully!

Phase 2

12/06 - 12/15

Redesigning

Physical

We needed to know where the robot was in the maze to be able to make it reach the end. We chose to add buttons so that when they were pressed up against the wall, it would send a signal back to the HTML page.

​

Additionally, we chose to redesign the robot into a more circular chassis. This was because it allowed it to turn and maneuver more easily, especially around corners. For increased stability, we added another castor wheel to the front.  We wanted to also incorporate a new component, so we made the outer walls living hinges.

Remote Controlling System

We modified the HTML website so that we could see when a button was pressed. The button color changes from green to red when the button is pressed. We also incorporated pulse width modulation to alter the speed of the buttons and made it so that the buttons were activated while pressed, while before we had to use a "Stop" button. 

Screenshot_20221229_121757.png

HTML Website

The biggest difficulty we had was getting input from the robot to be sent back as data to the HTML website. We created an array that stored data on if a button was pulled high or low, which then told us if it was pushed down or not by changing the color of the respective "button" on the HTML website. 

JavaScript Code

Screenshot_20221229_085208.png

RaspberryPi Code

Fabrication

Because we completely redesigned the robot, we wanted to use a more sustainable option than acrylic. Therefore, we used plywood as an alternative. The entire chassis was lasercut. We had to do a lot of trial and error with the living hinges because we wanted it to be sturdy, yet flexible, especially because we had to include holes for the buttons. We reused what material we could, such as the wheel attachments.

Results/Challenges

We found a lag time between when a button would be pressed and the color on the HTML website would update, so we might have wanted to increase the intervals in which the function used to read the button status was conducted. Furthermore, there was sometimes a lag time between when a button on the HTML page was released and the actual car stopping, likely due to issues with the wifi. Also, it was still somewhat difficult to navigate the maze, especially because when turning, it was difficult to know how much the car turned.

bottom of page