Difference between revisions of "Template:FriendlyCoreAllwinnerH3/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
(测试红外接收)
(updated by API)
Line 1: Line 1:
===连接DVP摄像头模块(CAM500B)===
 
CAM500B是一款500万像素摄像头模块,以DVP并行信号输出,详细信息请参考[[Matrix - CAM500B/zh|Matirx-CAM500B]]。<br>
 
连接开发板和CAM500B,然后上电启动系统,连接网络,以root用户登录终端并编译运行mjpg-streamer:
 
<syntaxhighlight lang="bash">
 
$ cd /root/mjpg-streamer
 
$ make
 
$ ./start.sh
 
</syntaxhighlight>
 
mjpg-streamer是一个开源的网络视频流服务器,在板子上成功运行mjpg-streamer后会打印下列信息:
 
<syntaxhighlight lang="bash">
 
i: Using V4L2 device.: /dev/video0
 
i: Desired Resolution: 1280 x 720
 
i: Frames Per Second.: 30
 
i: Format............: YUV
 
i: JPEG Quality......: 90
 
o: www-folder-path...: ./www/
 
o: HTTP TCP port.....: 8080
 
o: username:password.: disabled
 
o: commands..........: enabled
 
</syntaxhighlight>
 
  
假设开发板的IP地址为192.168.1.230,在PC的浏览器中输入 192.168.1.230:8080 就能浏览摄像头采集的画面了,效果如下:<br>
+
{{#switch: {{{1}}}
[[File:mjpg-streamer-cam500a.png|frameless|400px|mjpg-streamer-cam500a]] <br>
+
| NanoPi-M1 = {{FriendlyCoreAllwinner-DVPCam/zh|NanoPi-M1}}
mjpg-streamer是用libjpeg对摄像头数据进行软编码,Linux-4.x内核的ROM目前并不支持视频硬编码, 但是如果使用Linux-3.x内核的ROM的话, 则可以使用ffmpeg对摄像头数据进行硬编码,这样能大大降低CPU的占用率并提高编码速度:
+
| NanoPi-M1-Plus = {{FriendlyCoreAllwinner-DVPCam/zh|NanoPi-M1-Plus}}
<syntaxhighlight lang="bash">
+
| NanoPi-NEO-Air =  {{FriendlyCoreAllwinner-DVPCam/zh|NanoPi-NEO-Air}}
$ ffmpeg -t 30 -f v4l2 -channel 0 -video_size 1280x720 -i /dev/video0 -pix_fmt nv12 -r 30 -b:v 64k -c:v cedrus264 test.mp4
+
}}
</syntaxhighlight>
+
默认会录制30秒的视频,输入q能终止录制。录制完成后会在当前目录生成一个名为test.mp4的视频文件,可将其拷贝到PC上进行播放验证。
+
  
 
===连接USB摄像头模块(FA-CAM202)===
 
===连接USB摄像头模块(FA-CAM202)===

Revision as of 05:30, 9 April 2018


1 连接USB摄像头模块(FA-CAM202)

FA-CAM202是一款200万像素的USB摄像头模块, 连接测试USB摄像头的方法请参考 <连接DVP摄像头模块(CAM500B)> 章节。
请自行修改start.sh, 确保使用正确的/dev/videoX节点, 下列命令可以用来确定FA-CAM202摄像头的video节点:

$ apt-get install v4l-utils
$ v4l2-ctl -d /dev/video1 -D
Driver Info (not using libv4l2):
        Driver name   : uvcvideo
        Card type     : HC 3358+2100: HC 3358+2100
        Bus info      : usb-1c1b000.usb-1
	...

2 命令行查看CPU工作温度

在串口终端执行如下命令,可以快速地获取CPU的当前温度和运行频率等信息:

$ cpu_freq
CPU0 online=1 temp=26581 governor=ondemand cur_freq=480000
CPU1 online=1 temp=26581 governor=ondemand cur_freq=480000
CPU2 online=1 temp=26581 governor=ondemand cur_freq=480000
CPU3 online=1 temp=26581 governor=ondemand cur_freq=480000

上述信息表示当前有4个CPU核心在线, 温度均约为26.5摄氏度, 运行的策略均为根据需求来决定运行频率, 当前的运行频率均为480MHz。

3 通过Rpi-Monitor查看系统状态

系统里已经集成了Rpi-Monitor,该服务允许用户在通过浏览器查看开发板系统状态。
假设开发板的IP地址为192.168.1.230,在PC的浏览器中输入下述地址:

192.168.1.230:8888

可以进入如下页面:
rpi-monitor
用户可以非常方便地查看到系统负载、CPU的频率和温度、可用内存、SD卡容量等信息。

4 测试看门狗

使用下列命令可以测试看门狗功能:

$ cd /root/demo/watchdog/
$ gcc watchdog_demo.c -o watchdog_demo
$ ./watchdog_demo /dev/watchdog0 10
Set timeout: 10 seconds
Get timeout: 10 seconds
System will reboot in 10 second

系统将在10秒之后重启。

5 测试红外接收

注意: 此章节仅适用于带有红外接收的板子(如NanoPi M1 / NanoPi M1 Plus等), 其他板子(如NanoPi NEO / NanoPi NEO Air等)则需要自行在GPIOL11引脚处接上红外接收器。
红外接收功能默认是关闭的, 可以通过npi-config使能:

$ npi-config
    6 Advanced Options     Configure advanced settings
        A8 IR              Enable/Disable IR
            ir Enable/Disable ir[enabled]

重启系统, 然后使用下列命令测试红外接收:

$ apt-get install ir-keytable
$ echo "+rc-5 +nec +rc-6 +jvc +sony +rc-5-sz +sanyo +sharp +mce_kbd +xmp" > /sys/class/rc/rc0/protocols   # 使能紅外协议
$ ir-keytable -t
Testing events. Please, press CTRL-C to abort.

ir-keytable -t用于检查是否有接收到红外信号, 使用任意遥控器发送按键信息给红外接收器, 可以看到类似下列信息:

1522404275.767215: event type EV_MSC(0x04): scancode = 0xe0e43
1522404275.767215: event type EV_SYN(0x00).
1522404278.911267: event type EV_MSC(0x04): scancode = 0xe0e42
1522404278.911267: event type EV_SYN(0x00).

6 通过WiringNP测试GPIO

wiringPi库最早是由Gordon Henderson所编写并维护的一个用C语言写成的类库,除了GPIO库,还包括了I2C库、SPI库、UART库和软件PWM库等,由于wiringPi的API函数和arduino非常相似,这也使得它广受欢迎。 wiringPi库除了提供wiringPi类库及其头文件外,还提供了一个命令行工具gpio:可以用来设置和读写GPIO管脚,以方便在Shell脚本中控制GPIO管脚。
我们在FriendlyCore系统中集成了这个工具以便客户测试GPIO管脚。详细信息请参看 WiringNP

7 运行Qt示例程序

执行以下命令:

$ sudo /opt/QtE-Demo/run.sh

运行结果如下,这是一个开源的QtDemo:
K2-QtE