This year, I was chosen to be apart of Drew Charter's InvenTeam. Our school has been chosen as finalists for the inventeam $10,000 grant and if we get the grant we will be continue on with creating an invention helpful to the community.
We began the brainstorming process in the spring of last school year and we're continuing into this school year. Next we began research and decided on a final idea. We also reviewed the constraints and requirements of our invention. Our application for our Invention for our Inventeam is due in September. Everyone member of the team is apart of the team needs to contribute, brainstorm, and research.
We are back to school! In an e-learning environment of course. We began to understand the application process by reading the inventeam app.
This week, we have been narrowing down our ideas concerning the Inven-team MIT invention. We are also beginning our research on each idea that could be eligible. We started off with the idea that had not been set in stone. Our new ideas are coming together and improving. My only concern is that some of the invention ideas we have will not be useful after the year we take inventing them, because hopefully covid .
WEEK 2 of E-LEARNING
We began to brainstorm ideas for the InvenTeam. Our original idea was a new and improved bike lock but we've realized there is a lot of technology like it and it is not so unique. Everyone has began to contribute with more and more ideas.
I began to brainstorm for ideas relating to systemic racism, which is one of the categories that we brainstormed under. We used different categories to make sure we had a plethora of ideas to choose from and vote on.
This is one of my main invention ideas pertaining to systemic racism. It is an app that would alert first responders and other caregivers in hospitals if the patient is denied care. The problem of POC being ignored in healthcare is quite prevalent. Considering it is an app and doesn't have a physical aspect, it was ruled out.
These are the students ideas that were not eliminated and everyone got a chance to vote on which we thought was most helpful. We had to use voting icons that we made and vote on at least 3 ideas.
These are the final four ideas that the team voted for
This week we all collaboratively researched in groups. Each group was responsible for answering questions regarding the invention statement of a potential invention.
During this week, we finished our final research for the problem we'd be solving with the invention. We also finished the inventeam application during this week.
We are now beginning a new unit and project. We all received materials from school to carry out a project at home. We will need to wire and code an 8x8 matrix LED board to do whatever we see fit.
This is explains the full functions of the matrix and the inputs and outputs.
The spec sheet explains the way the Ultrasonic is supposed to function and also displays its function.
An ultrasonic sensor is an electronic device that measures the distance of a target object by emitting ultrasonic sound waves
I am using my ID to attempt to see the distance fluctuate *Issue with my sensor, It may not work correctly*
We have officially recieved our grant from Lemelson-MIT to continue our inventing process. We recieved the great news on Oct. 19, 2020.
We were surprised during class with a mug and yard sign that announces that we are now young inventors that have received the Lemelson-MIT grant
During this meeting we received feedback from MIT and information on what further steps we need to take.
key takeaways
We need to figure out who will take on leadership roles and divide up our work for the invention process
We need to find out the goals that we have for this project
We need to obtain our materials and distribute them to the team
We've taken the useful feedback from Lemelson--MIT and began diagramming to figure out the tools we'll need to get started on our invention. The block diagram is meant to break all the components and their purpose.
During week 15 we took another suggestion from Lemelson-MIT and chose roles to begin researching from different sections. I chose to complete research on the A.I./Machine Learning Technical team. I was in a group with three other people, Alex, Drew, and Sayj.
Tasks
Figure out how we will upload our information to the cloud
Figure out how a social media bot will be created
Figure out how to create sensors
Questions We Answered/researched
What classes/courses might we be able to take to teach ourselves these new skills?
How do we make a “social media bot?”
What tools/apps/programs do we need to familiarize ourselves with/begin to learn to make sure that we can create this functionality within our device.
What smart technology will we be using?
Every student recorded a flipgrid to pitch the role they would like on the Inventeam. We had to pitch the initial role that we would like and our second choice. I chose to continue my role as a member of the A.I. and Machine Learning team and my second choice was to be apart of the Hardware team.
During week 16 we finalized the roles for the Inventeam. I recieved the role that I chose which is being a member of the A.I. and Machine Learning Technical Team.
My team has concluded that we will take the Python Youtube courses to stay within the budget. We will be familiarizing ourselves with the code and software.
This week our groups are continuing on with our part in the inventeam. After our first course (Python Course) We've started our tensorflow course to familiarize ourselves with image classification.
Getting TensorFlow Downloaded - It took hours and hours to attempt to download Tensorflow through Pycharm but Wee couldn't figure out the error soon enough and were able to get a temporary version with google Collaboratory
After getting tensorflow downloaded, I must run code and test out data. I uploaded the Fashion MNIST dataset.
After first, importing the data, I added the I stored the class names because they are not included within the data set
I began entering the code to display the format of the dataset
To verify the data is correct I added code that displays 25 of the items and their correct names
There are 10,000 images in the test set. Each image is 28 x 28 pixels
Compiling the model - Before the training of the model begins some settings must be added Loss function, Optimizer, and Metrics
Preprocessing the data
As the model trains, the loss and accuracy metrics are shown. This model reaches an accuracy of about 91% on the training data.
After evaluating the accuracy, I am now able to make predictions
Display of verified prediction
Plot of images and their predictions
getting the course downloaded and functioning (Dec 14)
Completing the tensorflow Course (Dec 14)
This week the A.I. Machine Learning will complete our goals that we've set to have complete by Dec. 14th
As the semester comes to an end we have presented what we've achieved with our teams within our final class periods.
During break I completed the Image classification through tensorflow. I wasn't able to download the official tensorflow through python so I used google collab to complete the image classification and upload it onto the Sd card for the vision kit camera. I also assembled the vision kit camera which took about an hour.
# TensorFlow and tf.keras
import tensorflow as tf
# Helper libraries
import numpy as np
import matplotlib.pyplot as plt
print(tf.__version__)
fashion_mnist = tf.keras.datasets.fashion_mnist
(train_images, train_labels), (test_images, test_labels) = fashion_mnist.load_data()
class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',
'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']
train_images.shape
len(train_labels)
train_labels
test_images.shape
len(test_labels)
plt.figure()
plt.imshow(train_images[0])
plt.colorbar()
plt.grid(False)
plt.show()
train_images = train_images / 255.0
test_images = test_images / 255.0
plt.figure(figsize=(10,10))
for i in range(25):
plt.subplot(5,5,i+1)
plt.xticks([])
plt.yticks([])
plt.grid(False)
plt.imshow(train_images[i], cmap=plt.cm.binary)
plt.xlabel(class_names[train_labels[i]])
plt.show()
model = tf.keras.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10)
])
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=10)
test_loss, test_acc = model.evaluate(test_images, test_labels, verbose=2)
print('\nTest accuracy:', test_acc)
probability_model = tf.keras.Sequential([model,
tf.keras.layers.Softmax()])
predictions = probability_model.predict(test_images)
predictions[0]
np.argmax(predictions[0])
test_labels[0]
def plot_image(i, predictions_array, true_label, img):
true_label, img = true_label[i], img[i]
plt.grid(False)
plt.xticks([])
plt.yticks([])
plt.imshow(img, cmap=plt.cm.binary)
predicted_label = np.argmax(predictions_array)
if predicted_label == true_label:
color = 'blue'
else:
color = 'red'
plt.xlabel("{} {:2.0f}% ({})".format(class_names[predicted_label],
100*np.max(predictions_array),
class_names[true_label]),
color=color)
def plot_value_array(i, predictions_array, true_label):
true_label = true_label[i]
plt.grid(False)
plt.xticks(range(10))
plt.yticks([])
thisplot = plt.bar(range(10), predictions_array, color="#777777")
plt.ylim([0, 1])
predicted_label = np.argmax(predictions_array)
thisplot[predicted_label].set_color('red')
thisplot[true_label].set_color('blue')
i = 0
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1,2,2)
plot_value_array(i, predictions[i], test_labels)
plt.show()
i = 12
plt.figure(figsize=(6,3))
plt.subplot(1,2,1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(1,2,2)
plot_value_array(i, predictions[i], test_labels)
plt.show()
# Plot the first X test images, their predicted labels, and the true labels.
# Color correct predictions in blue and incorrect predictions in red.
num_rows = 5
num_cols = 3
num_images = num_rows*num_cols
plt.figure(figsize=(2*2*num_cols, 2*num_rows))
for i in range(num_images):
plt.subplot(num_rows, 2*num_cols, 2*i+1)
plot_image(i, predictions[i], test_labels, test_images)
plt.subplot(num_rows, 2*num_cols, 2*i+2)
plot_value_array(i, predictions[i], test_labels)
plt.tight_layout()
plt.show()
# Grab an image from the test dataset.
img = test_images[1]
print(img.shape)
# Add the image to a batch where it's the only member.
img = (np.expand_dims(img,0))
print(img.shape)
predictions_single = probability_model.predict(img)
print(predictions_single)
np.argmax(predictions_single[0])
Currently in my progression, the vision kit is assembled and semi functioning. The goal for this week was to get started on the Vision Kit Camera Demos. I ran into problems considering my lack of a monitor needed to begin the demos.
At first I tried using a USB monitor but found out that wouldn't be sufficient and found an old monitor at home to get the demos up and running.
Now that I have the monitor, I've began the demos. I ran into some errors, the first was due to me typing the incorrect code and the second was a display error. I am currently not able to view what the camera views through my monitor.
We've come a long way since the beginning of our Inventeam, from brainstorming, applying for the grant, receiving the grant, to finally completing our final presentation. The final presentation explains the overall purpose of our invention. The slides also explain our invention's functionality. This project is definitely different from anything I've done in engineering in the past. I've gained so much new knowledge from this project that I believe will help me greatly in the future. Not only did I learn software and hardware aspects, but I also learned to collaborate and communicate with others better. To come across these new skills, there were many obstacles to overcome like running into errors and getting immediately frustrated. I have major respect for those who pursue innovation regularly because of how challenging it is. Due to the major frustration, I don't think I'd be able to handle a career that would require me to do what I did for this project but It was an amazing experience and definitely worth it.