Difference between revisions of "NanoHat Motor"
(→Introduction) |
(→Resources) |
||
(10 intermediate revisions by 3 users not shown) | |||
Line 9: | Line 9: | ||
* The NanoHat Motor has the same form factor as the NanoPi NEO and can be stacked on a NanoPi NEO. | * The NanoHat Motor has the same form factor as the NanoPi NEO and can be stacked on a NanoPi NEO. | ||
− | == | + | ==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 |
[[File:NanoHat Motor_PCB.png | frameless|400px|NanoHat Motor-PCB]] | [[File:NanoHat Motor_PCB.png | frameless|400px|NanoHat Motor-PCB]] | ||
− | === | + | ===Diagram, Layout and Dimension=== |
− | [[File:NanoHat Motor-layout.jpg |thumb|600px|NanoHat | + | [[File:NanoHat Motor-layout.jpg |thumb|600px|NanoHat Motor Layout]] |
[[File:NanoHat Motor-02.jpg|thumb|frameless|600px|NanoHat Motor]] | [[File:NanoHat Motor-02.jpg|thumb|frameless|600px|NanoHat Motor]] | ||
− | * ''' | + | * '''24-Pin Pin Description''' |
::{| class="wikitable" | ::{| class="wikitable" | ||
|- | |- | ||
Line 53: | Line 53: | ||
|} | |} | ||
− | + | None of the pins except 5V and GND in the 12-Pin connector is connected.<br> | |
[http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO/zh NanoPi NEO] | [http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO/zh NanoPi NEO] | ||
[http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO_Air/zh NanoPi NEO Air] | [http://wiki.friendlyarm.com/wiki/index.php/NanoPi_NEO_Air/zh NanoPi NEO Air] | ||
<br> | <br> | ||
− | * ''' | + | * '''2-Pin Connector Pin Description''' |
::{| class="wikitable" | ::{| class="wikitable" | ||
|- | |- | ||
|Pin# || Name || Description | |Pin# || Name || Description | ||
|- | |- | ||
− | |1 || 12V || | + | |1 || 12V || 12V Input |
|- | |- | ||
− | |2 || GND || | + | |2 || GND || Ground |
|} | |} | ||
− | * '''4Pin PWM | + | * '''4Pin PWM Steering Motor Connector Pin Description''' |
::{| class="wikitable" | ::{| class="wikitable" | ||
|- | |- | ||
|Pin# || Name || Description | |Pin# || Name || Description | ||
|- | |- | ||
− | |1 || PWM* || PWM* | + | |1 || PWM* || PWM * Output |
|- | |- | ||
− | |2 || NC || | + | |2 || NC || Not Connected |
|- | |- | ||
− | |3 || 5V || | + | |3 || 5V || 5V Output |
|- | |- | ||
− | |4 || GND || | + | |4 || GND || Ground |
|} | |} | ||
+ | [http://wiki.friendlyarm.com/wiki/images/f/f5/2.0mm_dip_4pin.jpg 2.0mm 4Pin PWM Steering Motor Connector Pin File in PDF] | ||
− | * ''' | + | * '''Motor Connector Pin Description''' |
::{| class="wikitable" | ::{| class="wikitable" | ||
|- | |- | ||
|Name || Description | |Name || Description | ||
|- | |- | ||
− | |M1 || | + | |M1 || DC Motor #1 output/Step Motor #1 (Wire 1 & 2) output |
|- | |- | ||
− | |M2 || | + | |M2 || DC Motor #2 output/Step Motor #1 (Wire 3 & 4) output |
|- | |- | ||
− | |M3 || | + | |M3 || DC Motor #3 output/Step Motor #2 (Wire 1 & 2) output |
|- | |- | ||
− | |M4 || | + | |M4 || DC Motor #4 output/Step Motor #2 (Wire 3 & 4) output |
|} | |} | ||
− | == | + | ==Hardware Setup== |
− | === | + | ===Connect NanoHat Motor to NanoPi NEO=== |
− | NanoHat | + | 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:<br> | |
[[File:NanoHat Motor_nanopi_NEO.jpg|frameless|600px|NanoHat Motor_nanopi_NEO]] | [[File:NanoHat Motor_nanopi_NEO.jpg|frameless|600px|NanoHat Motor_nanopi_NEO]] | ||
[[File:NanoHat Motor_nanopi_NEO_Air.jpg|frameless|600px|NanoHat Motor_nanopi_NEO_Air]] | [[File:NanoHat Motor_nanopi_NEO_Air.jpg|frameless|600px|NanoHat Motor_nanopi_NEO_Air]] | ||
[[File:NanoHat Motor_nanopi_NEO2.jpg|frameless|600px|NanoHat Motor_nanopi_NEO2]]<br> | [[File:NanoHat Motor_nanopi_NEO2.jpg|frameless|600px|NanoHat Motor_nanopi_NEO2]]<br> | ||
− | + | 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:<br> | |
[[File:NanoHat Motor_nanopi_NEO_Hat.jpg|frameless|600px|NanoHat Motor_nanopi_NEO_Hat]] | [[File:NanoHat Motor_nanopi_NEO_Hat.jpg|frameless|600px|NanoHat Motor_nanopi_NEO_Hat]] | ||
− | == | + | ==Run Test Program== |
− | NanoHat | + | The NanoHat Motor's test program is included in the NanoHAT-Motor-Python-Library. |
− | NanoHAT-Motor-Python- | + | The NanoHAT-Motor-Python-Library is a Python library which provides various APIs for motor control. |
− | + | Applicable Boards:<br /> | |
NanoPi NEO<br /> | NanoPi NEO<br /> | ||
NanoPi Fire<br /> | NanoPi Fire<br /> | ||
+ | NanoPi NEO2<br /> | ||
+ | NanoPi NEO Plus2<br /> | ||
− | + | 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. | |
− | === | + | ===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: | |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
sudo apt-get install python-dev python-smbus git | sudo apt-get install python-dev python-smbus git | ||
Line 125: | Line 128: | ||
git clone https://github.com/friendlyarm/NanoHAT-Motor-Python-Library | git clone https://github.com/friendlyarm/NanoHAT-Motor-Python-Library | ||
cd NanoHAT-Motor-Python-Library | cd NanoHAT-Motor-Python-Library | ||
− | python setup.py install | + | sudo python setup.py install |
</syntaxhighlight> | </syntaxhighlight> | ||
− | ===NanoHAT-Motor-Python- | + | ===Use of NanoHAT-Motor-Python-Library=== |
− | ==== | + | ====Control DC Motor==== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd ~/NanoHAT-Motor-Python-Library/examples | cd ~/NanoHAT-Motor-Python-Library/examples | ||
python DCTest.py <motor port> | python DCTest.py <motor port> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | "<motor port>" is a motor's port | |
− | ==== | + | ====Control Step Motor==== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd ~/NanoHAT-Motor-Python-Library/examples | cd ~/NanoHAT-Motor-Python-Library/examples | ||
python StepperTest.py <motor port> | python StepperTest.py <motor port> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | "<motor port>" is a step motor's port | |
− | ==== | + | ====Control Steering Motor==== |
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd ~/NanoHAT-Motor-Python-Library/examples | cd ~/NanoHAT-Motor-Python-Library/examples | ||
python ServoTest.py <pwm port> | python ServoTest.py <pwm port> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | "<pwm port>" is a steering motor's port | |
− | == | + | ==Resources== |
*[Schematic]([http://wiki.friendlyarm.com/wiki/images/2/2d/SCHEMATIC1_NanoHat_Motor_v1.0_1703.pdf Schematic - NanoHat Motor.pdf]) | *[Schematic]([http://wiki.friendlyarm.com/wiki/images/2/2d/SCHEMATIC1_NanoHat_Motor_v1.0_1703.pdf Schematic - NanoHat Motor.pdf]) | ||
*[Datasheet]([http://www.nxp.com/documents/data_sheet/PCA9685.pdf PCA9685 datasheet]) | *[Datasheet]([http://www.nxp.com/documents/data_sheet/PCA9685.pdf PCA9685 datasheet]) | ||
*[Datasheet]([http://wiki.friendlyarm.com/wiki/images/6/62/TB6612FNG_datasheet_en.pdf TB6612FNG datasheet]) | *[Datasheet]([http://wiki.friendlyarm.com/wiki/images/6/62/TB6612FNG_datasheet_en.pdf TB6612FNG datasheet]) | ||
+ | *[Dimension]([http://wiki.friendlyarm.com/wiki/images/f/f5/2.0mm_dip_4pin.jpg 2.0mm 4Pin PWM Steering Motor Connector Pin File in PDF]) | ||
+ | |||
+ | ==Update Log== | ||
+ | ===April-20-2017=== | ||
+ | * Released English Version |
Latest revision as of 01:59, 5 July 2018
Contents
1 Introduction
- 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
2.1 Diagram, Layout and Dimension
- 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_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:
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
- [Schematic](Schematic - NanoHat Motor.pdf)
- [Datasheet](PCA9685 datasheet)
- [Datasheet](TB6612FNG datasheet)
- [Dimension](2.0mm 4Pin PWM Steering Motor Connector Pin File in PDF)
6 Update Log
6.1 April-20-2017
- Released English Version