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.
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.
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
Battery Power Wiring
We wired our batteries on a TinkerCAD circuit so we knew how to do it with the real thing.
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
}
Robot Base Built
Today we built our bases for our robots, attaching everything to one platform and making a car.
Forward Back Left Right
We programmed our robots to go forward, backwards, left and right.
Mini Track
Today we programmed our robots to navigate through this race track.
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
Horizon Line
Vanishing Point
Fronts of shapes
Diagonals to the VP
Backs of shapes
Erase construction lines
Shade
2nd Robot Base Built
We built a robot base for our hobby motor robots, and this is mine with the electronics attached.
Forward Backward Left Right
We programmed our hobby motor robots to move forwards, backwards, left and right.
Ultrasonic Sensor
We programmed our robots to detect distance in front of an Ultrasonic sensor.
Robot Misses Walls
We programmed our robots to detect surfaces in front of it, and turn around according to distance.
Bluetooth Connector
Today we coded and attached Bluetooth connectors to our servos, and set up our phones to control the built-in servo LED.
Robot Bluetooth Controlled
We programmed our robots to move through a Bluetooth receiver and our phones.
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.
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
Final Robot Video
My Final Video of my robot performing.
Final Robot Criteria
To ensure my robot is a crowd pleaser, I have added a functioning propeller to the back of the robot as it is a unique design and pretty cool looking, not to mention the robot is based off of an extremely familiar children's show which people will enjoy.
My robot has WOW factor because of it's high speed, as well as it's agility and design. It's very fast and mobile, and the wedge is snug with the floor to ensure it is able to lift other robots.
I implemented black on the wheels, and white on the robots for complimentary colors.
I incorporated the elements of design by leaving the back blank pardon the propeller, as it shows emphasis.
All of my robot is built in CAD and digitally fabricated with the GlowForge.
My robot has one additional arduino-controlled element, which is the propeller on the back.
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.
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.
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%.