|
|
Line 1: |
Line 1: |
− | [[Matrix - Compact Kit B/zh|English]] | + | [[NanoPC-T2/zh|查看中文]] |
− | | + | |
− | ==介绍==
| + | |
− | [[File:Matrix-Compact_Kit.png|thumb|]]
| + | |
− | *Matrix - Compact Kit是一款紧凑、简洁的多功能开发者套件,该套件由一系列常用电气元件经过精心构建而成,色彩斑斓,资源丰富,包括了按键、LED、无源蜂鸣器、ADC、指南针、温度传感器、红外接收器、TFT等14种资源。该套件可以直接通过40pin排母和NanoPi、NanoPi2无缝对接,也适用于40Pin GPIO口的树莓派系列产品。除了丰富的板上资源以外,您还可以通过扩展的IO口外接模块,基于本产品开发出功能丰富的应用。
| + | |
− | ==资源==
| + | |
− | Matrix - Compact Kit集成的元件如下<br>
| + | |
− | * 0.9 TFT LCD
| + | |
− | | + | |
− | * 轻触开关3个
| + | |
− | | + | |
− | * 5mm LED4个
| + | |
− | | + | |
− | * 无源蜂鸣器
| + | |
− | | + | |
− | * ADC
| + | |
− | | + | |
− | * 滑动变阻器
| + | |
− | | + | |
− | * 40pin排母
| + | |
− | | + | |
− | * 4pin排针---I2C接口
| + | |
− | | + | |
− | * 4pin排针---UART接口
| + | |
− | | + | |
− | * 3pin双排针---3.3V和GND
| + | |
− | | + | |
− | * 18B20温度传感器
| + | |
− | | + | |
− | * 红外接收器
| + | |
− | | + | |
− | * 3pin排座10个---3个模拟IO,7个数字IO(其中两个可复用为PWM,四个复用为SPI 接口)
| + | |
− | | + | |
− | * 指南针
| + | |
− | | + | |
− | ==特性==
| + | |
− | * PCB尺寸(mm):
| + | |
− | [[File:Matrix-Compact_Kit_PCB.png|frameless|400px|]]
| + | |
− | [[File:Matrix-Compact_Kit.png |thumb|300px|Matrix-Compact_Kit接口布局]]
| + | |
− | * '''40pin排母GPIO管脚定义'''
| + | |
− | ::{| class="wikitable"
| + | |
− | |-
| + | |
− | |Pin# || Name ||Pin# || Name
| + | |
− | |-
| + | |
− | |1 || VDD_SYS_3.3V ||2 || VDD_5V
| + | |
− | |-
| + | |
− | |3 || I2C0_SDA ||4 || VDD_5V
| + | |
− | |-
| + | |
− | |5 || I2C0_SCL ||6 || DGND
| + | |
− | |-
| + | |
− | |7 || GPIOB28 ||8 || UART3_TXD
| + | |
− | |-
| + | |
− | |9 || DGND ||10 || UART3_RXD
| + | |
− | |-
| + | |
− | |11 || GPIOB29 ||12 || GPIOB26
| + | |
− | |-
| + | |
− | |13 || GPIOB30 ||14 || DGND
| + | |
− | |-
| + | |
− | |15 || GPIOB31 ||16 || PWM2
| + | |
− | |-
| + | |
− | |17 || VDD_SYS_3.3V ||18 || GPIOB27
| + | |
− | |-
| + | |
− | |19 || SPI0_MOSI ||20 || DGND
| + | |
− | |-
| + | |
− | |21 || SPI0_MISO ||22 || PWM0
| + | |
− | |-
| + | |
− | |23 || SPI0_CLK ||24 || SPI0_CS
| + | |
− | |-
| + | |
− | |25 || DGND ||26 || PWM1
| + | |
− | |-
| + | |
− | |27 || I2C1_SDA ||28 || I2C1_SCL
| + | |
− | |-
| + | |
− | |29 || GPIOC8 ||30 || DGND
| + | |
− | |-
| + | |
− | |31 || SPI2_CLK ||32 || GPIOC28
| + | |
− | |-
| + | |
− | |33 || SPI2_CS ||34 || DGND
| + | |
− | |-
| + | |
− | |35 || SPI2_MOSI ||36 || GPIOC7
| + | |
− | |-
| + | |
− | |37 || SPI2_MISO ||38 || ALIVEGPIO2
| + | |
− | |-
| + | |
− | |39 || DGND ||40 || ALIVEGPIO3
| + | |
− | |}
| + | |
− | | + | |
− | [[File:Matrix-Compact_Kit3*10.png |thumb|300px|Matrix-Compact_Kit接口布局]]
| + | |
− | * '''30pin排针管脚定义'''
| + | |
− | ::{| class="wikitable"
| + | |
− | |-
| + | |
− | |Pin# || Name ||Pin# || Name ||Pin# || Name
| + | |
− | |-
| + | |
− | |1 || GND ||2 || VDD_5V ||3 ||A1_PCF
| + | |
− | |-
| + | |
− | |4 || GND ||5 || VDD_5V ||6 ||A2_PCF
| + | |
− | |-
| + | |
− | |7 || GND ||8 || VDD_5V ||9 ||A3_PCF
| + | |
− | |-
| + | |
− | |10 || GND ||11 || VDD_5V ||12 ||D1_Pi11
| + | |
− | |-
| + | |
− | |13 || GND ||14 || VDD_5V ||15 ||D2_Pi26
| + | |
− | |-
| + | |
− | |16 || GND ||17 || VDD_5V ||18 ||D3_Pi16
| + | |
− | |-
| + | |
− | |19 || GND ||20 || VDD_5V ||21 ||D4_Pi19
| + | |
− | |-
| + | |
− | |22 || GND ||23 || VDD_5V ||24 ||D5_Pi21
| + | |
− | |-
| + | |
− | |25 || GND ||26 || VDD_5V ||27 ||D6_Pi23
| + | |
− | |-
| + | |
− | |28 || GND ||29 || VDD_5V ||30 ||D7_Pi24
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | [[File:18B20 and IRR.png |thumb|300px|18B20和红外接收接口布局]]
| + | |
− | * '''18B20和红外接收管脚定义'''
| + | |
− | ::{| class="wikitable"
| + | |
− | |-
| + | |
− | |Pin# || Name ||Pin# || Name ||Pin# || Name
| + | |
− | |-
| + | |
− | |1 || VDD_5V ||2 || GND ||3 || DATA
| + | |
− | |-
| + | |
− | |1 || DATA ||2 || GND ||3 || VDD_5V
| + | |
− | |-
| + | |
− | |}
| + | |
− | | + | |
− | ==下载Matrix源码==
| + | |
− | Matrix配件相关的代码是完全开源的,统一由一个仓库进行管理:https://github.com/friendlyarm/matrix.git <br>
| + | |
− | 该仓库里不同的分支代表着Matrix配件所支持的不同开发板。<br>
| + | |
− | * nanopi分支用于支持NanoPi;
| + | |
− | * nanopi2分支用于支持NanoPi 2;
| + | |
− | * tiny4412分支用于支持Tiny4412;
| + | |
− | * raspberrypi分支用于支持RaspberryPi;
| + | |
− | | + | |
− | 在主机PC上安装git,以Ubuntu14.04为例
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ sudo apt-get install git
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | 克隆Matrix配件代码仓库
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ git clone https://github.com/friendlyarm/matrix.git
| + | |
− | </syntaxhighlight>
| + | |
− | 克隆完成后会得到一个名为matrix的目录,里面存放着所有Matrix配件的代码。
| + | |
− | | + | |
− | ==与NanoPi 2连接使用==
| + | |
− | ===硬件连接===
| + | |
− | 参考下图连接模块Matrix-Compact_Kit和NanoPi 2:<br>
| + | |
− | [[File:Matrix-Compact_Kit_nanopi2.jpg|frameless|600px|Matrix-Compact_Kit_nanopi2]]
| + | |
− | | + | |
− | ===编译测试程序===
| + | |
− | 进入Matrix代码仓库,切换到nanopi2分支
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd matrix
| + | |
− | $ git checkout nanopi2
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | 编译Matrix配件代码
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ make CROSS_COMPILE=arm-linux- clean
| + | |
− | $ make CROSS_COMPILE=arm-linux-
| + | |
− | $ make CROSS_COMPILE=arm-linux- install
| + | |
− | </syntaxhighlight>
| + | |
− | 注意:请确保你的主机PC当前使用的交叉编译器为NanoPi 2配套的arm-linux-gcc-4.9.3。<br>
| + | |
− | 编译成功后库文件位于install/lib目录下,测试程序位于install/usr/bin目录下,硬件驱动模块位于modules目录。<br>
| + | |
− | 硬件驱动模块位于modules目录下,对应的驱动源码都包含在在NanoPi 2的Linux内核仓库里:https://github.com/friendlyarm/linux-3.4.y.git <br>
| + | |
− | | + | |
− | ===拷贝测试程序===
| + | |
− | 将带有Debian系统的SD卡插入一台运行Linux的电脑,可以挂载SD卡上的boot和rootfs分区。<br>
| + | |
− | 假设rootfs分区的挂载路径为/media/rootfs,执行以下命令将Matrix的硬件驱动、库文件和测试程序拷贝到NanoPi 2的文件系统上。<br>
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cp modules /media/rootfs/ -r
| + | |
− | $ cp install/lib/* /media/rootfs/lib/ -d
| + | |
− | $ cp install/usr/bin/* /media/rootfs/usr/bin/
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | ===测试LCD显示===
| + | |
− | 将SD卡重新插入NanoPi 2,上电启动,在Debian的shell终端中执行以下命令。<br>
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd /modules
| + | |
− | $ insmod fbtft_device.ko name=matrix-st7735s gpios=dc:58,reset:63,cs:59
| + | |
− | $ sudo FRAMEBUFFER=/dev/fb-st7735s startx &
| + | |
− | </syntaxhighlight>
| + | |
− | fbtft_device是LCD驱动,成功加载驱动后,可以看到LCD被清屏。<br>
| + | |
− | startx命令会将1寸屏作为桌面显示设备,运行效果如下:<br>
| + | |
− | [[File:matrix-cpt_kit_result1.png|frameless|600px|matrix-cpt_kit_result_lcd]]
| + | |
− | | + | |
− | ===控制LED===
| + | |
− | {| class="wikitable"
| + | |
− | |-
| + | |
− | |LED || CPU GPIO || Linux索引号 || 物理索引号
| + | |
− | |-
| + | |
− | |红色LED1 || GPIOC10 || 74 || 33
| + | |
− | |-
| + | |
− | |绿色LED2 || GPIOC9 || 73 || 31
| + | |
− | |-
| + | |
− | |蓝色LED3 || GPIOC11 || 75 || 37
| + | |
− | |-
| + | |
− | |黄色LED4 || GPIOC12 || 76 || 35
| + | |
− | |}
| + | |
− | 以LED1为例,执行以下命令控制LED:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd /sys/class/gpio/
| + | |
− | $ echo 74 > export
| + | |
− | $ echo out > gpio74/direction
| + | |
− | $ echo 1 > gpio74/value
| + | |
− | </syntaxhighlight>
| + | |
− | 1表示点亮LED1,0表示熄灭LED1。
| + | |
− | | + | |
− | ===读按键值===
| + | |
− | {| class="wikitable"
| + | |
− | |-
| + | |
− | |按键 || CPU GPIO || Linux索引号 || 物理索引号
| + | |
− | |-
| + | |
− | |KEY1 || GPIOC7 || 71 || 36
| + | |
− | |-
| + | |
− | |KEY2 || ALIVEGPIO2 || 162 || 38
| + | |
− | |-
| + | |
− | |KEY3 || ALIVEGPIO3 || 163 || 40
| + | |
− | |}
| + | |
− | 以KEY1为例,执行以下命令读取按键值:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd /sys/class/gpio/
| + | |
− | $ echo 71 > export
| + | |
− | $ echo in > gpio71/direction
| + | |
− | $ cat gpio71/value
| + | |
− | </syntaxhighlight>
| + | |
− | 当KEY1按下时value=0,KEY1弹起时value=1。
| + | |
− | | + | |
− | ===测试AD转换===
| + | |
− | 执行以下命令获得Channel0的AD转换值:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd /modules
| + | |
− | $ insmod pcf8591.ko
| + | |
− | $ matrix-adc
| + | |
− | </syntaxhighlight>
| + | |
− | 通过旋转可调电阻可以改变AD转换值,运行效果如下:<br>
| + | |
− | [[File:matrix-cpt_kit_result2.png|frameless|600px|matrix-cpt_kit_result_ad]]
| + | |
− | | + | |
− | ===测试指南针===
| + | |
− | 执行以下命令获得当前方向:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ matrix-compass
| + | |
− | </syntaxhighlight>
| + | |
− | 通过改变开发板的朝向可以获得不同的方向值,运行效果如下:<br>
| + | |
− | [[File:matrix-cpt_kit_result3.png|frameless|600px|matrix-cpt_kit_result_cps]]
| + | |
− | | + | |
− | ===测试温度传感器===
| + | |
− | 参考下图连接模块Matrix-Compact_Kit和温度传感器DS18B20:<br>
| + | |
− | [[File:Matrix-Compact_Kit_ds18b20.jpg|frameless|600px|Matrix-Compact_Kit_ds18b20]]
| + | |
− | | + | |
− | 执行以下命令操作温度传感器:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd /modules
| + | |
− | $ insmod w1-gpio.ko
| + | |
− | $ insmod w1_gpio_board gpio=72
| + | |
− | $ matrix-temp_sensor
| + | |
− | </syntaxhighlight>
| + | |
− | gpio=72表示使用引脚GPIOC8,72是该引脚在Linux里的索引号。<br>
| + | |
− | 运行效果如下:<br>
| + | |
− | [[File:matrix-temperature_sensor_result.png|frameless|600px|matrix-temperature_sensor_result]]
| + | |
− | | + | |
− | ===测试红外接收头===
| + | |
− | 参考下图连接模块Matrix-Compact_Kit和红外接收头VS1833B:<br>
| + | |
− | [[File:Matrix-Compact_Kit_vs1833b.jpg|frameless|600px|Matrix-Compact_Kit_vs1833b]]
| + | |
− | | + | |
− | 执行以下命令操作红外接收头:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd /modules
| + | |
− | $ insmod matrix_ir_recv.ko gpio=92
| + | |
− | </syntaxhighlight>
| + | |
− | gpio=92表示使用引脚GPIOC28,92是该引脚在Linux里的索引号。<br>
| + | |
− | 成功加载驱动后,会在/dev/input/目录下生成一个event设备节点,这里假设生成的设备节点为event1。<br>
| + | |
− | | + | |
− | 开源软件input-utils可以读取event设备的数据,它的使用方法如下:<br>
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ apt-get install input-utils
| + | |
− | $ input-events 1
| + | |
− | </syntaxhighlight>
| + | |
− | 1表示读设备节点event1。<br>
| + | |
− | | + | |
− | 用一个普通的遥控器往模块发送数据,可看到运行效果如下:<br>
| + | |
− | [[File:matrix-ir_receiver_result.png|frameless|600px|matrix-ir_receiver_result]]
| + | |
− | | + | |
− | ===通过Python控制===
| + | |
− | 使用的Python版本为2.7.9。<br>
| + | |
− | 在NanoPi2上直接克隆Matrix配件Python相关的代码仓库
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ git clone https://github.com/friendlyarm/matrix-python.git
| + | |
− | </syntaxhighlight>
| + | |
− | 克隆完成后会得到一个名为matrix-python的目录。
| + | |
− | | + | |
− | 控制LED:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd matrix-python/Matrix.GPIO
| + | |
− | $ python setup.py install
| + | |
− | $ python test/matrix_output.py 33
| + | |
− | </syntaxhighlight>
| + | |
− | 可以看到红色LED闪烁了一下。
| + | |
− | | + | |
− | 读按键KEY1:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd matrix-python/Matrix.GPIO
| + | |
− | $ python setup.py install
| + | |
− | $ python test/matrix_input.py 36
| + | |
− | </syntaxhighlight>
| + | |
− | 当KEY1按下时value=0,KEY1弹起时value=1。
| + | |
− | | + | |
− | 测试AD转换:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd matrix-python/modules
| + | |
− | $ insmod pcf8591.ko
| + | |
− | $ cd ../Matrix.pcf8591
| + | |
− | $ python setup.py install
| + | |
− | $ python test/matrix_adc.py
| + | |
− | </syntaxhighlight>
| + | |
− | 通过旋转可调电阻可以改变AD转换值。
| + | |
− | | + | |
− | 测试指南针:
| + | |
− | <syntaxhighlight lang="bash">
| + | |
− | $ cd matrix-python/Matrix.I2C
| + | |
− | $ python setup.py install
| + | |
− | $ python test/matrix_compass.py
| + | |
− | </syntaxhighlight>
| + | |
− | 通过改变开发板的朝向可以获得不同的方向值。
| + | |
− | | + | |
− | | + | |
− | ==与NanoPi连接使用==
| + | |
− | | + | |
− | ==与Tiny4412连接使用==
| + | |
− | | + | |
− | ==与RaspberryPi连接使用==
| + | |
− | | + | |
− | ==与Arduino连接使用==
| + | |
− | | + | |
− | ==相关资料==
| + | |
− | *[Schematic]()
| + | |