During the spring, we each proposed inventions and voted on our three favorite ideas. These are the three favorites. We ended up persuing a bike rack invention to target bike theft and over the summer submitted our application. We found out during the summer that we made it as semi finalists.
MIT loved our idea but found a patent similar so they proposed that we either tweak it or come up with something completely different. This is one of the websites my class used to brainstorm, coggle. We used 6 different coggles each stemming from a different topic: systematic racism, covid 19, local problems, theft, climate change, and unknown ideas. This is a picture of the sytematic racism coggle. We each continued to branch off of eachothers idea to further the brainstorming process.
After brainstorming, the class came together on a google slides with three ideas each and everyone did an extensive search on relevance, importance and existing technologies to futher narrow the choices. Everyone had great ideas but many ideas were existing, very similar to something existing or did not fit the requirements of the grant application. These are my slides. The teal ones are a brief description of the idea and the yellow is research I did on the idea. If i quickly found a competing invention, I stopped rearch quickly which is why ammounts of information vary on each slide. The only idea I did not eliminate was the first one.
After everyone narrowed down their ideas so there were less options, the class got to each vote their top three ideas and we did an extensive patent search on all three.
This was a tough week for our class because every idea we had was eliminated, even after dedicating long hours to some! The application was due in a week and we were without an idea so we HAD to do something. We spend almost every free hour we had all day rotating in zoom to come up with a new fresh idea that we were all passionate about.
Because we started the year off in a virtual setting, all of the engineering classes recieved engineering kits to be able to do interractive learning from home, giving all of the students access. Because of the Lemelson MIT grant, my class has been in full focus on our application. We submitted our application this week so now we are transitioning into a mini project to work on while we await our results. These are the materials for the project we will be working on. We needed to familiarize ourself with the names and functions of every object to assure we there is no confusion later on. Since I am home with the materials rather than being in class with access to Ms. White, it is especially improtant to be 100% familiar with the materials provided.
Today we learned to create a curcuit picture. To create this we used Tinkercad. The purpose of this is to literally be able to simulate the arduino we will be creating in real life. Tinkercad not only allows us to create this picture but also allows people to code the arduino to represent the code it would perform in real life.
Today we also crated a circuit diagram. This is not a simulation but more so a representation of how the circuit will be mapped. It maps out every single wiring and is more clear than a circuit picture because it is 2d so you can clearly see which wire is going where with zero confusion.
This is a picture of the actual circuit which is represented by the circuit picture and cicuit diagram above. Both, circuit diagrams and circuit pictures can be benefitial to map and plan out a functioning circuit without actually getting hands on with the materials.
This website goes through the basics of simply wiring and coding an 8x8 led matrix step by step. While researching sources to help figure out the wiring there were challenges because I had to make sure the sources either had the materials I used or was compatible the materials I have. This source has a different board but is still copatible with the board I used. Also, the site has clear concise instructions along with pictures so I can easily follow along.
This website is a guide through using the led matrix paired with arduino. The website not only has a step by step explanation of the wiring but also supplies the reader with a code and a breakdown of every part of the code and its significance.
This website goes more into explanation with the coding aspect of the LED matrix. Specifically it provides scematic designs with different possibilities for connecting the pins, everything required to operate the matrix and what to do to make the matrix do specifcally what you want it to.
The first task we did with our matrixes was working collaboratively with three or four other students to work to make all of our lights work. We all came to class with three resources referring to the LED matrix and worked together to wire and code our LED matrix. This is my LED matrix after first wiring and coding it.
After making all of the lights in our matrix work, we were tasked with making our matrix display three different shapes. My matrix does all of the lights followed by my initials, AJG, and I added a heart because I liked the way it looked. I used a slightly different wiring, and a completely different code format for this task because my first code did not make the display as bright as I would have liked. Below is my code and to the side is the video.
#define ROW_1 2
#define ROW_2 3
#define ROW_3 4
#define ROW_4 5
#define ROW_5 6
#define ROW_6 7
#define ROW_7 8
#define ROW_8 9
#define COL_1 10
#define COL_2 11
#define COL_3 12
#define COL_4 13
#define COL_5 A0
#define COL_6 A1
#define COL_7 A2
#define COL_8 A3
const byte rows[] = {
ROW_1, ROW_2, ROW_3, ROW_4, ROW_5, ROW_6, ROW_7, ROW_8
};
byte A[] = {B00011000,B00111100,B01100110,B01100110,B01111110,B01111110,B01100110,B01100110};
byte B[] = {B01111100,B01100110,B01100110,B01111100,B01111110,B01100110,B01100110,B01111100};
byte C[] = {B00111110,B01111110,B01100000,B01100000,B01100000,B01100000,B01111110,B00111110};
byte D[] = {B01111000,B01111100,B01100110,B01100110,B01100110,B01100110,B01111100,B01111000};
byte E[] = {B01111110,B01111110,B01100000,B01111110,B01111110,B01100000,B01111110,B01111110};
byte F[] = {B01111110,B01111110,B01100000,B01111100,B01111100,B01100000,B01100000,B01100000};
byte G[] = {B00111000,B01111100,B01100100,B01100000,B01101110,B01100100,B01111100,B00111000};
byte H[] = {B01100110,B01100110,B01100110,B01111110,B01111110,B01100110,B01100110,B01100110};
byte I[] = {B01111110,B01111110,B00011000,B00011000,B00011000,B00011000,B01111110,B01111110};
byte J[] = {B01111110,B01111110,B00011000,B00011000,B00011000,B00011000,B01111000,B01110000};
byte K[] = {B01100110,B01101100,B01111000,B01110000,B01110000,B01111000,B01101100,B01100110};
byte L[] = {B01100000,B01100000,B01100000,B01100000,B01100000,B01100000,B01111110,B01111110};
byte M[] = {B01000010,B01100110,B01111110,B01011010,B01000010,B01000010,B01000010,B01000010};
byte N[] = {B01000110,B01100110,B01100110,B01110110,B01111110,B01101110,B01100110,B01100110};
byte O[] = {B00111100,B01111110,B01100110,B01100110,B01100110,B01100110,B01111110,B00111100};
byte P[] = {B01111000,B01111100,B01100110,B01100110,B01111100,B01111000,B01100000,B01100000};
byte Q[] = {B00111100,B01000010,B01000010,B01000010,B01000010,B01001010,B00111100,B00000010};
byte R[] = {B01111100,B01100110,B01100110,B01101100,B01111000,B01111000,B01101100,B01100110};
byte S[] = {B00111100,B01111110,B01100000,B01111100,B00111110,B00000110,B01111110,B00111100};//{B00111000,B01111100,B01100000,B00110000,B00011000,B00001100,B00111100,B01111000};
byte T[] = {B01111110,B01111110,B00011000,B00011000,B00011000,B00011000,B00011000,B00011000};
byte U[] = {B01100110,B01100110,B01100110,B01100110,B01100110,B01100110,B01111110,B00111100};
byte V[] = {B01100110,B01100110,B01100110,B01100110,B01100110,B01100110,B00111100,B00011000};
byte W[] = {B01000010,B01000010,B01000010,B01000010,B01000010,B01011010,B01011010,B00100100};
byte X[] = {B01100110,B01100110,B01100110,B00111100,B00011000,B00111100,B01100110,B01100110};
byte Y[] = {B01100110,B01100110,B01100110,B01111110,B00111100,B00011000,B00011000,B00011000};
byte Z[] = {B01111110,B01111110,B00000110,B00001100,B00011000,B00110000,B01111110,B01111110};
byte Zero[] = {B00111100,B01111110,B01100110,B01100110,B01100110,B01100110,B01111110,B00111100};
byte One[] = {B00011000,B00111000,B01111000,B00011000,B00011000,B00011000,B01111110,B01111110};
byte Two[] = {B00111100,B01111110,B01000110,B00001100,B00011000,B00110000,B01111110,B01111110};
byte Three[] = {B01111100,B01111110,B00000110,B00111110,B00111110,B00000110,B01111110,B01111100};
byte Four[] = {B00001100,B00011100,B00111100,B01101100,B01111110,B01111110,B00001100,B00001100};
byte Five[] = {B01111110,B01111110,B01100000,B01111100,B00111110,B00000110,B01111110,B01111100};
byte Six[] = {B00001100,B00011000,B00110000,B01111100,B01111110,B01100110,B01100110,B00111100};
byte Seven[] = {B01111110,B01111110,B00000110,B00000110,B00001100,B00011000,B00110000,B01100000};
byte Eight[] = {B00111100,B01100110,B01100110,B00111100,B01111110,B01100110,B01100110,B00111100};
byte Nine[] = {B00111100,B01100110,B01100110,B01111110,B00111110,B00001100,B00011000,B00110000};
byte All[] = {B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111};
byte Circle[] = {B00111100,B01111110,B11111111,B11111111,B11111111,B11111111,B01111110,B00111100};
byte Heart[] = {B00000000,B01100110,B11111111,B11111111,B01111110,B00111100,B00011000,B00000000};
float timeCount = 0;
void setup() {
Serial.begin(9600);
for (byte i = 2; i <= 13; i++)
pinMode(i, OUTPUT);
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
}
void loop() {
delay(5);
timeCount += 1;
if(timeCount < 100) {
drawScreen(All);
} else if (timeCount < 130) {
} else if (timeCount < 200) {
drawScreen(A);
} else if (timeCount < 230) {
} else if (timeCount < 300) {
drawScreen(J);
} else if (timeCount < 330) {
} else if (timeCount < 400) {
drawScreen(G);
} else if (timeCount < 430) {
} else if (timeCount < 500) {
drawScreen(Heart);
} else if (timeCount < 530) {
} else {
timeCount = 0;
}
}
void drawScreen(byte buffer2[]){
for (byte i = 0; i < 8; i++) {
setColumns(buffer2[i]);
digitalWrite(rows[i], HIGH);
delay(2);
digitalWrite(rows[i], LOW);
}
}
void setColumns(byte b) {
digitalWrite(COL_1, (~b >> 0) & 0x01);
digitalWrite(COL_2, (~b >> 1) & 0x01);
digitalWrite(COL_3, (~b >> 2) & 0x01);
digitalWrite(COL_4, (~b >> 3) & 0x01);
digitalWrite(COL_5, (~b >> 4) & 0x01);
digitalWrite(COL_6, (~b >> 5) & 0x01);
digitalWrite(COL_7, (~b >> 6) & 0x01);
digitalWrite(COL_8, (~b >> 7) & 0x01);
}
This link is from ardunio and not only has a diagram showing how to easily wire the sensor but also provides a step by step tutorial on how to code, and trouble shoot the sensor.
This site provides more directions to wire and code the sensor. It explains every single aspect of the working sensor and also has a video for learned that need to see something rather than just reading
During Class we were working on our captain safety project. One day we were testing our ultrasonic sensors and Ms. White told us to take them outside, we were under the impression that the outside would have some type of effect on our sensors but it was really an excuse for Ms. White to get us outside where there were signs on our lawn telling us that we have been selected as a Lemelson-MIT InvenTeam!
The next class was a meeting with a person from the Lemelson-MIT program. He briefed with us about our invention and what would be expected of us over this school year. He gave us feedback from the judges basically, asking how we plan to pursue the invention and asking specific ways we plan to work remotely to accomplish the task.
After the exciement of finding our we were selected, it was time to get started. The first thing we did was break down our invention. In small groups, we created block diagrams to the components we though would be most essential in the project.
After looking at every team's block diagram, we decided that the diagram would be more complicated then the orignal format, this is the final block diagram describing every component of the project and using this we decided that there would be four technical teams within the beginning points of the invention. We decied on an artificial intellgence team, hardware team, user interface team, and data team.
After deciding, the four teams that will be needed we divided to do research on what each team's responsibilties would be. These were not our final team decisions, only our positions for the next couple class periods to further understand each teams components.
Above is the research my group did on the articfical intelligence team. We were given quesitons to answer by Ms. White and did research on the skills needed to further dive into for our project. After this, we presented each teams overview to the class and decided what team we wanted to be placed on.
The next step was to pitch our desired team role to the class. The entire class used flipgrid to explain why we believe we should have the role we wanted. I pitched to be the communication lead with a secondary role in arificial intelligence and in the event that I was not selected for communications lead I wanted to have a lead in aritficial intelligence because these were the two areas I was most intrigued by. My class voted me as the communications lead. My role is to communicate with outside outlets interested in our work, keep our team active on social media and the blog, and handle anything having to do with media and the press. I am also apart of the a.i. and m.l. team so far we have decided that we are going to take an online course to familiarize ourselves with machine learning in rasberry pi.
This is the finalized team leadership after our voting process. Now my team began deciding next steps. Here is our work:
We decided as a team that the course we take will be essential to our success on this project, because we are on a time crunch we did not have time to take the wrong course. So we did a lot of research on every course to decide which one was best for us.
Over the break, my team committed to taking a python course on youtbe. The course is interactive and we had to screesnshot at checkpoints to docuemnt our progress. This course gave us an introduction to python for beginners. Then, during class we demonstrated our understandin by picking aa concept that we could possibly use in our invention.
Our team facilitator ordered the entire AI technical team aiy google vision kits. While we were waiting for the kits to arrive we continued to work on tensorflor and python courses. Once my vision kit arrived I put my kit together and realized I needed an adapter to flash the sd card from my mac. So I ordered one. This is my working vision kit using the joy detection feature.
Once I recieved the adaptor, I needed a monitor, keyboard, and mouse; so I got one from my teacher. Next, I connected my vision kit to my monitor, and the monitor crashed everytime I connected. I continued to troubleshoot which did not work so I traded vision kits with my teacher so I could catch up with the rest of my team.
Once I switched kits with my teacher, I got my rasberry pi up and running and opened the camera so I can see what my camera sees. The applicaton identified objects shown in the camera.
Junior year has definitely been a unique experience and two major contributors to that were the fact that the entire year was online and the InvenTeam. These were two factors that made the year especially unique and frankly, difficult for me. The InvenTeam project is unlike any other project I have ever completed, not just in my high school career but my entire life. I had to increase my skills in time managment and navigate this new educational setting while also teaching myself new skills in different engineering concepts. It was tough learning these concepts without being able to sit in my teachers room during tutorial for assistance and recieve direct help but it was super rewarding when I would move past barriers. For example, I remember when I finally figured out how to upload a file to AWS after months of troubleshooting my device. It felt so rewarding when it finally worked. And now that the project is over and I see how far my entire team has come it feels like all of our hard work and long hours has paid off. The entire project gave me a deeper understanding of the invention process, obviously inventing is difficult but it is nice to know that it is something everyone can do especially with the technology and knowledge we have right at out fingertips. This project has even changed my career interest because although I am not particularly interested in a career within the engineering field, I realized that innovation and invention is present in every field and I will use my growth from this project to make a difference in my future career.