南孚iPhoneX专用南孚无线充电器的充电快吗?

树莓派操作系统彻底定制 - 树莓派论坛 -
中国电子技术论坛 -
最好最受欢迎电子论坛!
后使用快捷导航没有帐号?
Hot [直播]
树莓派操作系统彻底定制
08:55:43  
一、为什么要用树莓派
文章名字由来于网上有人对LFS项目的翻译,虽然感觉没有体现LFS的含义,但如果取《在树莓派进行LFS》这样的类似名字,估计很多人都不明白什么意思。所以先来科普一下什么是LFS。Linux From Scratch项目简称LFS,它提供具体的步骤、特定的补丁、必须的脚本,从而提供一个简便的创建Linux发行版的途径。简单来说提供了一个自己从网上下载所有源代码编译一个linux完整系统的指南。
为什么要在树莓派上编译?首先是学习,当然如果在pc机上LFS也一样可以通过LFS学习linux,但我没有在裸机上安装linux,如果运行虚拟机的话估计速读比树莓派也快不了多少。而且手头有树莓派啊,LFS需要长时间开机,树莓派可以安静的工作没有任何噪音困扰,你可以用你的pc做其它事情,这样多惬意。再有我在预装了树莓派的raspbian系统后感觉启动很慢,系统预装了很多我不需要的东西占用了大量的内存和TF卡空间,如果我想用树莓派做一个固定的用处,比如BT下载机,或者摄像机之类的,当然需要一个小巧,启动迅速的系统,所以需要定制。最后,我想我是喜欢树莓派吧。
在我刚开始想用树莓派进行LFS时,感觉是一项大工程,因为以前我用pc参照LFS手册进行LFS,感觉这是一项复杂和需要勇气的工作,而且对于是否可以在树莓派上进行LFS实在心里没底。直到我在网上找到了一个网站,知道国外有人已经进行了尝试并且编制了相关的脚本,沿着前人的步伐,我发现在树莓派上进行LFS不是一项困难的工作,甚至感觉so easy。我借用了pilfs网站的脚本,在此十分感谢pilfs网站的帮助。二、前提条件
需要一个树莓派及电源、键盘、鼠标、TF卡(16G)、U盘等附件,大概这是废话了,另外根据我的经历,在pi1上做LFS那是一件极其痛苦的事情(第一阶段需要50小时左右),所以建议在pi3上完成LFS,pi2是否可以我没测试过。
一台可以上网的pc。pc作为辅助功能必不可少,有很多事情需要在电脑上完成。另外我在运行LFS时是通过pc联机到树莓派,这样可以记录下所有屏幕日志方便查看编译过程是否有问题。 除了以上两点,你必须还要有足够的耐心和基本的linux知识。三、准备工作
首先你应该阅读LFS手册,这是你学习linux知识的绝佳机会,LFS官方网站。目前有人已经对LFS手册进行了翻译,建议参考: 6.2版本非systemd版本中文参考文档version 7.7-systemd systemd版本下载: 开源中文社区你同时也可以浏览一下pilfs网站的guide,该网站所指定的LFS指南在线版本
环境准备:安装raspbain
需要一张16G的TF卡作为LFS的环境,但先需要安装raspbain操作系统,我安装的版本是-raspbian-jessie,网上可以下载zip文件(或者我的百度云盘),然后解压之后是一个img文件。你可以用Win32DiskImager工具软件将img文件写入tf卡。有一个小问题,如果是用hdmi转vga的,可能无法正常显示,需要在写入img文件之后,用pc机插入tf卡,在boot分区的config.txt文件加上:
hdmi_force_hotplug=1config_hdmi_boost=4hdmi_group=2hdmi_mode=9hdmi_drive=2hdmi_ignore_edid=0xa5000080最后试试启动树莓派是否正常。
通过PUTTY联机树莓派
在pc机上安装putty软件。但是如何联机树莓派?我是用360wifi将pc作为一个ap热点,然后用树莓派去联接pc,这样的好处是不用任何开销而且设置简单,而且树莓派可以通过pc访问互联网,事实证明也很稳定。当然你也可以将树莓派直接联上可以上网的ap。当设置树莓派联上pc之后,启动putty试试是否正常,如果能正确联机,那么恭喜你已经迈出LFS的一小步了。此时可以配置树莓派启动到命令行就可以了(LFS过程不需要启动xwindow,这样可以节约宝贵的RAM空间,别告诉我你不会设置,请教度娘吧)另外别忘了设置putty将任何屏幕输出记录下来(putty软件的session/logging中All session output选项)。
3、下载LFS需要的软件包 我已经整理好了LFS所有需要的软件包,请到我的百度云盘下载(见附录)。将lfs_reselse下的sources全部下载下来,并复制到一个u盘上备用。将几个脚本文件从git服务器上下载下来,并拷贝到sources目录。
四、开始LFS好了,一切准备工作就绪,现在可以正式开始LFS了。创建目录和用户
启动树莓派,用putty联上,用root登录。先查看一下时间是否正确(date命令),在编译时时间非常重要,如果时间不对执行date –s 11/30/16(重要!)设置时间。 更新raspbain,确保树莓派能访问外网,有4个软件包需要更新:
sudo su apt-get update apt-get install bison gawk m4 texinfo建立相关目录
mkdir -pv /-p如果目录存在不报错 mkdir –v /lfs/sources chmod -v a+wt /lfs/sources mkdir -v /lfs/tools ln -sv /lfs/tools /&&;在根目录下建立链接 ;增加交换文件 dd if=/dev/zero of=/swapfile bs=1M count=512 mkswap /swapfile swapon -v /swapfile将u盘插入树莓派,将sources到/lfs/
mount /dev/sda1 /mnt cp -R /mnt/sources/* /lfs/sources添加lfs用户
groupadd lfs useradd -s /bin/bash -g lfs -m -k /dev/null lfs passwd lfs chown -v lfs /lfs/tools chown -v lfs /lfs/sources su – lfs export LFS=/lfs执行脚本ch5-build.sh
以lfs用户执行44set_env.sh,执行完之后退出lfs用户重新登录。确认一下环境变量$LFS(/mnt/lfs)和$LFS_TGT(armv7l-lfs-linux-gnueabihf)正确。
cd /lfs/sources ./4_4_set_env.sh exit su - lfs&&cd /lfs/sources ./ch5-build.sh
此过程大概有8个小时(树莓派1大概需要50小时,另外建议树莓派1在config.txt文件在加上gpu_mem=16,以最大化memory)。在结束之后,可以通过查看putty的截屏查看是否有错误。如果顺利通过,那么应该说已经成功了一大半了,后面的步骤应该不会遇到大的问题。编译完成的软件安装在/tools目录下,修改文件属性,以root用户执行:
exit chown -R root:root /lfs/tools进入chroot
以下开始已root身份执行命令,执行s6.2.sh 确认一下/mnt/lfs/dev/consul ,/mnt/lfs/dev/null是否生成
export LFS=/lfs cd /lfs/sources ./s6.2.sh ./S6.4_chroot.sh
进入chroot(bash s.6.4_chroot.sh),但需要root用户执行,否则失败。下面命令如果机器重启之后要先执行s6.2r.sh在chroot。
执行脚本ch6-build.sh
先执行s6.5_6.sh(生成相关目录、passwd、group文件)
cd /sources ./s6.5_6.sh exec /tools/bin/bash --login +h&&touch /var/log/{btmp,lastlog,wtmp}&&chgrp -v utmp /var/log/lastlog&&chmod -v 664 /var/log/lastlog&&chmod -v 600 /var/log/btmp ./ch6-build.sh
ch6-binuld.sh脚本大概执行有5个小时(在树莓派1上大概需要38小时)。最后有3个问题,这三个问题如果选择YES,则脚本会执行:
1,& & & & cp -rv /sources/firmware-master/hardfp/opt/vc /opt
2,& & & & cp -rv /sources/firmware-master/modules /lib
3,& & & & mount /dev/mmcblk0p1 /boot && cp -rv /sources/firmware-master/boot / && umount /
特别是第三步,会覆盖了原来tf卡上的启动文件,重新启动会以新的内核启动,建议原来的boot分区文件备份一份,以防止无法启动时在pc上重新复制。
清除无用内容及基本配置信息
清除调试信息及/tools目录,此时/tools目录已经不需要可以删除。当然如果你想再次LFS,可以备份/tools目录,这样下次第一阶段(ch5-binuld.sh)就不需要执行了。
logout cd /lfs/sources ./s6.71_chroot.sh /tools/bin/find /{,usr/}{bin,lib,sbin} -type f -exec /tools/bin/strip --strip-debug '{}' ';' rm -rf /tmp/* rm -rf /tools cd /sources ./s7.2_9.sh&&cp fstab /etc cd / rm -rf /sources
完成之后可以执行bash /lib/udev/init-net-rules.sh看是否正确,mount一下/sys是否已经mount。从现在开始如果重启了树莓派,进入chroot 环境执行(以root用户,别忘了sources目录还没删除的时候可以执行):
export LFS=/lfss6.2r.sh s6.71_crhoor准备启动
如果你已经走到这里的,那么应该恭喜你已经完成了LFS的99%,离完成LFS就差一步之遥了。下面的操作会删除原来的系统只保留编译出来的lfs目录,如果你怕误操作破坏tf卡上的内容,可以先备份一下(可以用Win32DiskImager,或者tar命令)。 以下步骤需要将TF卡取下,使用另外的linux系统进行操作。如果你有另外的树莓派系统盘,这时候可以插入另外一张TF卡启动树莓派,将编译有LFS那张TF卡用一个读卡器接入树莓派,然后执行:
mount /dev/sda2 /mnt cd /mnt shopt -s extglob rm -rf !(lfs) mv /mnt/lfs/* /mnt
如果在执行ch6-binuld.sh之后的第三个问题你回答了YES,那么这整个LFS已经完成了,你可以umount之后插入这张完成的TF卡试试启动(如果有HDMI转VGA,同样别忘了修改config.txt)。如果之前没有覆盖boot文件,可以将下载到的boot目录通过u盘复制到boot分区,命令参考如下:
mkdir /mnt/lfs mkdir /mnt/tmp mount /dev/sda1 /mnt/lfs mount /dev/sdb1 /mnt/tmp cp –R /mnt/tmp/sources/boot_lfs/* /mnt/lfs umount /mnt/tmp umount /mnt/lfs
到这里,恭喜你的定制树莓派操作系统完成了,系统预安装的软件参考LFS手册或者ch6-build.sh脚本。不过我故意遗留了一个问题,如何将此系统做成一个镜像文件?当然你可以用Win32DiskImager制作,但这样做出来的镜像文件大小是和你的TF卡容量一样大小的,而且以我的经历,16G的镜像文件要恢复还不是一件容易成功的事情。大家可以到pilfs网站上去查查制作一个1G镜像文件的方法。另外还有一个问题,就算1G镜像文件完成了,如果在一张TF卡上恢复了,恢复后的系统大小也是1G的,需要手工扩展分区到TF卡原来的大小,如何做?欢迎和我交流。附录本文相关文件的下载链接:1,关于我的百度云盘。 我没有合适的地方可以免费上传大文件,只能存放在百度云盘。 链接是pilfs_orig_rpi3_.tar.gz是已经编译好的lfs,是一个镜像文件,但恢复之后只有1g大小,需要resize。pilfs_orig_rpi1_.tar.gz是已经编译好的lfs,是一个镜像文件,但恢复之后只有1g大小,需要resize。pilfs_tools_rpi3_.tar.gz是编译的tools目录(基于rpi3),这样可以不用执行ch5-build.sh,直接进入第二遍编译pilfs_tools_rpi1_.tar.gz是编译的tools目录(基于rpi1),这样可以不用执行ch5-build.sh,直接进入第二遍编译-raspbian-jessie.zip是raspbian树莓派操作系统sources目录 所以编译使用的源代码软件包2,关于自己的脚本及本手册 本手册和脚本作为github的一个项目,放在/breezecloud/myPiLFS,可以使用 git clone git:///breezecloud/myPiLFS下载,也可以直接用浏览器3,关于我 喜欢折腾,财力有限;年纪不小,空闲不多;爱好甚广,精通寥寥。 邮箱:或者欢迎交流 欢迎加入我的个人公众号,本人以后所有的原创文章均会发布在此公众号,公众号可以通过搜索electronic_computer加入,或者扫描二维码加入。
5个问题&&&&&&&&1142个浏览
19个问题&&&&&&&&16266个浏览
32个问题&&&&&&&&6774个浏览
通过本次直播,你将学会:
1.如何快速实现传统硬件产品智能化
2.结合机智云智能硬件APP和MCU实操经验
3.在实际应用中需要注意规避哪些常见关键问题
4.掌握如何实现传统硬件连接互联网,快速实现产品智能化
即日起至6月15日,参与英蓓特NXP产品知识小测验,即有机会赢取最新系列开发板。特别奖SBC-EC9100开发板1套,幸运奖FRDM系列最新开发板(型号随机,共10套)。快来参加吧! >> 立即参加
Powered by入手树莓派将近一个月了,很折腾,许多资源不好找,也很乱。简单整理一下自己用到的东西,方便以后自己或别人继续折腾。
0. 操作系统下载
树莓派官方 Raspbian 系统下载:
或直接下载
最新版的 BT 种子。
还有一个选择是由国人制作的超级精简版,更低内存占用:
1. 系统安装
所谓“安装系统”其实不如说是“恢复”下载到的系统镜像到内存卡上,这个过程也没什么难度,就是看内存卡的速度,慢慢等而已。需要注意的是,市面上部分 4G 的内存卡,实际大小才 3.6G 多,会提示空间不足,所以还是直接购买 8G 吧,也差不了几块钱。
在 Windows 下可以使用 Win32 Disk Imager 进行镜像恢复,非常方便,也是树莓派官方推荐的方法。官方下载地址:
2. 通过 SSH 远程访问
老实说,我一直把树莓派定位为“一个扔在某个角落就可以自己跑得很欢的小电脑”,加上那仅有的两个 USB 口,一个插了 USB 无限网卡,另一个再拖个键盘或鼠标啥的,实在很不方便,那么最好还是能远程访问吧。
好在树莓派默认是有开启 SSH 的,但是我们系统刚安装,IP 还没设置,怎么找到它的 IP 地址呢?这时候就推荐使用另一个神器 PortScan 来找出我们的机器:
打开 PortScan 选择扫描范围,可以很方便的找出局域网中的其它机器,一般家庭中也没太多机器,找出树莓派是很容易的,如果是在公司,有很多机器的话,那么可以忽略那些有机器名的,然后剩下的一个一个尝试吧…
PortScan 下载地址:
3. ROOT 账号设置
如果你安装的是官方的 Raspbian 系统,那么默认的登录帐号为 pi 密码是 raspberry
为了方便折腾,建议第一时间启用 ROOT 账号吧~ 这个也很简单的,只需要执行一下两句命令即可:
// 设置 root 账号的密码,会让你输入两次新密码
sudo passwd root
// 启用 root 账号登录
sudo passwd --unlock root
执行完之后,用 reboot 命令重启就可以用 root 登录啦。
4. 扩展可用空间
第一次用 root 登录,会自动弹出树莓派的高级设置面板(以后也可以通过 raspi-config 命令进入):
选择第一项 Expand Filesystem 扩展 SD 卡上可用的空间,不然以后会有很多大软件,不能安装(提示空间不足,例如 mysql)。
扩展之后可以通过 df -h 命令看到效果~
5. 更换软件源(apt-get sources)
树莓派的服务器实在太太太太太太慢了!会导致你安装一个几M的东西都要等大半天!肿么办!
好在树莓派官方有提供一个镜像列表:
在里面找到了几个国内的镜像,经过几番尝试,觉得来自中科大的速度非常不错~ 咱们就换成中科大的吧,镜像主页:
根据教程,咱们来编辑 /etc/apt/sources.list 文件。这里推荐用 nano 命令编辑,舍得去弄什么 VIM 啦。命令如下:
nano /etc/apt/sources.list
进入编辑界面,删除原有的内容,粘贴中科大提供的内容,结果如下:
然后使用 Ctrl+O 保存文件,Ctrl+X 退出编辑器。
然后执行 apt-get update 命令更新软件列表。
6. 设置静态 IP 地址
回到刚刚第二点提到的,不知道 IP 地址的问题,咱们要给树莓派设置一个静态 IP,省得 IP 变换又要重新找机器。还是用 nano 来编辑网络接口文件:
nano /etc/network/interfaces
如果你要设置的是有线网卡的 IP 地址,那么把 eth0 的 dhcp 改成 static 然后在下一行追加 IP 信息,结果大概如下:
iface eth0 inet static
address <span style="color: #2.168.<span style="color: #.200 # 设定的静态IP地址
netmask <span style="color: #5.255.<span style="color: #5.0 # 网络掩码
gateway <span style="color: #2.168.<span style="color: #.1
如果你要设置的是无线网卡的,那么除了把 wlan0 的 dhcp 改成 static 之外,还需要填写无线网的名称和密码,编辑后的结果大概如下:
iface wlan0 inet static
wpa-ssid Your_Wifi_SSID
wpa-psk Your_Wifi_Password
address <span style="color: #2.168.<span style="color: #.200 # 设定的静态IP地址
netmask <span style="color: #5.255.<span style="color: #5.0 # 网络掩码
gateway <span style="color: #2.168.<span style="color: #.1
network <span style="color: #2.168.<span style="color: #.1
# 网络地址
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
▲ 注意注释掉最后一行
搞定之后,咱们用 poweroff 命令关掉树莓派,等到机器上的绿灯不闪了,把电源拔掉,再把网线拔掉,重新连接电源,稍等一会,看看是不是就通过无线网络的 IP 地址可以访问了。
至此,要折腾树莓派的几个准备工作都完成了,有了这些,以后折腾也更佳方便。
由于我当初手贱没有购买面驱动的 USB 网卡,买的是一个要自己编译驱动的,所以我折腾的东西还有很多,下次专门再来说说无线网卡驱动的事吧。
阅读(...) 评论()君,已阅读到文档的结尾了呢~~
基于树莓派的温度采集存储显示系统
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
基于树莓派的温度采集存储显示系统
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口基于树莓派的电梯彩屏显示系统设计
> 基于树莓派的电梯彩屏显示系统设计
基于树莓派的电梯彩屏显示系统设计
近年来,随着高层建筑数量的与日俱增,电梯的需求量也在增加。现阶段我们广泛使用的电梯都是基于LED点阵列的显示系统,显示状态信息比较简单,显示方式比较单调。此外,现在的一些电梯里的广告机,虽然改善了电梯轿内的乘坐环境,良好的广告效果也给商家带来了不小的经济效益。但是这种显示装置没有和电梯控制系统融为一体,只是单纯的视频播放而已。本文引用地址:为了使显示和电梯控制系统相融合,打造舒适的乘坐环境,针对现有的电梯系统提出一种由单片机完成不同厂商适配、由ARM/X86统一显示的双核处理方法。该方法中ARM/X86处理器专注于统一通用格式电梯状态信息解码、楼层图片切换或视频播放,从而提高整个系统的实时性与可靠性。针对不同厂商的电梯通信协议,只需要更改单片机的编解码程序便可使整个系统重新工作。Raspberry
Pi(中文名为&&)是一款由英国的基金会所开发,以低价硬件及自由软件为学生计算机编程教育而设计的卡片式电脑。其配备一枚700
MHz博通出产的ARM架构BCM2835处理器,256 MB内存(B型已升级到512 MB内存)的微型电脑主板。Raspberry
Pi以SD卡为内存硬盘,主板周围有两个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口。以上部件全部整合在一张仅比信用卡稍大的主板上,具备所有PC的基本功能。其操作系统采用开源的Linux系统,比如Debian、Arch
Linux,自带的Iceweasel、KOffice等软件能够满足基本的网络浏览、文字处理以及计算机学习的需要。Qt是一个1991年由奇趣科技开发的跨平台C++图形用户界面应用程序开发框架。Qt具有优良的跨平台特性,Qt支持下列操作系统:Microsoft
Windows 95/98、Microsoft Windows NT、Linux、Solaris、SunOS、HP-UX、Digital
UNIX(OSF/1、Tru64)、FreeBSD、BSD/OS,SCO、AIX、OS390、QNX等等。1 系统整体设计1.1 系统框架本系统的硬件部分主要由接口转接板和显示板组成,系统框图如图1所示。图1 系统框图1.2 子系统功能介绍1.2.1 接口转接板接收RS-485/CAN总线上的电梯通信协议,并完成协议的解析;承载温度传感设备和挂在I2C总线上的时钟电路,供显示板读取温度和时间信息,完成用户按键的检测与编码。1.2.2 显示板接收接口转接板译码后的电梯数据;读取温度和时间信息;实现界面应用程序。2 接口转接板子系统设计接口转接板子系统硬件主要包括ATmega8单片机、DS18B20温度传感器、PCF8563时钟芯片、MAX485芯片等。其接口转接板框图如图2所示。图2 接口转接板框图电梯的通信协议有多种,本文以NICE3000通信协议为例实现本系统。2.1 NICE3000通信协议的通信设定通信方式:RS-485标准、异步、半双工。数据格式:1位起始位、8位数据位、1位停止位、无校验位。通信波特率:9600 bps。通信地址定义:广播地址为0,外接节点地址为1~31(外招板拨码开关确定),地址同时也表示外招所在楼层;显示板只是接收显示,地址设定为0(拨码),无需通信回复。数据校验:采用两位异或校验。数据帧分类:共有两种形式,其中广播帧用于外招显示内容的信息,不需要返回帧,另外还有一种是普通帧,主要完成主控制板与外招之间的控制信息交换。2.2 帧格式数据帧采用固定长度,5个字节,结构为帧头、用户数据、帧尾。帧头:包括1个字节地址,即主控制板发送给外招的标识,从机(外招)根据帧头判断本机是否响应当前通信。如果地址是广播地址,则从机接收信息,但是不用返回。用户数据包括:数据2个字节,根据发送方向(主到从或是从到主)以及帧形式定义不同的用户数据。帧尾:包括2个字节校验数据,先发低位,后发高位。电梯系统接收到的数据帧不能直接显示,需要根据数据帧格式,对数据进行校验,然后解析,最后提取有用的数据给显示系统进行显示。本系统的操作如下:3 显示板子系统设计对于彩屏电梯显示系统而言,液晶屏的显示效果对客户的影响是至关重要的。因此,应用层的程序开发相当重要。考虑到图形界面控件的丰富程度、漂亮程度以及开源免费的持续升级等因素,选择了QTE/Qt5图形开发平台。显示板子系统的架构如图3所示。图3 子系统的架构图3.1 Qt的移植3.1.1 Qt的移植条件Qt for Embedded
Linux是用于嵌入式Linux所支持设备的领先应用程序架构。Qt可以在任何支持Linux的平台上运行,创建具有独特用户体验的具备高效内存效率的设备和应用程序。Qt的移植需要满足以下几个基本条件:①开发环境:Linux内核2.4或更高;GCC版本3.3或更高;用于MIPS,其GCC版本3.4或更高。②占用存储空间:存储空间取决于配置,压缩后为1.7~4.1 MB;未压缩为3.6&9.0MB。③硬件平台:易于载入任何支持带C++编译器和帧缓冲器驱动Linux驱动的处理器;支持ARM、x86、MIPS、PowerPC。④Raspberry Pi(B型)满足以上条件,故可以进行Qt5的移植。3.1.2 Qt5的移植准备在做Qt5移植之前首先做以下移植准备:①建立一个文件夹/home/opt来存放编译所需的源码和文件。②下载Raspbian Wheezy镜像,本文采用-wheezy-raspbian.img。③下载工具链,本文采用gcc-4.7-linaro-rpi-gnueabihf。④下载交叉编译工具,本文采用cross-compile-tools。⑤下载Qt5源码。⑥下载qtjsbackend库的应用补丁。然后建立文件夹mnt/rasp-pi-rootfs,将Raspbian
Wheezy镜像挂载到此文件夹下,并进入Qt5源码文件夹执行初始化代码init-repository。3.1.3 Qt5的编译首先进入cross-compile-tools文件夹执行一个脚本fixQualifiedLibraryPaths来修改链接和库路径。然后编译qtbase,配置如下:接着再编译其他模块如qtimageformats、qtsvg、qtjsbackend、qtseript、qtxmlpatterns、qtdeelarative、qtsensors、qt3d、qtgraphica1effects、qtjsondb、qtlocation、qtdocgallery等。当在镜像中编译安装完所有的模块之后,将其复制到SDcard。3.1.4 安装Qt Creator从网站http://qt-project.org/wiki/Crcate#QtonPi_App_SDK上下载Qt
Crcator安装包,并在Linux系统下对其进行安装配置。由于Qt5需要Qtcreator2.6.0以上的版本作为支持,本文采用2.6.1版本。3.2 外围部件读取程序本系统通过读取挂在I2C总线上的实时时钟芯片来获取时间信息,通过温度传感设备获取温度信息。本文以读取实时时钟芯片的数据为例,操作如下:这些设备的操作通过C代码来实现,然后将其编译成动态链接库的形式,供界面应用程序调用。3.3 界面应用程序的实现图形界面开发是Qt/Embedded开发的一个重点,本系统的界面结构包括楼层信息区域、运行方向区域、图片显示区域、温度时间显示区域、状态显示区域、本系统涉及到视图的跳转、数据的传递、控件的使用、布局和事件处理等等。其程序流程如图4所示。图4 程序流程图整个显示界面通过MainWindow类实现,该类继承自QmainWindow,而各显示区域均通过继承QWidget类来实现。如图3所示,通过定时器1每隔30
ms调用Main-Window的槽函数checkLiftStstus()来获取由C函数open_uart485(int data[])解析的串口数据。connect(timer,SIGNAL(timeout()),this,SLOT(checkLiftStatus()));//获取电梯信息将解析后的信息传递给楼层信息区域,运行方向区域,状态显示区域分别进行显示。indicatorDirection(data[0]); //方向信息indicatorState(data[1]); //状态信息liftCurrentFloorNum(data[2]);//楼层信息图片视频显示区域是在类ShowController中实现的,当系统需要显示图片时,该类调用ImageView类的对象负责图片显示;当系统需要显示视频时,该类调用PlayerWidget类的对象负责处理视频播放。ImageView类和PlayerWidget类也是继承自Qwidget。ImageView类负责获取SD卡上的图片实例,将其显示在正确的位置,并通过定时器2实现图片的切换。PlayerWidget类负责启动MPlayer,并控制视频显示到正确的位置。温度时间显示区域是在TimeView类和temperatureView类中实现。TimeView类的成员函数getCurrentTime()通过调用动态链接库的C函数getpcf8563Time(pcf8563_time*pTime)来读取挂在I2C总线上的时钟芯片的时钟信息,并将其显示在正确的区域上。temperatureView类主要用于显示温度数据,而真正获取温度数据的过程是在TemperatureHandler类中实现的。开辟一个新的线程,通过定时器3每隔500
ms在槽函数readData()中调用一次动态链接库的C函数therm_dsl8b20(long*date)来读取温度传感器的数据。temperatureThread=new QThread(this); //开辟新线程connect(temptimer,SIGNAL(timeout()),this,SLOT(readData())); //读取温度4 系统调试结果根据模拟的NICE3000通信协议、外围部件的操作及Qt5的图形界面编程,实现了,其硬件设备图和调试结果图如图5、图6所示。图5 硬件设备图图6 调试结果结语本文对基于Raspberry
Pi并利用Qt5编程来实现的进行了阐述。首先介绍了整个系统的构架;接着在接口转接板子系统中介绍了NICE3000通信协议,并对其进行解析;然后在显示板子系统中介绍了外围部件的操作,以读取实时时钟芯片的数据为例;最后根据解析、读取的数据利用Qt5编程实现了。本文对传统的LED点阵列电梯显示系统提供了有效的改进方法,改变了其单调的显示方式,成本低廉,更具商业价值。
分享给小伙伴们:
我来说两句……
最新技术贴
微信公众号二
微信公众号一

我要回帖

更多关于 南孚电池能充电吗 的文章

 

随机推荐