My 11-year old and I attended an event held by CoderDojo LA at the Google LA offices this morning. The CoderDojo movement is a free, non-profit aimed at turning young kids on to programming. Their target age group is 8-16, and they use the Scratch drag-and-drop programming language (available at scratch.mit.edu) to introduce the kids to general programming concepts. Most of the kids who attended were in the 8-12 year age range. This morning’s session featured some activities that got the kids to create brief snippets of Scratch code to perform tasks like animate an object as it moves across the screen or make an object change color when a user presses a key. The kids were then introduced to an existing program that displayed a picture of a drum set, which animated the various drums and played drum sounds when each drum was clicked. The kids were invited to make their own modifications to the existing sketch or create their own musical instrument in Scratch instead.
In March, I posted on experimenting with the MPU-6050 IMU chip (mounted in a GY-521 breakout board). It seems that many people are using the MPU-6050, and I wanted to follow up with some more information, because there are better ways to access and process the combined sensor data than were demonstrated in that post. The previous experiment compared the raw data from the 3-axis accelerometer and 3-axis gyroscope sensors to the results when the raw data are combined via a complementary filter.
For the comparison, I had adapted a program from the Arduino Playground Wiki on MPU-6050 to pull the raw accelerometer and gyroscope data from the MPU-6050, The program calculated pitch, roll and yaw (rotation about the X, Y and Z axes, respectively, also knows as Euler Angles). These calculations were limited by certain properties of both the accelerometer and gyroscope. Gyroscope data has a tendency to drift with time, and accelerometer data is noisy and makes it difficult to calculate rotations over ranges greater than 180 degrees.