Sarah mainly worked with the Joystick shield this week. First, she learned how to write to and use the serial monitor which was very useful when debugging her code. Then, she started to learn how to code the buttons. Sarah started with one LED and worked her way up to adding four different colors to correspond to each button. And eventually, she was able to add four more white LEDs to correspond to them as well.
Next, she switched gears and focused on the joystick. She did the same thing with the buttons as she did with the joystick and recorded the values to the serial monitor first. As a minilesson, Sarah learned about the RGB LED and how to code different colors on that. Once she had a good understanding of how that worked, she was able to connect the joystick to the RBG LED and control it. Depending on the x and y coordinates of the joystick, the LED would change colors. Lastly, Sarah hooked up the four colored LEDs again and used her code for the buttons to work both the buttons and the joystick simultaneously.
This week Sarah and Emma S. learned Raspberry Pi. First, they downloaded a Python editor, Mu, to the Raspberry Pi. Then, they began to teach themselves Python, which was very similar to Java and easy to use. Sarah and Emma then coded a simple rock, paper, scissors game using Python in which the user could play against the computer. After using Python, Emma and Sarah then used Linux to run and modify some of the files.
Then they used Mathematica and learned how to code in Wolfram. They decided to build off of the concepts they used in the Python rock,paper, scissor game. They had some trouble with this at first however, after using the debugging software in Mathematica, they were able to solve their issues. They were able to create a user interface, keep track of score, and import images into their game.
For this learning module, Sarah decided to take some time to learn about the Amazon Alexa. Her plan was to be able to create some basic skills. Once she became comfortable with creating basic skills, her goal was to move on to creating more advanced skills.
She used a guide from Codeacademy and the Amazon Developer console to build her first skill called “Cake Time.” It allows Alexa to remember the user’s birthday and tell them how many days it is until their next birthday.
Sarah learned a lot about different types of hardware add ons for the Arduino. She first learned how to code a servo, as well as how to connect it to the Arduino. She also incorporated other things she knew how to do, like using a button, to use it to control the servo. She had to figure out what kind of motor she had, which was a DC motor, and how to connect it to the shield. Sarah also learned how to use the ultrasonic sensor to control other aspects of the Arduino.
She created a device that used the Arduino, a servo, and an ultrasonic sensor that would be able to open a door knob for people who have difficulty turning the doorknobs.
Learning Module #5 - XBOX Kinect
These are some images on what the Kinect Studio interface looks like and how the camera feed appears
For this Learning Module, Sarah attempted to create a Virtual Rock, Paper, Scissors game in which the user would be able to play against a computer. She would use the Kinect to recognize the user's hand gestures, and then create a program to play against the user. Using Kinect Studio and its Gesture Builder, she was able to have her Kinect recognize 3 different gestures for RPS, each with over 75% confidence. She learned how to tag recordings from the Kinect to recognize when certain gestures were being done. She also learned then how to use this .gbd file to live test when a user is showing rock, paper, or scissors. She was also able to test this with multiple family members to see if it worked with recognizing when they did the commands as well.
This image shows Sarah testing out a "block" gesture
This video shows Sarah live testing her "block" gesture
The graph on the right shows the Kinect's confidence that the gesture is being done
This video shows Sarah live testing her rock, paper, and scissor commands
Learning Module #6 - Twitter Bot Emergency Notification System
For this project, Sarah wanted to work with the Raspberry Pi, Twitter and Gmail. Her goal was to create an alarm system that sends an email to the user when someone has pressed the emergency button, and then create a Tweet that someone has walked past the trigger. She wanted to learn how to make a program using Python to send an email to a gmail account throughout the day. Sarah also wanted to incorporate a Twitter bot that is controlled by Gmail. So, if there is an email received with a certain subject, then a tweet will be sent out through the twitter bot. Sarah then wanted to build the alarm using the Arduino, and make sure the Raspberry Pi is able to connect with the Arduino and put all her components together and connect all of the programs together so that she had an Alarm Notification System.
Learning Module #7 - End Of Year Video & Cryptocurrency
For this last learning module, Sarah took the time to reflect on the school year and all of the cool projects her classmates have made and compiled them into a video for future classes to use as inspiration for their own projects!