本帖最后由 mars4zhu 于 2014-8-20 15:52 编辑
体验国产开源硬件——Banana pi免费试用赠送申请书
(1)申请理由
一直以来都学习使用MCU,都是一些比较简单的程序代码,很想学习系统性的嵌入式知识,Linux系统和Android移动应用开发。
曾经使用过BeagleBone,并开发过很多有趣的小项目,本次结合正在学习的Android移动开发,想开发一个使用BananaPi作为Android手机智能配件的项目。
该项目的目的是使用BananaPi的USB Host接口,与Android的USB连接,然后通过调用Android系统的AOAP协议(Android Open Accessory Protocol,Android系统开放式配件协议,见source.android.com/accessories/),使Banana Pi作为Android手机的一个配件,然后在BananaPi上增加如LED、传感器等硬件,利用Android手机进行控制与信息显示。
(2)学习计划;
时间
| 时长
| 内容
| 预期目的
| 8月25日——9月5日
| 10天
| 熟悉Banana Pi的现有软硬件结构,特别是linux驱动层的IO读写,实现常规C语言控制IO、Peripheral,并将LED、温度传感器、光线传感器等接入Banana Pi,采用C控制这些外设。
| 掌握Banana Pi上的驱动编程,并用C代码控制外部硬件,
| 9月5日——9月10日
| 5天
| 移植libusb到Banana Pi的linux系统上,完成libusb的API功能测试与工作正常。
| Libusb可正常运行在Banana Pi。
| 9月10日——9月20日
| ~10天
| 定义Android手机与Banana Pi的通讯数据格式,通过AOAP协议,完成Android手机与Banana Pi的相互通讯。
| Banana Pi可以与Android手机通讯
| 9月20日——10月7日
| ~15天
| 在前面基础上,完成手机APK与Banana Pi的基于AOAP的数据通讯,开发利用手机实现.
Bonus:国庆节with香蕉派专题研究学习
| 可通过手机显示Banana PI上外加的传感器如温度、光线传感器,同时通过手机控制LED显示
|
本项目具体参考技术特点见附录1。
(3)预计成果;
本项目需要移植libusb到BPi的linux系统,并结合linux-adk(http://android.serverbox.ch/?p=262)项目,遵循android的aoap规范,开发一套可以跟android智能手机通讯的开放式配件(Open Accessory),在Android的显示、触控等操作与香蕉派的各类外设、IO等联系在一起,形成一套可二次开发的智能设备。
因此,本项目有实现如下功能点的预计成果: 1. 成功移植libusb到Banana Pi的linux系统上。
2. 通过libusb实现Banana Pi与Android智能手机的相互通讯。
3. 在以上基础上,开发Android的APK程序和Banana Pi的程序,通过Android手机可以控制Banana Pi完成LED流水灯,同时BPi采集温度传感、光线强度传感等传感器数据,并发送到手机上显示。
本项目预期效果示意图如下:
预期项目效果图
(4)计划使用bananaPi做的项目
除了上述申请项目外,本人还有以前做过的许多有趣的项目,希望可以移植到BananaPI上,参见附录2.
附录1:将linux系统作为支持android智能手机配件相关参考设计以下两个是网络上比较流行的,采用libusb开发的,支持AndroidOpen Accessory Protocol协议的配件
附1.1 第一个采用的是libusb的Python接口,已经移植到树莓派的参考,具有非常直接的借鉴意义。
Turn your(Linux-) Desktop / Arduino Yún / Raspberry Pi into an Android Accessory: How to use the AndroidAccessory Protocol with pyusb http://www.tuicool.com/articles/EZJRFf
附1.2 采用C语言调用libusb,实现将linux电脑支持Android智能手机配件。
Turn your Linuxcomputer into a huge Android USB Accessory http://android.serverbox.ch/?p=262
附录2:本人已开展过的项目附录2.1 Windows-ADK
本人用C语言调用libusb-win32(libusb在windows操作系统上的移植,官方网站http://sourceforge.net/projects/libusb-win32/)完全独立开发的“windows-adk”,即将windows电脑转为一台android手机的配件。
附录2.2 采用BeagleBone运行linux系统以及本地/交叉编译
See BeagleboneRun Linux 本人原创首发http://bbs.eeworld.com.cn/thread-349040-1-1.html
1、 Boot(启动阶段)..................................................................................................................... 2
2、 Uname -a (系统版本信息)..................................................................................................... 3
3、 cat/proc/cpuinfo(CPU信息)............................................................................................... 3
4、 cat/proc/meminfo(内存信息).............................................................................................. 3
5、 cat /proc/cmdline(命令行终端信息).................................................................................... 4
6、 cat/etc/angstrom-build-info(系统编译信息)....................................................................... 5
7、 cat/etc/mage-version-info(系统image版本信息).............................................................. 5
8、 opkglist-installed(软件安装列表)......................................................................................... 5
9、 mount (文件系统挂载信息)................................................................................................. 39
10、 vim(vim编辑器)................................................................................................................ 39
11、 cat/proc/diskstats(磁盘信息)......................................................................................... 40
12、 cat/proc/pagetypeinfo(虚拟内存页面文件信息)............................................................ 40
13、 cat/proc/devices(设备信息).......................................................................................... 41
14、 cat/proc/crypto(加密方法)............................................................................................ 42
15、 cat/proc/vmstat(虚拟内存统计信息).............................................................................. 44
16、 cat/proc/uptime(从启动开始已运行的时间).................................................................... 45
17、 cat/proc/timer_list(timer列表)....................................................................................... 45
18、 cat/proc/swaps(交换分区信息-无)................................................................................. 47
19、 cat/proc/stat(linux运行统计)......................................................................................... 47
20、 cat/proc/softirqs(软件中断)........................................................................................... 47
21、 cat/proc/slabinfo(slab, kernel里面文件系统的一个东西, 忘了干啥的, 总之很重要) 48
22、 cat/proc/iomem(IO内存空间)......................................................................................... 54
23、 cat/proc/interrupts(中断)............................................................................................... 56
24、 cat/proc/buddyinfo(buddy,忘了干啥的, kernel里面一个很重要的东西)................. 56
25、 cat/proc/consoles(控制台)............................................................................................ 57
26、 cat/proc/execdomains(运行空间, kernel还是user?)............................................... 57
27、 cat/proc/filesystems(支持的文件系统, ntfs很不幸).................................................... 57
28、 cat/proc/key-users(忘了干啥的).................................................................................... 58
29、 cat /proc/partitions(存储介质分区信息).......................................................................... 58
30、 cat/proc/schedstat(进程调度统计)................................................................................ 58
31、 top(cpu占有率最高的进程).............................................................................................. 58
32、 cpufreq-info(cpu频率信息).............................................................................................. 59
33、 cpufreq-set-f 275MHz(设置cpu为275MHz)................................................................. 60
34、 cat/proc/sys/kernel/poweroff_cmd(本系统关机的命令).............................................. 60
35、 poweroff(关机!).................................................................................................................. 60
附录2.3 AM335x-beaglebone开发环境之ubuntu10.04安装至VMware
AM335x-beaglebone开发环境之ubuntu10.04安装至VMware
本人原创首发http://bbs.eeworld.com.cn/thread-356559-1-1.html
附录2.4 采用node.js,在浏览器可以控制LED的亮与灭。
beagblebone之node.js的LED流水灯设计、网页控制LED灯(初步)
本人原创首发http://bbs.eeworld.com.cn/thread-352593-1-1.html
摘要:
1、前提: 已建立PC与beagblebone之间的网络连接
2、效果描述:
采用beaglebone的node.js开发环境,即在浏览器输入http://IP_ADDR_OF_BB:3000,参照自带的blinkled程序,做一个将beagblebone的USR0-LED通过网页刷新来控制亮和灭,
3、代码
如下,注释已经很明显
4、效果
即在另一个浏览器窗口输入http://IP_ADDR_OF_BB:8000,刷新一次,则LED-USR0则改变一次亮灭。
5、亮点和进一步创新点
在网页上实现LED的控制。
进一步可采取node.js的一些功能比如(nowjs的server与client的通讯功能,在网页上动态控制LED、显示模拟输入或数字输入量。
AM335x-beaglebone开发环境之ubuntu10.04安装至VMware.pdf
(497.26 KB, 下载次数: 0)
|