NanoHat Motor

From FriendlyELEC WiKi
Jump to: navigation, search

查看中文

1 Introduction

NanoHat Motor
  • The NanoHat Motor is a motor module with I2C. It uses NXP’s PCA9685 and Toshiba’s TB6612FNG.
  • A single module can drive four 5V PWM steering motors and four 12V DC motors or four 5V PWM steering motors and two 12V four-wire step motors. You can drive more motors by stacking multiple modules with different I2C addresses together.
  • It uses TI's TPS54331 device to provide stable power source.
  • An onboard 32K EEPROM AT24C32D can save user data,
  • The NanoHat Motor has the same form factor as the NanoPi NEO and can be stacked on a NanoPi NEO.

2 Hardware Spec

  • Input Voltage: 12V
  • Capable of driving four 5V PWM steering motors
  • Capable of driving four 12V DC motors
  • Capable of driving two 12V four-wire step motors
  • Onboard 32K EEPROM
  • Stackable and Configurable I2C address

NanoHat Motor-PCB

2.1 Diagram, Layout and Dimension

NanoHat Motor Layout
NanoHat Motor
  • 24-Pin Pin Description
Pin# Name Pin# Name
1 SYS_3.3V 2 VDD_5V OUT
3 I2C_SDA 4 VDD_5V OUT
5 I2C_SCL 6 GND
7 NC 8 NC
9 GND 10 NC
11 NC 12 NC
13 NC 14 GND
15 NC 16 NC
17 SYS_3.3V 18 NC
19 NC 20 GND
21 NC 22 NC
23 NC 24 NC

None of the pins except 5V and GND in the 12-Pin connector is connected.
NanoPi NEO NanoPi NEO Air

  • 2-Pin Connector Pin Description
Pin# Name Description
1 12V 12V Input
2 GND Ground
  • 4Pin PWM Steering Motor Connector Pin Description
Pin# Name Description
1 PWM* PWM * Output
2 NC Not Connected
3 5V 5V Output
4 GND Ground

2.0mm 4Pin PWM Steering Motor Connector Pin File in PDF

  • Motor Connector Pin Description
Name Description
M1 DC Motor #1 output/Step Motor #1 (Wire 1 & 2) output
M2 DC Motor #2 output/Step Motor #1 (Wire 3 & 4) output
M3 DC Motor #3 output/Step Motor #2 (Wire 1 & 2) output
M4 DC Motor #4 output/Step Motor #2 (Wire 3 & 4) output

3 Hardware Setup

3.1 Connect NanoHat Motor to NanoPi NEO

The NanoHat Motor has the same form factor as the NanoPi NEO and can be stacked on a NanoPi NEO Here are some hardware setups:
NanoHat Motor_nanopi_NEO NanoHat Motor_nanopi_NEO_Air NanoHat Motor_nanopi_NEO2
The I2C address on the module can be reset by adjusting the onboard resistor. You can stack multiple motor modules together with different I2C addresses. Here is a hardware setup:
NanoHat Motor_nanopi_NEO_Hat

4 Run Test Program

The NanoHat Motor's test program is included in the NanoHAT-Motor-Python-Library.

The NanoHAT-Motor-Python-Library is a Python library which provides various APIs for motor control.

Applicable Boards:
NanoPi NEO
NanoPi Fire
NanoPi NEO2
NanoPi NEO Plus2

As for other FriendlyElec's nano boards as long as they have an I2C interface you can make them work with this module by making some wiring.

4.1 Install NanoHAT-Motor-Python-Library

To make a NEO work with the motor module you need to install this library on NEO. You can install the library by logging into your NEO via ssh and type the following commands:

sudo apt-get install python-dev python-smbus git
cd ~
git clone https://github.com/friendlyarm/NanoHAT-Motor-Python-Library
cd NanoHAT-Motor-Python-Library
sudo python setup.py install

4.2 Use of NanoHAT-Motor-Python-Library

4.2.1 Control DC Motor

cd ~/NanoHAT-Motor-Python-Library/examples
python DCTest.py <motor port>

"<motor port>" is a motor's port

4.2.2 Control Step Motor

cd ~/NanoHAT-Motor-Python-Library/examples
python StepperTest.py <motor port>

"<motor port>" is a step motor's port

4.2.3 Control Steering Motor

cd ~/NanoHAT-Motor-Python-Library/examples
python ServoTest.py <pwm port>

"<pwm port>" is a steering motor's port

5 Resources

6 Update Log

6.1 April-20-2017

  • Released English Version