Introduction: Adeept Penguin Robot Kit for Arduino

Adeept is a technical service team of open source software and hardware. Dedicated to applying the Internet and the latest industrial technology in open source area, we strive to provide best hardware support and software service for general makers and electronic enthusiasts around the world. We aim to create infinite possibilities with sharing. No matter what field you are in, we can lead you into the electronic world and bring your ideas into reality.

The code and circuits of our product are open source. You can check on our website:

If you have any problems, feel free to send an email for technical support and assistance:

On weekdays, we usually will reply within 24 hours. Also welcome to post forums on our website.

Step 1: Components List

The acrylic plates are fragile, so please be careful when assembling them in case of breaking.

The acrylic plate is covered with a layer of protective film. You need to remove it first.

Some holes in the acrylic may have residues, so you need to clean them before the use.

Step 2: About the User Manual for Penguin Robot


This two-foot robot moves like a penguin with a cute penguin-like shape. You can make it move forward and backward and turn right and left via smart phone. With numerous resources for Arduino learning, this robot just caters to beginners. With the Arduino Nano as the core control board, the penguin robot also integrates buzzer, RGB LED, LED, and extension ports that control 16 servos at the same time. It's driven by 4 servos to move and can detect obstacles with an ultrasonic module; to communicate with mobile phone, it adopts a Bluetooth module for wireless connection.

Step 3: Assembly Upper Body

Step 4: Foot Assemble

Step 5: Install and Remove Batteries

Step 6: Servo Rocker Arm Installation

Step 7: Whole Body Assembly

Step 8: Circuit Connection

Connect components based on the figure

Pay attention to match the wire and port and not connect inversely.

Step 9: What Is Arduino?

Arduino is an open-source electronics platform based on easy-to-use hardware and software. Arduino boards are able to read inputs - light on a sensor, a finger on a button, or a Twitter message - and turn it into an output - activating a motor, turning on an LED, publishing something online. You can tell your board what to do by sending a set of instructions to the microcontroller on the board. To do so you use the Arduino programming language (based on Wiring), and the Arduino Software (IDE), based on Processing. Over the years Arduino has been the brain of thousands of projects, from everyday objects to complex scientific instruments. A worldwide community of makers - students, hobbyists, artists, programmers, and professionals - has gathered around this open-source platform, their contributions have added up to an incredible amount of accessible knowledge that can be of great help to novices and experts alike. Arduino was born at the Ivrea Interaction Design Institute as an easy tool for fast prototyping, aimed at students without a background in electronics and programming. As soon as it reached a wider community, the Arduino board started changing to adapt to new needs and challenges, differentiating its offer from simple 8-bit boards to products for IoT applications, wearable, 3D printing, and embedded environments. All Arduino boards are completely open-source, empowering users to build them independently and eventually adapt them to their particular needs. The software, too, is open-source, and it is growing through the contributions of users worldwide.

Step 10: Why Arduino?

Thanks to its simple and accessible user experience, Arduino has been used in thousands of different projects and applications. The Arduino software is easy-to-use for beginners, yet flexible enough for advanced users. It runs on Mac, Windows, and Linux. Teachers and students use it to build low cost scientific instruments, to prove chemistry and physics principles, or to get started with programming and robotics. Designers and architects build interactive prototypes, musicians and artists use it for installations and to experiment with new musical instruments. Makers, of course, use it to build many of the projects exhibited at the Maker Faire, for example. Arduino is a key tool to learn new things. Anyone - children, hobbyists, artists, programmers - can start tinkering just following the step by step instructions of a kit, or sharing ideas online with other members of the Arduino community.

Step 11: How Should I Use Arduino?

If you are a beginner with Arduino, Arduino learning kits on our website would be a prefect step into this fantastic field!

One type of Arduino board are used in this robot kit: Adeept Nano board. The Arduino Nano is a compact board similar to the UNO.

