《BeagleBone开发指南》——1.1 平台介绍

简介:

本节书摘来异步社区《BeagleBone开发指南》一书中的第1章,第1.1节,作者:【爱】Derek Molloy(莫洛伊),更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.1 平台介绍

BeagleBone是紧凑的、低成本的、开源的Linux计算平台,它连接了顶层软件和底层电路,可用于构建复杂的应用开发。它利用了Linux强大和免费的优点,对于原型设计和产品设计都是理想的平台,并且结合了输入/输出引脚和总线的直接访问特性,可以使主板与电子元件,模块和USB设备进行连接。BeagleBone平台的特征如下所示。

功能强大,它包含了一个执行速度为20亿条指令/秒的处理器。

低成本,可用的成本仅仅在45~55美元。

提供了许多电子设备的标准接口。

低功耗,运行时功耗在1W(空闲时)与2.3W(峰值)之间。

可通过使用子板和USB设备进行扩展。

有大量的创新者和爱好者论坛支持。

它是一种开源硬件,能够支持开源软件工具和应用。

BeagleBone可运行Linux操作系统,这意味着你能够使用很多开源软件库并直接应用它进行开发。开源软件驱动程序的可用性也使你能直接使用这些设备,例如项目中用到的USB摄影机、键盘和Wi-Fi适配器,可以不必再另行开发驱动源码库。因此,你可以获得由开源社区所建立的这些综合源码库;另外,重要的是要记住这些源码是没有任何保证的。如果出现问题,你必须依靠社区的热心网友来帮忙解决。当然,你也可以自己修复这些问题并给公众提供可行的解决方案。

BeagleBone平台是由印制电路板(printed circuit board,PCB)上集成的高性能微处理器和扩展软件组成的系统。物理PCB不是一个完整的产品,而是一种原型参考设计,你可以根据这个原型设计构建一个完整的产品。BeagleBone是一种开源硬件平台,这意味着你能够下载和使用BeagleBone硬件原理图并且在其上直接设计自己的产品。事实上,尽管BeagleBone平台非常引人注目,但它并没有完全显示出德州仪器公司Sitara AM335x微处理器的所有特征和接口。

BeagleBone另一个引人注目的特征是它的功能可通过子板进行扩展,这些子板称为capes,它们通过P8和P9插头(图1-1所示的两个黑色2×23连接器)与BeagleBone相连。你可以设计自己的子板并且使用这些插头安全地将子板插到BeagleBone上。另外,也可以购买许多可用的子板来帮助你扩展自己的BeagleBone平台的功能。本章结尾将给出一些实例进行介绍。

31c757329012b5d14df050e0c4f6b466488c238a

BeagleBone的印制电路板(PCB)是由Gerald Coley设计的,他是BeagleBoard.org基金会的一个共同创始人。主板和几个它的子板是由CircuitCo(www.circuitco.com)公司生产的。BeagleBone Black的PCB布局也是由CircuitCo设计的。最近,Element14(www.element14.com)已经开始生产一种BeagleBone Black与BeagleBoard.org的联合版本。因此,当你购买一个BeagleBone开发板时,你不能直接从BeagleBoard.org购买,BeagleBoard.org对于社区的开发者和用户来说都是一个聚焦平台。

注意
 

CircuitCo在tiny.cc/ebb101提供了一个关于BeagleBone Black生产过程的短视频。它强调了设备的复杂性和它的生产制造工作。

1.1.1 谁该使用BeagleBone

任何希望转变工程概念为真实交互的电子产品、项目、原型设计或工艺品的人应该考虑使用BeagleBone。也就是说,集成顶层软件和底层电路并不是一件容易的工作。然而,实施中的困难主要依赖于项目要求的复杂性级别。

