当前位置:首页 > 嵌入式 > 开发板
[导读]相比于前代的树莓派,2B将原来的高通BCM2835更新到了BCM2836,增大RAM到1G,速度提高了6倍。因为处理器架构从ARM7TMDI变成了4核A7,所以能跑标准的操作系统,比如安卓或者ubuntu或者win10。

树莓派2B是创客手里的神器,没玩过的都不好意思说自己是创客。这款开发板到底怎么样?一起来看。

1. 树莓派2B升级了什么

提到树莓派,大家都知道是什么东西,这里就不做背景介绍了,感兴趣的,可以参考树莓派官网介绍 https://www.raspberrypi.org/products/raspberry-pi-2-model-b/

这次拿到的是树莓派2B板子,主要升级了内存和CPU

下面是官方网站展示的2B的性能参数:

• A 900MHz quad-core ARM Cortex-A7 CPU

• 1GB RAM

• 4 USB ports

• 40 GPIO pins

• Full HDMI port

• Ethernet port

• Combined 3.5mm audio jack and composite video

• Camera interface (CSI)

• Display interface (DSI)

• Micro SD card slot

• VideoCore IV 3D graphics core

相比于前代的树莓派,2B采用TF卡,尺寸更小,也去掉了不常用的RCA接口(俗称AV接口),完全采用HDMI接口

这么改,最大的好处就是树莓派形状变得很整齐,不再像原来那样突起一部分

从处理器来说,将原来的高通BCM2835更新到了BCM2836,增大RAM到1G,估计你对这些也不太感冒,只要知道速度提高了6倍就好了

6倍,6倍,6倍,重要的事情说三遍

因为处理器架构从ARM7TMDI变成了4核A7,所以能跑标准的操作系统,比如安卓或者ubuntu或者win10

大致看了win10烧录内核的步骤,看到“首先你需要一台运行win10的笔记本”,看到这里就没继续看了,哪位有兴趣的可以根据微软IOT团队官方博客来实战

https://www.raspberrypi.org/blog/windows-10-for-iot/

https://dev.windows.com/zh-cn/iot

对了,树莓派2B支持DSI显示接口和CSI相机接口,从而可以直接高速视频输入和屏幕输出

这个有什么用呢?理论上来说,你可以拿树莓派做一个平板电脑,而理论终究是理论,就算真的做出来了估计体验也不会很好。

2. 无图无真相

一个图片胜千言,show me the images now

树莓派正面

树莓派反面

树莓派合照

树莓派大眼睛

那个神秘的大眼睛是什么???

红外夜视摄像头,准备拿来做opencv人脸识别和视频监控,更多信息暂时保密

树莓派2B的简单介绍到这里,接下来介绍烧录系统,更新内核,跑opencv做人脸识别以及教大家充分利用树莓派SD卡的容量。

3. 编译树莓派内核

拿到树莓派2B后,刚好手里有个360 Wi-Fi网卡(MT7601的芯片),就准备放树莓派2B上使用

插上去不识别,一搜才知道要重新编译内核,编译驱动什么的

原来没折腾过linux的编译,所以趁此机会,好好学习一下

期间查了网上很多资料,尝试,然后各种错误,最后还是官网资料英文资料最靠谱

STEP1 搭建ubuntu环境

这个比较简单,请参考网上教程,完成ubuntu基本环境的搭建

STEP2 搭建交叉编译环境

编译内核,可以在树莓派2B上进行,也可以在PC主机上进行编译,因为PC主机内存大,CPU性能高,所以一般都是在PC上进行

这里就引入了一个名词“交叉编译环境

其实,刚听说交叉编译时,以为是多么高大上的技术,后来发现,就是在PC上安装工具,为CPU编译出可执行文件

我们一直以来用MDK,IAR开发STM32,AVR,也算是交叉编译了,,,哈哈

这里不做过多解释

树莓派2B官方为我们提供了对应的编译工具

官方推荐用git来下载,命令如下

