For the first week of class we did orientation on the first day and then worked on Inventeam on day two. Orientation was basically just going over the class norms as well as how classes will go in the future. On day two we went through the Inventeam application process. This just gave us a better understanding on what we had to have completed in order to have a strong application and project. My group had the section that talked about aspects of the application. You had to make sure that you had proper communication and that you constantly were recording what was going on so that you could have strong details throughout the application.
For week two, we started doing mind-maps. We used the website called Coggle. We made six mind-maps, which included: Covid19, Bike Theft, Unknown Ideas, Local Problems, Climate Change, and Systematic Racism. We started off by brainstorming problems which we would then think about solutions. We then narrowed down what we had and then branched out farther on those instead of jumping around to different ones. I branched out of the Covid19 coggle. I decided to focus on contactless contact, which is like being able to get your hair and nails done but still keeping a safe distance away from everyone including the hairdresser and nail technician.
This week we narrowed down our branches of ideas. We took our top three ideas and then explained the problem, the beneficiary, what it will be, and how it will do it. Each student had to complete three of the slides. After we completed all of the slides we did an elimination. We did further research and decided if their was a patent that was too similar or if research sees it as not important enough. After we narrowed down the ideas each remaining slide was summarized into one sentence and then we voted for the top four-five ideas.
This week we worked on the specific background research for different idea choices. This helped us narrow down which ones don't have patents because we are doing further research. This included splitting it up between the entire class so that we could complete it in a short amount of time. We also split up the different sections of the application. My group worked on the Invention Statement. We just found the different areas in which information needed to be included and split it up between the people in the group. We were able to also go back and help those that needed help completing their sections. This invention didn't end up being chosen because we found a similar patent.
For week five we divided the the background research document among the entire class because this was our final invention choice. Completing the background research gave us a chance to go into more detail on how the invention will work as well as give us an idea of what we would do in order to make it work correctly. We also completed our sections of the team video. We had to split it up because of our current situation. Through the weekend we worked on finalizing the Invention Statement as well as the application as a whole. The video was edited together and we were able to submit all of the application pieces by Tuesday afternoon.
This is our video that introduces who everyone is as well as introduces our invention. Each student has one-two sentences that either give reasons on why our invention is necessary or what our invention will do.
The press release took place on Tuesday October 27, 2020. It was announced that 13 teams were chosen this year throughout the entire nation. This also make Yahoo!News and our invention was referenced in the article.
For announcement day our parents set out signs in the front yard. During class we were told to go outside for our sensor and were surprised with the sign. One of the parents also designed tumbler cups for every student.
During this meeting we were told what steps are next. We were encouraged to take a larger look at what needs to be done so that we will be able to neatly organize the team members. In order to take this bigger view we created a block diagram that gave us a better understanding of what needs to be done now.
We created this parts list using the description within our invention statement. For each part that we felt was necessary we had to describe the function that it would have. Based on the invention statement we believed that these were the necessary parts that would complete the invention.
This was the block diagram that we created based on our parts lists. We put in all of the inputs that we selected and then said what output functions that the arduino will be able to complete based on the selected inputs.
This is the final block diagram that integrates pieces from each of the separate diagrams. This goes into depth about the specific inputs as well as outputs that aren't directly connected to the computing device, such as the user interface and connection to social media. This diagram also shows direct connections to the computing device, such as the phone and storage.
These are the different technical teams that will be necessary during this process. On this slide there are descriptions of each one and we were told to choose which one we would want to work under. I chose the hardware team because I have always been more comfortable with working with the materials of a project.
For our research, we were given sample questions that we had to answer in order to prepare for building. Most of these sample questions broke off into more detailed ones. Our questions focused on what hardware we need to look into getting in order for our invention as well as how each one can be incorporated together. My group also focused on both physical hardware that will be seen by the user and hardware that will be necessary on the inside of the machine. Our base questions spread out into multiple different questions so that we could have a better understanding of each sections. We started out with five slides of questions and ended with ten.
In order to select our leaders we took a look at the handbook. The handbook gave a brief description of each of the different teams. The teams included: Administrative, Communications, Financial, Sustainability, Research, Technical - Hardware, Technical - Data, Technical- User Interface, Technical- AI/ML. After reviewing the information for each team we had to create a FlipGrid that explains which team we want to be on and if we want a leadership position. In the FlipGrid we also had to explain why would be the best choice for the position based on prior experience.
Prior to the voting process, each student submitted a flipgrid where they had to explain what leadership role they wanted and why they were fit for that position. Once all of the flipgrids were submitted we voted for who we thought would be the best for each role. Those not picked for a leadership role became team members. All of the rows marked (ind) had to have two roles, a main role and their secondary role. This was because they wouldn't always have something to work on in their main roles.
This was our goal slide. This week we focused mainly on getting our material list completed so that we could order them before the week was over. We split up what was needed so that we could complete the list as soon as possible. We also worked on researching building techniques so that once we get our materials we have a base understanding on what to do.
This was my own personal goals for the week. I worked on making sure that we had all of the materials for the accelerometer as well as the proper microphone and speakers. After I found all of these materials I started doing research on how to set up and install them.
For the research I focused on the audio and visuals. This included the microphone, speaker, and camera. For the speakers you have to have a speaker bonnet, and the one that we found needed to be assembled and their was a specific way to wire it to the Raspberry Pi. Luckily, while doing research I found instructions from the maker of the speaker bonnet that gave step by step instructions on how to assemble and wire the bonnet. (https://learn.adafruit.com/adafruit-speaker-bonnet-for-raspberry-pi/assembly ) I also found a video of someone assembling the bonnet because at some points it was a tad bit confusing. On the raspberry pi website, I was able to find an article that explained how to play audio using the device. This focused on the coding aspect of building. The site showed how to set up the code as well as steps to take for troubleshooting. (https://www.raspberrypi.org/documentation/usage/audio/)
At the end of the week, my team was able to complete the materials list and submit it to the finance team. All of the materials were ordered on Wednesday night. We also have some base research that we can add onto while waiting for the materials.
Our planned steps are to start working with our materials. We should receive our materials later in the week. Once all of the materials are gathered they will be organized and distributed to all of the team members. We want to familiarize ourselves with the materials and the software. We split up responsibility throughout the group members so that each person can master a section and then be able to help the others. Chanel will be focusing on learning python, but we want all of the members to try and take the python courses so that everyone has a starting base for the code.
Over the break, the hardware technical team worked on an intro to python course. This course gave us the basic steps that we would need to put together in order to create a complex code. We also received all of the materials that we had ordered, which were then distributed over the break.
We created a list of things that need to be completed. The entire team needs to have their Raspberry Pi working, sadly we were set back because we bought some wiring that was for a different Raspberry Pi board so we had to reorder the correct piece. Now that the correct piece has arrived, we are now able to start working with the board and should reach all of these goals by the deadline. We decided to split up the roles so that we would be able to get everything completed in the given amount of time. My main focus is to collect video and audio data and once that is completed to make sure that that data can be uploaded to a phone via Bluetooth.
The entire hardware team needed to get their previous modules, from our December goals, to connect with a Bluetooth device. I needed to get the Raspberry Pi to transfer video data to a device via Bluetooth as well as have it collect audio data. I was unable to complete these goals by December 6th because there is a common error that I am experiencing when attempting to connect a phone to the Bluetooth of the Raspberry Pi. I am also working on collecting the audio data. I have the microphone connected to the Raspberry Pi, but I am still attempting to get the code working.
This is a video of the audio meter within the Raspberry Pi. We used a USB microphone which is a necessity when using a Raspberry Pi Zero because they do not have the pins needed to connect a microphone module. This video shows that the Raspberry Pi is detected the microphone as an audio device.
This is a possible code that can be used in order to record audio data using a USB microphone. The issue that I encountered with the code is that it is not compatible with the newest version of Python. One the left side of the image I have the terminal open in order to attempt to down-grade my version of Python in order to get the code to work.
Here I attempted to connect my phone to the Raspberry Pi using Bluetooth. The issue that I encountered was that once the device was paired, it was unable to connect because there are "no usable services" which basically means that the Raspberry Pi refused to connect because it had no reason.
During weeks two and three, I continued to work towards being able to record audio using the Raspberry Pi. The main issue that I am coming across is that Python is not recognizing the libraries that I have installed. In my prior code, shown above, I had the issue of the library not being compatible with the newest version of Python. I have since found a new code with compatible libraries. I installed the necessary libraries, but I am continuously getting the error message saying that the necessary modules can not be found.
As the hardware team continues to face issues with collecting and transferring data, we decided to reach out to a specialist. Our teacher, Ms. White, knew someone that has Python experience that can hopefully help with troubleshooting. Mr. Wells, the specialist, has been attempting to talk us through the process through email. In the following week, through February 1st through February 5th, Mr. Wells will be attending our class and helping us verbally. He has obtained all of the materials that we are working with so that he is able to troubleshoot our issues.
The presentation to the left is my ongoing documentation slides. The goal for making these slides was to keep up with what sources we have been using and what steps we took in order to resolve issues. This came in handy when multiple people experienced the same error at different times. If one person already solved the error, we wouldn't waste any time trying to research the issue again. It also came in handy when we needed help from someone else and they needed to know how we got to where we are. This was a great resource since we weren't able to work face to face.
We started on this project at the end of our sophomore year by brainstorming what issues are happening throughout the country and what we would make in order to fix those issues. As we moved into our junior year and continued our brainstorming, I was able to take a different look at what was going on in the world. Being the inventor allowed me to see issues differently because I looked for solutions instead of just ignoring the problems. Our team had a couple of big issues this year, but we were definitely able to work through them. At the very beginning, we found a similar patent to our original idea so we started the school year with zero progress. We were able to come up with our current invention and push forward efficiently, but due to separation from the pandemic we had multiple hardware issues that were hard to fix when apart. Throughout the year we have had many accomplishments. I was able to record audio using the Raspberry Pi after weeks of error messages, but I was finally able to find a solution because I refused to give up. We continuously met outside of regular class time and made great progress, such as a working data base, working hardware modules, and a clean and detailed presentation. Completing this project has changed how I view the invention process. I know that not everything will go as planned the first time, but that isn't a sign to give up. It is important to keep pushing forward because progress can be made. Also, it is okay to make changes throughout the invention process, especially when there are time constraints. This project added to my interests in engineering. For years I have wanted to go into an engineering career, I just wasn't sure which specific field to pick. This project surely fueled my love for engineering. I am ecstatic that I had this opportunity and extremely grateful.
These are the materials that we were ale to review today. Our goal was to become acquainted with all of our materials and be sure that everyone had everything that they needed. In the picture, I was able to label all of my materials, not only did this inform me of what I have access to but it also helped me quickly realize what I did and didn't have. Luckily, I have all of the necessary materials we need to complete this project.
We used the application TinkerCad in order to make this circuit picture. The servo in the picture is connected to the ground pin, the 5V pin, and pin 13. The purpose of a circuit picture is to show the electrical connections as they would look when actually creating it. It is a symbolic representation.
We created our diagram in the program Circuit Diagram. This shows a motor connected to an Arduino Nano. The purpose of a circuit diagram is to show the electrical connections for a specific build.
This site explains which areas of the LED Matrix have to be connected to the Arduino. When you scroll below the picture on the website it explains which pins on the LED Matrix connect to which pins on the Arduino.
This site explains how the 8x8 LED Matrix is configured. This includes which pins are negative and which pins are positive. This also explains how to fix pin configuration issues.
This gives instructions on how to properly connect the LED Matrix to an Arduino or Arduino Nano. This also shows how to create a working code. It also gives instructions on how to create different shapes or letters on the LED Matrix.
This is the circuit diagram that I made on circuit-diagram.org. My diagram includes diodes that represents the LED Matrix. I then connected the same points on the Matrix to the points on the Arduino Nano. I connected it in the same way that I connected it in person. I also made each wire a different color (alternating between the color options) so that it was easy to see which point was connected where since there were areas where they overlapped.
I created this circuit picture in TinkerCAD. I used the arduino nano template that we used earlier when we did the circuit workshop. I had to take a similar route to when I was making my circuit diagram, which was me having to create the LED Matrix using diodes. I connected the rows of the matrix using green wire and the columns of the matrix using the black wire. I made the connections to the arduino nano based on my code.
In my code, I made it possible for my LED Matrix to fully light up, make a heart, make a circle, and make the letter "A". I put a time count within my code so that the matrix knows to change after a certain amount of time. The pattern also repeats, because after a certain amount of time the arduino is told to reset the time to 0 and start from the beginning.
#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 < 200) {
drawScreen(All);
} else if (timeCount < 230) {
} else if (timeCount < 400) {
drawScreen(Heart);
} else if (timeCount < 430) {
} else if (timeCount < 500) {
drawScreen(Circle);
} 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 site gives the technical specifications of the wiring. It explains how the sensor works using original waves as well as reflective waves. This site also states that the sensor uses SONAR and will not be affected by sunlight or black material. The only material that may be hard to detect is any type of soft material because it doesn't produce string acoustic.
This site gives an in-depth explanation on how to wire as well as code the ultrasonic sensor. This includes a step by step description of the code. This ensures that instead of just copying the code we actually know why we need each section of the code. This source is especially helpful because it has pictures for every step as well as a video. This will help us incorporate the code within a different code because we will understand the code better.
This sensor works similar to how a bat detects how far something is from it. This means that the sensor detects distance based on sound. In Arduino, you are able to pull up a mini screen that tells you the distance that is being recorded by the code. This window shows you how far an object is from the sensor in both inches and centimeters. I used a small brush and held it away from the sensor between 2 and 5 inches.