Learning Pet

Encouraging the world to learn together in a different way




Hey everyone! The Learning Pet project has been merged together with the ongoing RoboBrrd project, so to see the current information, please visit the RoboBrrd page! Thanks!




Learning Pet was in the Open Hardware Summit Scholarship! :)



We support the Open Source Hardware Definition v1.0



We support the Open Source Definition v1.9


Welcome!

Designed for elementary school students, Learning Pet enriches lessons by creating a physical interface to interact with the virtual world. We demonstrate a number sorting game, where the student interacts with the robot to blast virtual UFO's with the lowest value. Correct answers are celebrated with a wing flap, and each level-up with a dance. We use the Accessory Development Kit to interface with mobile devices while away from the computer.

Learning Pet is entered into the Open Hardware Summit Scholarship contest and needs your vote! Please vote for it here!

Learning Pet Checklist

Protoboard Fritzing files released under CC BY-SA
Computer source code files released under an OSI approved license (BSD 3-Clause)
Android source code files released under an OSI approved license (BSD 3-Clause)
Constructed out of recyclable materials (wood popsicle sticks)
Documentation webpage complete and informative, with videos









Hardware

Learning Pet is designed as a modular system. The brain is detachable from the main robot using plugs. Inside the main robot are some connections. The additional side modules (not included in this prototype version of Learning Pet) will also interface with the brain using a plug, and be released open source.



For the brain, we use the Google ADK Arduino with the accessory shield. You can find the source files for this board on the Google ADK site. We modified the shield by attaching female headers at a 90 degree angle, so we can plug wires in. Additionally, we extended the digital output pins closest to the end onto a breakout board. As an aside, the wire we used was from an old e-waste printer, woot woot for recycling! Also, the male pins on the end of the breakout board aren't connected to anything.

Digital Out Breakout Board


Released under CC BY-SA. Download the Fritzing file!


The robot has two boards hidden inside of it (behind the rotation servo). One for the purple plug connections, and another for the other plug connections. The wires from the other plug connection board usually run to the main purple plug connection board.

Purple Plug Connection Boards


Released under CC BY-SA. Download the Fritzing file!

Other Plug Connection Boards


Released under CC BY-SA. Download the Fritzing file!


For the connections, we use two nine pin plugs. The purple plug has a purple tab on it, and is used for primary needs. The other plug is used for extras.

Purple Plug Pinout


Other Plug Pinout



In the future, we want to make and use our own custom board to simplify some of the connections, and add on more features. Ideas include an integrated micro SD card slot to save game and lesson data. Eventually when there are some extra funds around, this will happen! ^_^


Software (Computer)

The first demo application is called Math in Space Quest. The goal is to defat all of the UFOs by blasting them in order from smallest to largest numbers.



To blast a UFO, you have to position your virtual RoboBrrd through the IR distance sensor on the physical robot. When you are aligned, press the star button to fire!

If the blast was successful, the robot will flap its wings. If not, it will open its beak in surprise! As an extra incentive, on each level up, the robot does a dance. This usually involves it shaking and making its googley eyes all googley!



The computer software was developed using Processing, allowing it to be run on Linux, Mac, and Windows. The code is licensed under the BSD 3-clause license, and you can view the source on Github or download the zip (you will also need this arduino source zip or Github to go with that)!


Software (Android)

By having Learning Pet always accessible to be used to learn more information, then it will be much more fun for the students to use and continue to use.

We demonstrate this concept with "Travelling Learning Pet", a simple Android application that has the virtual RoboBrrd hanging by its wing on the tilt of the universe. The rotation of the virtual RoboBrrd is controlled by the IR distance sensor on the real robot. It's just a little prototype right now! :) The code is licensed under the BSD 3-clause license, and you can view the source on Github, or download the zip (you will need this arduino source zip or Github to go with that)!





We did try to make Math in Space Quest ported to the Android and ADK, however we kept experiencing some difficulties with sending characters in a sequence. Sometimes is would work, and sometimes the Arduino would just refuse to connect. Sometimes this would cause the status bar to crash. However, this is all pretty much pushing the envelope still.

The ADK tool we were using for Processing is still in the labs stage of the development, and we can see it as they didn't add in a write(String s) method yet (and this is relatively simple to do). There also seems to be some issues with the application stopping, causing a crash.

As we said, this is all still really new, but when it works, it works really great! One of the alternatives might be to use the Eclipse rather than Processing method, but still use core.jar to do all the drawing. If you want, you can see the attempt to port source code on Github or a zip (and the Arduino source zip or Github), however be forewarned: they aren't very organized or coherent.


Design

Learning Pet is a mini version of RoboBrrd, about 1/4 of the size. Everything was constructed in the same way as big RoboBrrd, you can see the guide on MAKE Projects and check out my blog category.







There were a few minor differences:
  • The beak mechanism uses an elastic between the two axels to prevent the lower beak from being caught.
  • The cloth is revealable on all three sides now, using velcro
  • There is no tilt servo, only rotation
  • The RGB LED eyes are not individually controllable
  • Mini RoboBrrd has no pipecleaner legs or feathers, and the eyes are googley eyes



Future

We really want to be able to do what we love and really enjoy in life. Learning Pet has been an idea in my head for a while, and it was kicked into motion thanks to the motivation of a very large prize in the Open Hardware Summit Scholarship contest.

What could this prize do? One of the challenges for me right now is that I don't have any resources other than popsicle sticks & glue, legos, and foam to create something made out of material. These three things are also very time consuming. So, the prize could buy me a MakerBot 3d printer, so that I can take my prototypes a step further and play with some designing. This can lead to being able to sell some put-it-together kits, which would really start this whole thing off! The thing that excites me most is what the students in the schools will do with their Learning Pets. How will they decorate it?

What happens if the prize is not won? That would be a bummer, but the project would not be forgotten. I would try to make more apps4arduino until there is enough money to buy a MakerBot, or a DIY LIL CNC, or a laser cutter, so that I can take the prototype into a production grade kit.

One of the things that I'm most looking forward to, programming challenge wise, is the game and lesson data management and syncing. Instead of going with a primarily cloud based approach, all of the data would be saved on the SD card, and then later pushed and synced with the data in the cloud. Of course, this feature isn't exactly necessary for any version in the near future as there are other things to focus on, but it is just something in the future that will be fun to make!

One of the more short term activities that I'm excited to build are modules. They are extension boxes from the main board that would allow for different software to use different sensors and outputs. For example, there can be a "healthy eating" module, that would go along with some health and lifestyle sort of software, like eat fruit and vegetables. It will use the same plugs idea as with the robot and main board, except on one of the sides instead of on top.

How can you help? You can vote for Learning Pet in the OHS Scholarship contest! It is very much appreciated! And, create your own Learning Pet! Maybe a cat, dog, frog, or cow! Let's start a learning revolution :D

Here is an extra video that didn't fit into any of the above headlines, but just watching the googley eyes is so much fun!