Engineering Concepts

Robot Project

Today we learned that we're starting the semester with a robot project!

Above are the requirements for the prototype.

This is the end goal for our project.

Above are the requirements for the final SumoBot.

IMG_3211.MOV

Moving Servo

Today we used a reference to wire and program our first servo to rotate back and forth.

Servo Wiring

Today we learned how to create a visual representation of our circuit using the TinkerCAD circuit tool.

IMG_3275.MOV

Two Servos Independent

Today we attached a second servo to our Arduinos and used TinkerCAD as reference, as well as wrote the code for the new servo.

Robot Research

This source showed me some ideas on how I can make my robot compact.

This source also showed it being compact, but with more relative sizes and parts I'll be using.

This source showed a different rolling-type robot design.

Battery Power Wiring

We wired our batteries on a TinkerCAD circuit so we knew how to do it with the real thing.

IMG_3386.MOV

Battery Power

We used our TinkerCAD circuit to make the real thing, so our servos now move without needing to be plugged into the laptop.

Function Code

Today we learned how to define and call functions. Here is our code:

#include <Servo.h>


Servo Left ;  // create servo object to control a servo

Servo Right ;  // create servo object to control a servo

// twelve servo objects can be created on most boards


int pos = 0;    // variable to store the servo position


void setup() {

  Left.attach(9);  // attaches the servo on pin 9 to the servo object

  Right.attach(11);  // attaches the servo on pin 9 to the servo object

}


void Forward(){

   Left.write(180);           

   Right.write(0);

}


void Backwards(){

  Left.write(0);             

  Right.write(180);

}


void Rightturn(){

  Left.write(180);

  Right.write(180);

}


void Leftturn(){

  Left.write(0);

  Right.write(0);

}


void Stop(){

  Left.write(90);

  Right.write(90);

}


void loop() {

Forward();

    delay(2000);


Backwards();

    delay(2000);                       // waits 15ms for the servo to reach the position


Rightturn();

    delay(2000);


Leftturn();

    delay(2000);


Stop();

    delay(2000);                       // waits 15ms for the servo to reach the position

}

IMG_0242.MOV

Robot Base Built

Today we built our bases for our robots, attaching everything to one platform and making a car.

IMG_0675.MOV

Forward Back Left Right

We programmed our robots to go forward, backwards, left and right.

IMG_0948.MOV

Mini Track

Today we programmed our robots to navigate through this race track.

IMG_0949.MOV

Two Hobby Motors Moving

We programmed and coded our two hobby motors to move.

Onshape Motor Wheels

We designed wooden wheels for our robots in Onshape.

Physical Motor Wheels

We used the Glowforge to cut out the wheels.

Learning Technical Sketching

2nd Robot Base Built

We built a robot base for our hobby motor robots, and this is mine with the electronics attached.

IMG_1418.MOV

Forward Backward Left Right

We programmed our hobby motor robots to move forwards, backwards, left and right.

IMG_1155.MOV

Ultrasonic Sensor

We programmed our robots to detect distance in front of an Ultrasonic sensor.

IMG_1213.MOV

Robot Misses Walls

We programmed our robots to detect surfaces in front of it, and turn around according to distance.

IMG_1666.mov

Bluetooth Connector

Today we coded and attached Bluetooth connectors to our servos, and set up our phones to control the built-in servo LED.

IMG_6145.MOV

Robot Bluetooth Controlled

We programmed our robots to move through a Bluetooth receiver and our phones.

IMG_2035.MOV

Sumo Battle

We battled other robots in a sumo battle to test our prototypes.

Servo Motor Ideas

I brainstormed things I could add, change, and improve on in my servo robot.

Design Decision

I decided that I was going to use hobby motors for my final SumoBot. The reason I'm choosing to focus on my hobby motors is because I have found that they are much quicker, and much more powerful than the servo motors. The hobby motor code also makes more sense to me as I have worked with it more than servo code.

IMG_12946740.MOV

Hobby Motor Battle 

Today we battled with our hobby motor robots to determine what changes we would like to make, and what we would like to keep adding to.

Final Robot Idea Development

My plan for my final robot is to create a robot designed to be similar to the "boatmobile" from SpongeBob Squarepants. It stays as a wedge-shape design, and there will be a functioning propeller on the back as well as small cosmetic attachments.

All Final Robot Sides

IMG_6582.MOV

Final Robot Video

My Final Video of my robot performing.

Final Robot Criteria

Kitty Condo or Dog Kennel Calendar

We are tasked with creating a kitty condo or dog house. We have six weeks to do this and a more detailed calendar is above.

The constraints for this project are listed above.

Shared Research Slides

Research

We researched for inspiration on the dog house design project.

Four Sketches

We brainstormed 4 sketches in 12 minutes of our dog house ideas.

Scaling Lesson

We drew a 3D Modern dog house, and scaled down the size with math.

Detailed Sketch

We drew a detailed propotionally-accurate sketch of our final doghouse with dimensions.

Onshape 1

We designed our doghouse parts in Onshape.

Prototype 1

We cut our Onshape designs with the glowforge, and glued them together.

Onshape 2

We assembled our onshape drawings into a 3D model, as well as added supports to make it more stable.

Prototype 2

We re-cut out the new polished shape sizes and supports, and assembled them with glue and cardboard once more.

IMG_6328.MOV

AdaFruit Feather Built-in LED

We programmed our circuits to blink the built in led.

External LED

We programmed an external LED board to our circuits.

Final Machine Learning Model

The goal of my machine learning model is to train and create code that can properly record data on pictures of my classmates, and then use that data to identify who is who. The data used to train my model is the pictures our class has been taking each day since this unit started. The model is presented with a random image that we took as data, analyzes it, and displays who is in the image. It's only able to do this due to how we have 200+ images of each classmate, so it has a lot of data to help train it to identify us. More data = more good results.

Data is organized and stored using data structures, in a computer's memory. They offer many methods for effectively storing and accessing data, and they include things like queues, stacks, linked lists, and arrays.

A Loop is code that allows a set of instructions to be repeated multiple times. They help automate repetitive tasks by executing a block of code repeatedly, sometimes until a certain condition is met. Types of loops include "for" loops, or "while" loops.

Functions are blocks of code that are most commonly used to shorten repetitive scripts. They are defined by putting your code under a specific name, and once called will run that code. Functions compress the code and make it easier to manage.

To a computer, an image is represented as a collection of pixels. Each pixel contains information about its color and position. The computer interprets this information and automatically assigns each color and location to it's specific pixel, adding up to show you the screen you're looking at.

 Machine Learning is a field of computer science that focuses on developing models that allow computers to learn/make predictions without being programmed for the specific task. It is most commonly known as AI, or artificial intelligence.

Building a model refers to the process of creating a system that can learn from data. 

Training a model is the process of providing input data to the model, and teaching the code to start discerning between the model's predictions and the actual desired outputs. The goal is to improve the model's performance and prediction accuracy.

This is in example of my machine learning model. The image to the left is one of the pictures we recorded as data, of my classmate Kenneth. The model accurately looked over the image, realized it was Kenneth, and printed text at the bottom displaying that. The image below is my model's prediction accuracy, which is 100%.