BeagleBone社区正努力保证BeagleBone平台可以走进任何对BeagleBone感兴趣的人们的项目中,无论是学生、制造者、艺术家或者爱好者都可以使用。BeagleBone的开发工具和软件开发环境,例如Jason Kridner 的BoneScript脚本库(Kridner是BeagleBoard.org的一位创始人和本书的技术编辑)和Cloud9集成开发环境(integrated devetopment environment,IDE),能够使用户在Web浏览器中直接编写和创建代码,Web浏览器还具有控制电子硬件的能力。BoneScript脚本将在第2章中介绍。像Blockly(code.google.com/p/blockly)和Snap(snap.berkeley.edu)的开发已经被潜在地集成到BoneScript脚本中,以进一步提高新用户的可访问性。

对于高级用户,具有一定电子或计算机知识的用户,BeagleBone平台能够额外开发和定制以满足特殊的项目需求。不过,这种定制不是件简单的事:你可能是一个电子专家,但是顶层的软件编程和Linux操作系统可能会使你感到困难。或者,你可能是一个编程高手,但是你从没接通过LED(发光二极管)!本书的目的在于迎合各类用户的需求,不管你先前的经验水平如何,本书都能够提供给每种读者足够的Linux、电子和软件方面的知识内容,以确保你可以开发出自己的产品。

1.1.2 何时使用BeagleBone

BeagleBone所集成的顶层软件和底层电子硬件可被完美地用于开发任何类型的项目。无论你是想要构建一个自动家庭管理系统、机器人、智能显示、传感器网络、自动售货机或者是互联网连接工作,BeagleBone都具有这样的处理能力来完成你想要设计的任何嵌入式设备。

BeagleBone比其他传统的嵌入式系统(例如Arduino、PIC 和AVR微控制器)体现出的主要优点是它采用了Linux操作系统。例如,如果你想使用BeagleBone建立一个家庭自动化系统并且决定想使某些信息在互联网上可用,你可以简单地安装Apache 网络服务器。为了获取或者共享信息,你可以使用服务器脚本或者自己喜欢的编程语言来与家庭中的自动化系统进行交互。另外,你的项目应该允许安全的远程Shell访问。在那种情况下,你可以通过使用简单的Linux命令sudo apt-get install sshd(这些命令在第2章给出)来安装一个安全的Shell(SSH)服务器。这可能会节省你开发工作的时间。另外,你可以很欣慰地知道同样的软件正安全地运行在全世界的上百万台机器上。

Linux对许多USB外部设备和适配器提供了设备驱动支持。可以使你的摄像机、Wi-Fi适配器和其他低成本用户外设直接连接到平台上,而不需要复杂或者昂贵的软件驱动的开发。

1.1.3 何时你不该使用BeagleBone

Linux操作系统不适合用于实时或者预见性处理方面的设计。它的内核不是基于优先权的,也就是说一旦处理器开始执行内核代码,则无法中断。如果是这样将会存在一些问题,例如,你希望每百万分之一秒精确地对传感器采样一次。如果在精确的时间内进行采样并且内核又在忙于一个不同的任务,那么内核将不能被中断。因此,在默认状态下,对于实时系统的应用,BeagleBone不是一个理想的平台。Linux的实时版本是可用的,但是目前主要是针对非常有Linux开发经验的开发者的。然而,BeagleBone对实时任务的处理有一个板载解决方案,在某种程度上可以解决这个问题。BeagleBone的AM335x有两个板载微控制器,称为可编程实时单元(Programmable Real-time Units,PRU),它可以通过编程实现对实时接口的应用。这是一个高级应用,将在第13章介绍。

BeagleBone有一种低成本的可用的专用解决方案,对于实时采样和控制任务(例如,TI Stellaris ARM 平台)可能更适用。对于分布式控制系统,采用BeagleBone作为中央处理器,你可以通过电子总线(例如I2C、UART、CAN总线和以太网)连接实时微控制器到BeagleBone上。这个概念将在第9章和第10章介绍。

