top of page
MEGR 3090 Summary
Phase 3 Assignment Blurb.png
LimitOS Project
Screenshot 2021-08-08 at 10-07-31 A#2 LimitOS Tutorials.png

Objectives:

  • Set up Raspberry Pi for it to be used for the Semester

  • Set up VNC Server and Viewer in order for the Raspberry Pi to be controlled without a physical connection to a monitor

  • Set up a LimitOS account and register the Raspberry Pi to it in order for the Raspberry Pi to be controlled through an Internet of Things system

  • Use LimitOS to create an online control of an LED light as well as a button

Obstacles:

  • setting up LimitOS

  • Setting up the Rasbperry Pi; especially since I had zero experience with Raspberry Pi

  • Learning how Raspberry Pi works, as well as how Internet of Things systems, such as LimitOS, work

Lessons Learned:

  • I learned about what GPIO pins are, and how they are organized on a Raspberry Pi

  • I learned about using a schematic for the Raspberry Pi in order to properly wire components to the correct pins

  • I learned that the pins on a Raspberry Pi can have different capabilities, including administering power with the 5V pins as well as ground pins for negative wires

Low Fidelity Prototype
Screenshot 2021-08-08 at 10-12-38 A#3 Low Fidelity Prototype.png
IMG_2134(1).jpg

Objectives:

  • Create a rough and preliminary autonomous car

  • Must utilize LimitOS and Raspberry Pi into the design

Obstacles:

  • Testing Motors and learning how to power them through the Raspberry Pi

  • Organizing all of the components properly

  • Wiring the Motors to the L298N motor driver, and ultimately the motor driver to the Raspberry Pi

Lessons Learned:

  • I learned how to solder wires together​

  • DC motors cannot be directly powered by the Raspberry Pi and Limit OS through a breadboard circuit, since it does not deliver enough current to power the motors

  • Give yourself a lot of time to troubleshoot and learn how to construct and fix your devices

  • Complete a full shutdown of the Raspberry Pi server before disconnecting power from the Raspberry Pi (if you are using an online Server)

  • It helps to label the GPIO pins physically on your Raspberry Pi, as well as use a schematic

  • I learned how to download software on Raspberry Pi

  • I learned how to program basic Linux commands

  • I learned what an H-bridge is and how it works

Medium Fidelity Prototype
Screenshot 2021-08-08 at 10-50-08 A# 7 Prototype.png
IMG_2475.jpg

Objectives:

  • Refine Low Fidelity Prototype

  • Learn Python programming to extend software capabilities of the robot

  • Utilize 3D printing to produce components

  • Utilize CAD modeling software, such as Fusion 360, to design components for the robot car

Obstacles:

  • Running into Python Programming Errors

  • Running into issues with fitment for components on the 3D printed Housing unit

  • Running into issues with printing the case for the Raspberry Pi

Lessons Learned:

  • In Fusion 360, if you use "select Edge Priority" it will allow you to select edges on an object for adding rounds without selecting faces of the object. This is useful if you only want to round edges and do NOT want to round any faces.​​​​​​​​​​​​​​​

  • Using the opacity control command allows a body to be transparent enough to see through it and observe internal components, but also opaque enough so that it is still easy to see the profile of the body.

  • In Fusion 360, if you use "select Edge Priority" it will allow you to select edges on an object for adding rounds without selecting faces of the object. This is useful if you only want to round edges and do NOT want to round any faces.​​​​​​

  • Using the opacity control command allows a body to be transparent enough to see through it and observe internal components, but also opaque enough so that it is still easy to see the profile of the body.​​​​

  • The projection command allows you to create extrusions and other features around a particular design feature and design face, instead of just a planar surface. In this example, it is creating the pins that stick into the holes of the Raspberry Pi.​

  • When converting CAD Files into STL Files, if you hide an object from view and export the CAD model as an STL file, the hidden object does NOT show up in the STL File.​​​​​​​

  • In Raspberry Pi OS, you can create screenshots with the "Scrot" command on the Terminal Window. In the Terminal Window, Type "Scrot -d 3" in order for Raspberry Pi OS to take a screenshot of its screen with a three second delay.

Introduction to Python
Introduction to Python Assignment Blurb.png

Objectives:

  • Control an LED light with the Raspberry Pi by using Python programming

  • Create a button-type system with the Raspberry Pi by using Python Programming

  • Manipulate an LED light by using a button through Python Programming

  • Control a DC motor by using a button through Python Programming

  • Control a servo motor by using a button through Python Programming

  • Control a stepper motor by using a button through Python Programming

