Upload Sketch for NyBoard
The I2C switch changes the master of I2C devices (gyro/accelerometer, servo driver, external EEPROM). On default “Arduino”, NyBoard uses the onboard ATmega328P as the master chip; On “RPi”, NyBoard uses external chips connected through the I2C ports (SDA, SCL) as the master chip.
The setup process for Nybble is almost the same, except that you need to change the model definition to
#define NYBBLE.Make sure you read through the following detailed steps.
With NyBoard V1_*, you can simply choose Arduino Uno.
- Download a fresh OpenCat repository from GitHub: https://github.com/PetoiCamp/OpenCat. It’s better if you utilize GitHub’s version control feature. Otherwise, make sure you download the WHOLE OpenCat FOLDER every time. All the codes have to be the same version to work together.
- If you download the Zip file of the codes, you will get an OpenCat-main folder after unzipping. You need to rename it to OpenCat before opening the OpenCat.ino, so that the two names match.
- There are several testX.ino codes in ModuleTests folder. You can upload them to test certain modules separately. Open any testX.ino sketch with prefix “test”. (I recommend using testBuzzer.ino as your first test sketch)
- Open up the serial monitor and set up the baud rate. With NyBoard V1_*, choose the board as Arduino Uno and later set the baud rate to 115200 in both the code and the serial monitor.
- Compile the code. There should be no error messages. Upload the sketch to your board and you should see Tx and Rx LEDs blink rapidly. Once they stop blinking, messages should appear on the serial monitor.
To configure the board, please follow these steps:
- 1.Open the file OpenCat.ino and select your robot and board version. For example:
#define BITTLE //Petoi 9 DOF robot dog: 1x on head + 8x on leg
//#define NYBBLE //Petoi 11 DOF robot cat: 2x on head + 1x on tail + 8x on leg
2. Comment out
#define MAIN_SKETCHso that it will turn the code to the board configuration mode. Upload and follow the serial prompts to proceed.
// #define MAIN_SKETCH
5. Press the upload button.
6. Open the serial monitor. You can find the button either under Tools, or at the top-right corner of the IDE.
Set the serial monitor as No line ending and 115200 baud rate.
7. The serial prompts:
Reset joint offsets? (Y/n):
Input ‘Y’ and hit enter, if you want to reset all the joint offsets to 0.
The program will do the reset, then update the constants and instinctive skills in the static memory.
8. IMU (Inertial Measurement Unit) calibration.
The serial prompts:
Calibrate the IMU? (Y/n):
Input ‘Y’ and hit enter, if you have never calibrated the IMU or want to redo calibration.
Put the robot flat on the table and don't touch it. The robot will long beep six times to give you enough time. Then it will read hundreds of sensor data and save the offsets. It will beep when the calibration finishes.
When the serial monitor prints "Ready!", you can close the serial monitor to do the next step.
#define MAIN_SKETCHto make it active. This time the code becomes the normal program for the major functionalities. Then upload the code.
Open the serial monitor. When the serial monitor prints "Ready!", the robot is ready to take your next instructions.
10. The default code runs the standard mode. If you have some extensible modules, you may uncomment the definition of a specific module. It will disable the Gyro code to save some programming space and activate the demo of the module.
The behavior of the official modules is defined in separate header files in OpenCat/src/. You can find them in OpenCat/src/io.h -> readSignal(). The behavior of OTHER_MODULES is defined in OpenCat/OpenCat.ino -> otherModule(). You can study the example code to write your own functions.
11. In certain cases, you may want to modify the "joint - pin" mapping of the robot. You can modify it in OpenCat/src/OpenCat.h. Make sure you are modifying the code block corresponding to the board version at the beginning of OpenCat.ino. After the modification, remember to save the changes and redo the uploading process from step 2.