第2种应用类型是BeagleBone平台很难用于播放高清视频。软件解码处理的额外开销和进行视频流的编码的开销是非常巨大的,并且对高清视频的解决处理能力超出了BeagleBone的能力范围。树莓派(www.raspberrypi.org)主板具有这种能力,因为它的Broadcom BCM2835处理器[1]主要设计用于多媒体应用,并且它具有H.264/MPG-4和MPG-2/VC-1解码器和编码器(经由附加许可)的硬件装置。对于运行像XBMC家庭媒体中心(www.xbmc.org)这样的应用,你最好购买树莓派(模型B+),但是对于创建与电子设备交互的高级应用,BeagleBone是一个明确的选择。

相关文章
|
6月前
|
机器学习/深度学习 搜索推荐 数据挖掘
数据分析真能让音乐产业更好听吗?——聊聊大数据在音乐里的那些事
数据分析真能让音乐产业更好听吗?——聊聊大数据在音乐里的那些事
300 9
|
10月前
|
机器学习/深度学习 监控 安全
从实验室到生产线:机器学习模型部署的七大陷阱及PyTorch Serving避坑指南
本文深入探讨了机器学习模型从实验室到生产环境部署过程中常见的七大陷阱,并提供基于PyTorch Serving的解决方案。内容涵盖环境依赖、模型序列化、资源管理、输入处理、监控缺失、安全防护及模型更新等关键环节。通过真实案例分析与代码示例,帮助读者理解部署失败的原因并掌握避坑技巧。同时,文章介绍了高级部署架构、性能优化策略及未来趋势,如Serverless服务和边缘-云协同部署,助力构建稳健高效的模型部署体系。
405 4
|
11月前
|
人工智能 自然语言处理 Java
腾讯云CodeBuddy Craft智能体测评|对话式编程太香了!🚀
本文分享了使用CodeBuddy等AI工具的编程体验,从对话式编程、代码补全到智能Review,大幅提升开发效率。Craft智能体重构优惠券模块仅需自然语言描述即可生成完整代码,DeepSeek V3实现流畅的数据分析链式操作补全,MCP协议快速复用跨团队组件。此外,AI还能优化遗留代码、生成单元测试、解决异常报错,甚至提供音乐可视化编程功能。文章还探讨了AI与开发者协作的边界,强调人类在业务逻辑和架构设计上的不可替代性,助力开发者从“搬砖”到“造火箭”。
632 0
腾讯云CodeBuddy Craft智能体测评|对话式编程太香了!🚀
|
小程序 前端开发 IDE
校园二手书交易小程序源码下载
校园二手书交易小程序有四个模块:首页、发布、消息和我的。用户可以在小程序上进行二手书交易、扫码或者输入ISBN发布二手书、用户之间可以发送聊天消息,同时小程序支持购买书籍后跑腿兼职配送,以及对订单评价等多个特色功能。
573 0
校园二手书交易小程序源码下载
|
存储 人工智能 供应链
AI赋能电商中小企业的三大制胜策略
AI赋能电商中小企业的三大制胜策略
AI赋能电商中小企业的三大制胜策略
|
开发框架 缓存 Java
JSP 教程 之 Eclipse JSP/Servlet 环境搭建 1
本教程指导如何使用Eclipse搭建JSP/Servlet开发环境。需下载Eclipse J2EE和Tomcat,将Tomcat解压至无中文和空格的D盘目录。启动Tomcat后,服务器运行,通过浏览器访问`http://localhost:8080/`。在Tomcat的webapps\ROOT目录创建test.jsp文件,输入代码并访问`http://localhost:8080/test.jsp`以验证环境配置成功。
430 1
|
C++ Python
[ROS2] --- 手动编写一个节点
[ROS2] --- 手动编写一个节点
603 1
|
Web App开发 Linux C++
Playwright系列(7):用VSCode 开始写Playwright 脚本
Playwright系列(7):用VSCode 开始写Playwright 脚本
2728 0
Playwright系列(7):用VSCode 开始写Playwright 脚本
strtol()函数与strtoul()函数的用法
strtol()函数与strtoul()函数的用法
533 0
|
人工智能 自然语言处理 搜索推荐
【AI 现况分析】AI 在在线教育中的具体应用
【1月更文挑战第27天】【AI 现况分析】AI 在在线教育中的具体应用

热门文章

最新文章