但实际下载时,git的速度实在难以恭维,建议直接用浏览器去github页面点击”Down as zip”下载

特别注意:下载完成后,注意检查下载包是否完整,不然在编译时会出现一堆莫名其妙的错误

下载完成后,将tools解压到某一个目录(XXX)下,那么tools的可执行目录为

接下来,我们将这个路径添加到PATH环境变量中

这里有一个小插曲,因为我用的是普通用户,添加路径到.bashrc文件中后,编译源码的时候,提示没有系统权限,所以又加了sudo来提升权限

但是仍然编译出错,提示找不到gcc和ld工具,找了半天原因,发现

1)下载的tools压缩包不完整,丢失了一些文件,所以重新下载了tools

2)普通用户的.bashrc和超级用户的.bashrc不在同一个目录,即便是把PATH添加到/etc/profile中也不能,仍然会提示超级用户找不到gcc之类的错误

解决方法就是先通过sudo su来切换为超级用户,然后把PATH添加到root的.bashrc文件中

添加方法如下

1. 打开root/.bashrc

2. 在最后一行,添加export PATH=$PATH:XXX/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin

添加完成后,注销超级用户,然后重新切换为超级用户,在shell下输入arm-linux-gnueabihf-gcc -v来验证PATH变量是否生效[!--empirenews.page--]

STEP3 下载内核源码

到git上下载源码

还是那句话,git速度太慢,建议网页直接下载,但注意检查文件完整性

事后证明,很多错误,都是因为下载的源代码不完整导致的

下载后,随意放一个目录下,将目录名改为linux

STEP4 编译内核

进入linux目录,输入下面的命令

树莓派1代

树莓派2代

然后就是漫长的编译时间,在mac下,大概编译了一个小时左右

如果你电脑是多核的,可以在make 命令中增加-jn进行多线程编译

原则上,n是你处理器个数多1.5倍,比如我是4核电脑,就可以-j6

编译完成后的安装过程,请参考INSTALL DIRECTLY ONTO THE SD

CARD

最后,当我编译完成后,突然发现树莓派4.1.y内核已经默认支持了我的360wifi 2代,所以就没有继续编译网卡驱动了

^_^

4. 安装opencv

一直对opencv比较好奇,所以就尝试着在树莓派2B上面编译安装了opencv,参考了网上不少资料,各种折腾,最终搞定

最大的体会是要有耐心,装opencv折腾了2天多,下文主要记录安装步骤和注意事项

树莓派系统4.1.7

开始折腾

首先参考了这个 http://www.pyimagesearch.com/2015/02/23/install-opencv-and-python-on-your-raspberry-pi-2-and-b/

文章,老外讲如何在树莓派上面利用opencv操纵CSI接口的摄像头,他用的是2.7版本的python和2.4版本的opencv,刚开始进行很顺利

到第二步的时候,找不到libjpeg8-dev libtiff4-dev这两个源,提示可以用libjpeg-dev libtiff5-dev来替换,替换就替换吧,以为没事儿呢,结果到最后编译时,提示找不到libtiff4-dev的库文件,编译失败,,,,,

又卸载了各种安装包,参考官网教程安装了oepncv3.0和相关的库,这里就不贴步骤了,请参考http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html

注意一点,在下面步骤之后

下载的两个目录文件,要合并到同一个目录中,比如source目录,然后在source同级目录下建立build目录,然后按照官方的编译步骤,一步步来进行

这些步骤耗时比较长,可以通过PC用迅雷下载好,然后scp拷贝到树莓派中,进行编译

消耗的大致时间,请参考资料1中的耗时,还是比较准确的

编译完成后,install进行安装

然后通过编译读取图片的例子,参考C语言版本的 http://blog.csdn.net/moc062066/article/details/6312216

编译完成后,记得terminal ssh

无法执行这个文件或者执行后看不到窗口,需要进入桌面环境来打开,如果你直接有一个显示器,那就可以直接运行,显示出来图片

