创客神器NanoPi
直播中

gjianw217

11年用户 688经验值
擅长:嵌入式技术 控制/MCU RF/无线
私信 关注
[问答]

【NanoPi2试用体验】功能篇(1)硬件扩展(NanoPi2的Led入门)

本帖最后由 gjianw217 于 2015-12-16 11:27 编辑

1、【NanoPi2试用体验】基础篇(1)开箱赏板
https://bbs.elecfans.com/jishu_532487_1_1.html
2、【NanoPi2试用体验】基础篇(2)看图识板
https://bbs.elecfans.com/jishu_532497_1_1.html
3、【NanoPi2试用体验】基础篇(3)初体验(安装软件,烧写镜像,系统登录
https://bbs.elecfans.com/jishu_533286_1_1.html
4、【NanoPi2试用体验】基础篇(4)环境搭建,编译内核,更新固件
https://bbs.elecfans.com/jishu_533599_1_1.html



        经过前面四篇的基础篇,已经对NanoPi2进行了一个全面的认识,但光有这些是远远不够的,作为创客神器,功能的扩展是少不了的,好在,友善为入门的创客们准备了几个常用的硬件模块,并对源码全部开源,具体的模块参考资源,见本帖子的最下面附录篇。
        学习编程语言,helloworld是入门;学习硬件编程,led是入门。接下来,就抛砖引玉,用led来实现NanoPi2的入门。

一、下载源码
1 克隆源码
  1. $ git://github.com/friendlyARM/matrix.git

PS:硬件相关的代码是完全开源的,统一由一个仓库进行管理,即matrix,该仓库里不同的分支代表着matrix配件所支持的不同开发板,主要由NanoPi开发板、NanoPi2开发板、tiny4412开发板和RaspberryPi,即:nanopi分支用于支持NanoPi、nanopi2分支用于支持NanoPi 2、tiny4412分支用于支持Tiny4412、raspberrypi分支用于支持RaspberryPi
QQ截图20151215205213.png


2 切换分支
克隆完成后会得到一个名为matrix的目录,里面存放着所有Matrix配件的代码。进入Matrix代码仓库,切换到nanopi2分支
  1. $ cd matrix
  2. $ git checkout nanopi2

QQ截图20151215205347.png


二、编译Matrix配件代码
  1. $ make CROSS_COMPILE=arm-linux- clean
  2. $ make CROSS_COMPILE=arm-linux-
  3. $ make CROSS_COMPILE=arm-linux- install

注意:请确保你的主机PC当前使用的交叉编译器为NanoPi 2配套。编译成功后库文件位于install/lib目录下,而测试程序则位于install/usr/bin目录下,模块Matrix-LED对应的测试程序为matrix-led。
QQ截图20151215205707.png


三、移植
1 使用USB读卡器,将带有Debian系统的SD卡插入PC上,挂载到Ubuntu下,可以看到boot和rootfs分区
2 执行以下命令将刚才编译好的matrix的硬件驱动、库文件和测试程序拷贝到NanoPi 2的文件系统上。
  1. $ sudo cp modules /media/rabbit/rootfs/ -r
  2. $ sudo cp install/lib/* /media/rabbit/rootfs/lib/ -d
  3. $ sudo cp install/usr/bin/* /media/rabbit/rootfs/usr/bin/

QQ截图20151215211648.png


四、测试程序
1 、硬件连接
        友善提供的Led模块,采用3针排针的形式,即V接电源,G接地,S信号通过一个三极管放大控制LED的导通或关闭。可以向S输出静态的高低电平信号,也可以输出变化的PWM信号,信号电平可以是3.3V或5V。输出高电平时LED以最大亮度发光,低电平就完全熄灭,可变占空比的PWM信号可以调节发光的亮度。
Led03.png

        由于本人暂时还没有相对应的模块,故只能通过单个led来模拟该功能。不过在连接之前,需要知道NanoPi2的对应引脚,具体有如下对应关系:
QQ截图20151215213830.png


2、运行程序
将SD卡重新插入NanoPi 2,上电启动,在Debian的shell终端中执行以下命令运行模块Matrix-LED的测试程序。
  1. $ matrix-led

QQ截图20151215214602.png


3、最后的效果
hhh.gif


五、附录
NanoPi 2硬件扩展开发资料大全
01- 按键模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Button/zh
02- LED模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_LED/zh
03- 模数转换:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Analog_to_Digital_Converter/zh
04- 继电器模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Relay/zh
05- 三轴重力加速度模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_3-Axis_Digital_Accelerometer
06- 三轴数字指南针模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_3-Axis_Digital_Compass/zh
07- 温度传感器模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Temperature_Sensor
08- 温湿度传感器模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Temperature_and_Humidity_Sensor
09- 无源蜂鸣器模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Buzzer/zh
10- 摇杆模块: Joystick
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Joystick
11- I2C(PCF8574)+LCD1602:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_I2C_LCD1602_Keypad
12- 声音传感器:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Sound_Sensor/zh
13- 超声波模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Ultrasonic_Ranger/zh
14- RTC时钟模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_RTC/zh
15- IIC LCD1602 keypad:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_I2C_LCD1602_Keypad/zh
16- 气压模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Pressure_and_Temperature_Sensor
17- 旋转编码模块:
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_Rotary_Encoder/zh
18- SPI TFT液晶屏
http://wiki.friendlyarm.com/wiki/index.php/Matrix_-_SPI_TFT/zh








回帖(5)

愚姬嗳霸王

2015-12-16 09:30:08
感谢楼主分享!
举报

英雄孤寂

2015-12-17 14:04:47
好用心的分享
举报

bruce_helen

2015-12-23 07:29:53
楼主,你好,你用的linux版本是3.4.x的吗?我测试DS18B20时,内核模块装载不了,需要安装最新的内核才能使用
举报

gjianw217

2015-12-23 09:57:54
是的,我用的是3.4.x内核版本,我测试过,我的内核模块可以加载,建议你:
1)要么镜像和内核模块都使用官方的,
2)要么镜像和内核模块都使用自己编译的,且使用相同的编译器编译内核和内核模块。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分