The Arduino Nano can be powered via the Mini-B USB connection, 6-20V unregulated external power supply (pin 30), or 5V regulated external power supply (pin 27). The power source is automatically selected to the highest voltage source. Memory: The ATmega328P has 32 KB, (also with 2 KB used for the bootloader. The ATmega328P has 2 KB of SRAM and 1 KB of EEPROM. Input and Output: Each of the 14 digital pins on the Nano can be used as an input or output, using pinMode(), digitalWrite(), and digitalRead() functions. They operate at 5 volts. Each pin can provide or receive a maximum of 40 mA and has an internal pull-up resistor (disconnected by default) of 20-50 kOhms. In addition, some pins have specialized functions: ·Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the FTDI USB-to-TTL Serial chip. · External Interrupts: 2 and 3. These pins can be configured to trigger an interrupt on a low value, a rising or falling edge, or a change in value. See the attachInterrupt() function for details. ·PWM: 3, 5, 6, 9, 10, and 11. Provide 8-bit PWM output with the analogWrite() function. SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). These pins support SPI communication, which, although provided by the underlying hardware, is not currently included in the Arduino language. ·LED: 13. There is a built-in LED connected to digital pin 13. When the pin is HIGH value, the LED is on, when the pin is LOW, it's off. The Nano has 8 analog inputs, each of which provide 10 bits of resolution (i.e. 1024 different values). By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the analogReference() function. Analog pins 6 and 7 cannot be used as digital pins. Additionally, some pins have specialized functionality: ·I2C: 4 (SDA) and 5 (SCL). Support I2C (TWI) communication using the Wire library (documentation on the Wiring website).

There are a couple of other pins on the board:
·AREF. Reference voltage for the analog inputs. Used with analogReference(). ·Reset. Bring this line LOW to reset the microcontroller. Typically used to add a reset button to shields which block the one on the board. Communication: The Arduino Nano has a number of facilities for communicating with a computer, another Arduino, or other microcontrollers. The ATmega328P provide UART TTL (5V) serial communication, which is available on digital pins 0 (RX) and 1 (TX). An FTDI FT232RL on the board channels this serial communication over USB and the FTDI drivers (included with the Arduino software) provide a virtual com port to software on the computer. The Arduino software includes a serial monitor which allows simple textual data to be sent to and from the Arduino board. The RX and TX LEDs on the board will flash when data is being transmitted via the FTDI chip and USB connection to the computer (but not for serial communication on pins 0 and 1). A SoftwareSerial library allows for serial communication on any of the Nano's digital pins. The ATmega328P also support I2C (TWI) and SPI communication. The Arduino software includes a Wire library to simplify use of the I2C bus. To use the SPI communication, please see ATmega328P datasheet.

Programming: The Arduino Nano can be programmed with the Arduino software (download). Select "Arduino Duemilanove or Nano w/ ATmega328P" from the Tools > Board menu (according to the microcontroller on your board). The ATmega328P on the Arduino Nano comes preburned with a bootloader that allows you to upload new code to it without the use of an external hardware programmer. It communicates using the original STK500 protocol. You can also bypass the bootloader and program the microcontroller through the ICSP (In-Circuit Serial Programming) header using Arduino ISP or similar.

Automatic (Software) Reset: Rather then requiring a physical press of the reset button before an upload, the Arduino Nano is designed in a way that allows it to be reset by software running on a connected computer. One of the hardware flow control lines (DTR) of the FT232RL is connected to the reset line of the ATmega328P via a 100 nanofarad capacitor. When this line is asserted (taken low), the reset line drops long enough to reset the chip. The Arduino software uses this capability to allow you to upload code by simply pressing the upload button in the Arduino environment. This means that the bootloader can have a shorter timeout, as the lowering of DTR can be well-coordinated with the start of the upload. This setup has other implications. When the Nano is connected to either a computer running Mac OS X or Linux, it resets each time a connection is made to it from software (via USB). For the following half-second or so, the bootloader is running on the Nano. While it is programmed to ignore malformed data (i.e. anything besides an upload of new code), it will intercept the first few bytes of data sent to the board after a connection is opened. If a sketch running on the board receives one-time configuration or other data when it first starts, make sure that the software with which it communicates waits a second after opening the connection and before sending this data.

Step 12: Arduino Software (IDE)

Arduino Software (IDE) is used to write and upload the code for Arduino Board. First, install Arduino software (IDE): visit Download the corresponding installation program according to your operating system. If you are a Windows user, please select the “Windows Installer” to download and install the driver correctly.