没有的话,可以用VNC来远程显示桌面,不过记得要用realvnc的viewer和server,网上流行的tightvncserver会导致显示时出现RAND错误

当你按照步骤,执行完,opencv环境就搭建完毕

5. 充分使用树莓派SD卡容量

在编译opencv的时候,出现内存不够的情况,/root使用率100%,导致编译错误,所以需要拓展SD卡容量

google了一下,发现树莓派在默认情况下,仅仅使用了SD卡的4G容量,剩下的空间,属于空白分区,完全没有利用起来

所以,我们可以通过df命令,来调整linux分区的size

操作步骤

1. 重新树莓派,进入命令行页面

2. 登陆树莓派,用户名pi,密码raspberry

3. sudo su

切换至超级用户

4. df -h

显示出当前分区的状态和使用率

5. 输入fdisk /dev/mmcblk0 加载SD卡

6. p[!--empirenews.page--]打印当前分区

你应该会看到三个分区(mmcblk0, mmcblk0p1, mmcblk0p2),现在把分区2的信息写下来(/dev/mmcblk0p2)

我主要记录了开始扇区(122880)和结束扇区(8447999)的数值

7. 按d开始删除分区

8. 系统提示输入删除分区号,输入2

9. 按n新建分区,然后依次输入p, 2

10. 接下来输入原来记录的2扇区开始号(122880),记得替换成你自己的数字

11. 按w保持配置

12. 输入reboot重启树莓派

13. 输入sudo resize2fs /dev/mmcblk0p2 更新系统

14. 输入df -h看看,是不是已经完全使用了剩余空间

6. something about BCM2709 and BCM2836

玩树莓派和编译内核的时候,经常发现树莓派官方和内核开发者对CPU的称呼有两种

· BCM2708/BCM2709

· BCM2835/BCM2836

内核开发者喜欢称之为BCM2708/9,而树莓派和博通则喜欢称为BCM2835/6

google了很多资料,发现

· BCM2708/9 属于处理器的家族

· BCM2835/6 属于处理的具体型号

git内核开发有相关讨论

摘录部分如下

网上的更进一步讨论,请访问why-is-the-cpu-sometimes-referred-to-as-bcm2708-sometimes-bcm2835

另外,从wiki得知,博通联合树莓派已经完全开放BCM2835这颗CPU的资料,所以网上说的没有资料的情况,可以忽略

https://en.wikipedia.org/wiki/VideoCore#Table_of_SoCs_adopting_VideoCore_SIP_blocks

树莓派BCM2835/6资料链接

1. https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2835/README.md

2. https://www.raspberrypi.org/documentation/hardware/raspberrypi/bcm2836/README.md

对于博通BCM设计架构,他是将GPU作为MCU来使用,在启动时,加载bootloader,初始化RAM,外设等,然后启动ARM内核,开始全速运行状态

这样设计的好处是,ARM11或者ARM-A内核,完全作为运算核心;GPU处理视频和外设,系统可以无缝升级CPU,而对外设部分影响很小

就像这次的BCM升级到BCM2836,外设驱动,仅仅需要修改一下GPIO和DMA的偏移量,现有驱动代码,可以继续使用

安装系统后,可以输入 sudo cat /proc/cpuinfo 可以查看当前CPU的信息

