7 🕹 Play with Nybble

"You can't direct the wind, but you can adjust your sails." ⛵️

7.1. Control with Arduino IDE

Try the following serial commands in the serial monitor:

  • ksit”

  • m0 30”

  • m0 -30”

  • kbalance”

  • ktr”

  • ktrL”

  • d

The quotation mark just indicates that they are character strings. Don’t type quotation mark in the serial monitor.

7.2. Control with Infrared remote

7.2.1. Key map

Only the position of the buttons matters, though those symbols can help you remember the functionalities. I’m going to define position related symbols to refer to those keys.

I’m using abbreviations for key definitions to reduce SRAM usage. Due to the limited keys of a physical remote, I always change the definitions for fun.

The following map is just an illustration. Check function String translateIR(){...} in Nybble.ino for the actual key definitions in effect. They are also open to your customization.

  • Button 1 shuts down the servos and send Nybble to sleep. It's always safe to click it if Nybble is doing something AWKWARD. I’m serious. There’s still some ghosts in the system I don’t fully understand.

  • Button 2 is the neutral standing posture. You can push Nybble from side, or make it stand up will hind legs and tail. You can test its balancing ability on a fluctuating board. Actually balancing is activated in most postures and gaits.

  • Lift Nybble at the middle of its spine so that all its legs can move freely in the air. Click all the buttons on the IR remote to see what they do. Then put Nybble on a wide flat table and try those buttons again. Different surfaces have different friction and will affect walking performance. Carpet will be too bushy for Nybble’s short legs. It can only crawl (command kcr) over this kind of tough terrain.

  • You can pull the battery pack down and slide along the longer direction of the belly. That will tune the center of mass, which is very important for walking performance. Otherwise it may keep falling down.

  • When Nybble is walking, you can let it climb up/down a small slope (<10 degrees)

  • Whatever Nybble is doing, you can lift it vertically, and it will stop moving, just like a cat scruffed on the neck.

  • If Nybble keeps beeping after you run Nybble.ino, with numbers (something around 500) printed in the serial monitor, it’s the low voltage alarm being triggered. You need to power NyBoard with two 3.7V Li-ion/Li-poly batteries to pass the threshold.

  • “FIFO overflow! Using last reading!” in the serial monitor is an algorithmic fix to the original MPU6050 library. It’s not a bug.

  • The servos are designed to be driven by internal gears. Avoid rotating the servos too fast from outside.

  • Don’t keep Nybble walking for too long. That will overheat the electronics and reduce the servos’ life span. It’s possible to reconfigure NyBoard V0_1 to make Nybble run longer.

  • Sometimes the program may halt due to voltage fluctuation. Check if the battery is running low (< 3.5V each or <7.0V in series). Press the reset button on NyBoard to restart the program.

  • Nybble has acrophobia! If you lift it and rotate it over a certain degree, its current movement will be interrupted. Don't flip Nybble over to scare it!

  • Be kind as if you were playing with a real kitten. (^=◕ᴥ◕=^)