Obstacles:

  • Delivering power to the motor driver

  • Issues with VNC server and viewer

  • Programming a button with python

  • Wiring and setting up the Stepper Motor and Servo Motor; both are different and had different wiring setup, different ways of determining position and different ways of programming through Python

Lessons Learned:

  • Each motor has different wire connections. Some have two wires, while some have 3. For example, a DC motor has one positive and one negative wire, while a servo motor has a voltage input (+), a control signal and a ground (-).

  • Each motor requires a different wiring setup, requires different GPIO setup on the Raspberry Pi, and requires different power inputs. For example, some motors such as the SG90 servo motor, can run on only the Raspberry Pi voltage, while the DC motors needed the 18650 batteries attached through a motor driver.

  • The vast majority of time spent on this project has been spent troubleshooting errors and challenges along the way. Most likely, the motors and programming are not going to work the first time, even if you attempt to replicate a tutorial

  • Python allows you to extend your capabilities of how you can control electronic devices such as motors. Using a program like LimitOS is very useful because of its ease of use, but there are limited ways that you can use it to manipulate components. For example, you cannot control a motor's angular velocity with LimitOS.

  • A servo motor is essentially a DC motor with an added potentiometer and a gear ratio with a mechanical stop (at least with hobby servos). A servo motor could be converted to a DC motor. This is why the motor kept moving when power, but no software commands, were distributed to the motor.

Computer Aided Design
Compuer Aided Design Blurb.png

Objectives:

  • Design an assembly of bodies by using Fusion 360 CAD Software

  • 3D print assemblies by using the Makerbot 3D printers

  • Continue to make modifications to the Medium Fidelity Prototype

Obstacles:

  • The 3D printed components did not properly fit all of the components that interacted with it- Usually the openings for parts to seat into were too small

  • There were further problems with LimitOS controlling the robot car

  • The reference files that were used in the CAD model designs (in order to design proper fitment of the components) would usually not directly import into Fusion 360, and would only import as a solid body; I had to convert these files into STEP Files

  • The CAD reference files were not the exact same dimensions as the components used in real life

Lessons Learned:

  • GrabCad's workbench program is able to download files from GrabCad as multiple different types of files- including STL files

  • You can turn continuously extruded sketches into components that can be moved, in Fusion 360

  • Create a proper naming convention for components in your design. Without a way to identify what you're trying to explain, describing and documenting your progress can be very confusing and complicated.

  • Sizing components and coming up with an arrangement of parts that will work takes the vast majority of design time

  • It's difficult to make a perfect mechanical design in one 3D print iteration- usually you will run into problems that require multiple prints

Phase 3
Screenshot 2021-08-08 at 11-12-54 A#8 Phase 3 Show Case.png

Objectives:

  • Further refine the Medium Fidelity Prototype

  • Personal Objective: Further enhance my skills in sensor electronics with Raspberry Pi; Further enhance my skills with Python Programming

  • Add additional sensors and programming them through Blynk

  • Design and 3D print further iterations of the Housing unit

IMG_2579.jpg

Obstacles:

  • Problems with uploading Arduino code (initially used Arduino to program Ultrasonic Sensor; later removed it and stopped using Arduino)

  • Fitment problems with further iterations of the housing unit

  • Problems with Camera Module and its connection to the Raspberry Pi

Lessons Learned:

  • I learned that it is possible to connect an Arduino to an Internet of Things (IOT) application such as Blynk, it is much more difficult to set up than with a Raspberry Pi. The Arduino is also less capable for IOT applications than a Raspberry Pi.

  • When troubleshooting something, make sure that the power is turned on to all components first. I troubleshooted the Blynk program for moving the robot several times, and spent lots of time on it. Had I realized that the motor drivers needed to be powered on, I would have successfully troubleshooted the project without spending the additional hours of looking at things that were not problematic.

  • 3D printed components (that are not made from industrial materials)are not the most structurally sound parts. I had several parts break from my 3D prints.

  • Pulse Width Modulation control can be used on all GPIO pins for the Raspberry Pi 3B+

  • The Camera Module on a Raspberry Pi can work perfectly fine, but the camera's capabilities can still be compromised if something is wrong with the connecting cable or Raspberry Pi

Communication and Documentation
  • Personal Website was a portfolio of projects throughout this class

  • Communicated with peer students through verbal explanations during video conferencing classes

  • Created single-page slides to summarize the Low Fidelity Prototype and Phase 3 projects

  • Created images through screenshots and phone pictures

  • Created images through recording via phone

  • facebook
  • twitter
  • linkedin

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

bottom of page