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.

  • Rest puts the robot down and shuts down the servos. 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.

  • Gyro will turn on/off the gyro

  • Balance 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.

  • Pressing F/L/R will make the robot to move forward/left/right

  • B will make the robot move backward

  • Calibrate puts the robot into calibration posture and turns off the gyro

  • Stepping lets the robot step at the original spot

  • Crawl/walk/trot are gaits that can be switched and combined with the direction buttons

  • Buttons after trot are preset postures or other skills

  • Turning off the gyro can accelerate and stabilize the slower gaits. But it’s not recommended for faster 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 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. If you have NyBoard V0_1 (our oldest version), It’s possible to reconfigure it to make Nybble more stable.

  • 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. (^=◕ᴥ◕=^)