输入sudo cat /proc/iomem,可以查看当前IO映射的信息,也就是GPU内部的信息。(代码此处略,可参见http://cedar-renjun.github.io/2015/10/20/something-about-BCM2709-and-BCM2836/)

7. 树莓派性能体验

试用了一个星期,最大的体验是树莓派2B性能有显著提高,6X绝对不是夸大

主要体现在

  • • 编译opencv的时候,速度有很大提升
  • • 播放1080P的高清视频,硬解码,CPU占用率在2%左右,可以忽略不计

前几代树莓派产品,据说跑视觉算法的时候,总是卡顿,树莓派2B在这方面有极大的提升,适合做视觉和图像处理相关的任务

8. 体验步骤

因为我手头没有HDMI-VGA转接线,所以就用了VNC远程桌面来玩树莓派了,大致步骤包括

  • 1. 安装串口工具
  • 2. 连接树莓派串口,通过串口控制树莓派
  • 3. 连接无线网卡(360Wi-Fi),配置开机自动上网
  • 4. 通过SSH连接树莓派
  • 5. 如果你有屏幕和HDMI接口线,请连接树莓派;如果没有,则用realvnc在笔记本上显示远程桌面
  • 6. 编译源码,安装opencv
  • 7. 编写opencv测试程序
  • 8. 使用500W摄像头进行动作捕捉(进行中)

注意事项:

  • 1. 树莓派2B的IO变为40Pin,但前26pin仍然兼容原来的树莓派,详细的GPIO列表,请参考http://www.element14.com/community/docs/DOC-73950/l/raspberry-pi-2-model-b-gpio-40-pin-block-pinout
  • 2. 最近的树莓派内核(4.0以上),直接支持360Wi-Fi 2代(MT7601芯片),所以不需要进行重新编译内核和驱动;网上很多教程都是以3.x版本的内核为案例来讲述编译Wi-Fi网卡驱动和内核,请有取舍的参考
  • 3. SSH连接,mac下可以直接用terminal,windows下可以用secure CRT
  • 4. 在编译opencv的时候,使用树莓派来wget或者git下载源码,可能会很慢;建议用PC机下载,然后通过scp命令来复制到树莓派主机上,实测Wi-Fi数据速率可以达到6M/S
  • 5. 编译opencv时,请参考opencv的官网3.0版本编译安装指南,网上教程很多是以opencv 2.4版本来介绍,因为新内核不在支持libtif4版本的库,所以会导致后面编译失败,,,切记,切记,我因为这个点,折腾了两天时间[!--empirenews.page--]
  • 6. 安装VNC远程桌面时,请尽量使用realvnc server和viewer,网上很多人用tightvnc server,实际测试中,这个VNC会导致显示UI界面时,出现RANDER错误
  • 7. 在编译opencv时,会因为内存不够导致编译错误,显示4G内存完全用完,无法继续编译;解决方案就是重新调整linux扇区,来完全使用SD卡的8G内存,详情请参考http://cedar-renjun.github.io/2015/10/11/resize-raspberry-sd-volume/
  • 8. 播放1080P视频时,请使用omxplayer,这个播放器专门优化过,CPU占用率非常低,可以忽略不计,,,性能突出

最后

总体而言,树莓派2B的性能,有了显著的提升,可以跑各种操作系统,跑视觉和图像处理,值得购买。

相关资料链接:

官方树莓派Lunix资料:https://www.raspberrypi.org/documentation/linux/

官方内核编译:https://www.raspberrypi.org/documentation/linux/kernel/building.md

官方无线连接:https://www.raspberrypi.org/documentation/configuration/wireless/wireless-cli.md

http://ray.dotnetage.com/posts/2015-5-15/rpi-resize-sd/

http://m.blog.csdn.net/blog/lichao_ustc/46740443

http://www.rs-online.com/designspark/electronics/knowledge-item/raspberry-pi---%E8%B0%83%E6%95%B4%E4%BD%A0%E7%9A%84sd%E5%8D%A1%E5%88%86%E5%89%B2%E5%8C%BA%E7%9A%84%E5%A4%A7%E5%B0%8F

http://www.computerhope.com/unix/udf.htm

http://www.cnblogs.com/peida/archive/2012/12/07/2806483.html

install-opencv-and-python-on-your-raspberry-pi-2-and-b

opencv官网:http://opencv.org/

官方编译指导:http://docs.opencv.org/3.0-last-rst/doc/tutorials/introduction/linux_install/linux_install.html

Opencv例程显示图片:http://docs.opencv.org/2.4/doc/tutorials/introduction/display_image/display_image.html

 

——————本文为21ic原创,未经许可不得转载——————

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