After the download completes, run the installer. For Windows users, there may pop up an installation dialog box of the driver during the installation. Please agree the installation when it appears.
After installation is completed, an Arduino software shortcut will be generated on the desktop. Run the IDE.

The Arduino Integrated Development Environment - or Arduino Software (IDE) - contains a text editor for writing code, a message area, a text console, a toolbar with buttons for common functions and a series of menus. It connects to the Arduino and Genuino hardware to upload programs and communicate with them.
Verify: Checks your code for errors when compiling it. Upload: Compiles your code and uploads it to the configured board. Before uploading your sketch, you need to select the correct items from the Tools > Board and Tools > Port menus. The boards are described below. On the Mac OS X, the serial port is probably something like /dev/tty.usbmodem241 (for an Nano or Mega2560 or Uno) or /dev/tty.usbserial-1B1 (for a Duemilanove or earlier USB board), or /dev/tty.USA19QW1b1P1.1 (for a serial board connected with a Keyspan USB-to-Serial adapter). On Windows, it's probably COM1 or COM2 (for a serial board) or COM4, COM5, COM7..., or higher (for a USB board) - to find out, you look for USB serial device in the ports section of the Windows Device Manager. On Linux, it should be /dev/ttyACMx, /dev/ttyUSBx or similar.

Once you've selected the correct serial port and board, press the upload button in the toolbar or select the Upload item from the Sketch menu. Current Arduino boards will reset automatically and begin the upload. With older boards (pre-Diecimila) that lack auto-reset, you'll need to press the reset button on the board just before starting the upload. On most boards, you'll see the RX and TX LEDs blink as the sketch is uploaded. The Arduino Software (IDE) will display a message when the upload is completed, or show an error.
When you upload a sketch, you're using the Arduino bootloader, a small program that has been loaded on to the microcontroller on your board. It allows you to upload code without using any additional hardware. The bootloader is active for a few seconds when the board resets; then it starts whichever sketch was most recently uploaded to the microcontroller. The bootloader will blink the on-board (pin 13) LED when it starts (i.e. when the board resets). Note: If you are using an external programmer with your board, you can hold down the "shift" key on your computer when using this icon. The text will change to "Upload using Programmer". New: Creates a new sketch. Open: Presents a menu of all the sketches in your sketchbook. Clicking one will open it within the current window overwriting its content. Note: Due to a bug in Java, this menu doesn't scroll; if you need to open a sketch late in the list, use the File | Sketchbook menu instead. Save: Saves your sketch. Serial Monitor: Opens the serial monitor. Additional commands are found within the five menus: File, Edit, Sketch, Tools, and Help. The menus are context sensitive, which means only those items relevant to the work currently being carried out are available. Since version 1.0, files are saved with an .ino file extension. Previous versions use the .pde extension. You may still open .pde named files in version 1.0 and later, and the software will automatically rename the extension to .ino.

Step 13: Install Library

The example sketches provided use the Adeept_PenguinRobot.ZIP and AdeeptDistance.ZIP library, so you need to install it before compiling. Click Add.ZIP Library to add the Adeept_PenguinRobot.ZIP and AdeeptDistance.ZIP library to the libraries folder.

After the library is installed successfully, you can find the Adeept_PenguinRobot.ZIP and AdeeptDistance.ZIP library under Sketch->Include Library

After the assembly is done, prior to downloading the sketch, you need to unplug the Bluetooth module because it shares the same port as that for download.
Open the sketch provided, which you may download from our website, you need to adjust the four parameters in TwoTeggedRobots.Init(x,y,z,g), x(y,z,g)ranging -20~20; they can make the two soles perpendicular to each other.

Step 14: Upload Program

After the preparations above, next we will upload the program (example sketches provided) to the Adeept Nano board.

Note: Before downloading the program, please remove the Bluetooth module first, otherwise the download program will fail. Open the program provided for Arduino Nano board , the file “AdeeptPenguinRobot.ino”.

Connect the Arduino Nano board to the PC. Select Tool -> Board “Arduino/Genuino Nano”, and Port - > COM15. Also here is COM15, assigned to the Nano, but it can be COM1, COM2, COM3...