性能方面不算很高,但是够用,主打一个接口多。不过 4GB 固盘确实有点不够用,好在还有 SD 卡槽,可以进行扩充存储。
升级操作系统拿到板子第一步,习惯性先升级系统。去官方主页下载最新的 Debian 镜像文件,要留意上边的文件筛选,他家的产品还是挺多的,需要选择手头这块 BeagleBone Black 开发板对应的镜像文件。这里我选择的是:
BeaglePlay Debian 12.7 2024-09-04 XFCE Flasher

启动与初始化
烧录完成后,将 SD 卡插入开发板,即可通过 SD 卡启动。启动后,板子上的 蓝灯会闪烁,这是系统正在将 SD 卡中的内容拷贝到板载 eMMC 固盘中,相当于把系统正式装到了板子上。这个过程需要耐心等待,不要断电或拔卡,等蓝灯停止闪烁、恢复常亮或熄灭后,说明初始化完成,就可以正常使用了。

扩展网络
板子上除了 USB 虚拟网口外,还提供了一个 RJ45 有线网口,另外还有一个 USB Host 接口。在这里,我将手头的 WAN1100 无线网卡通过 USB 口插入板子,无需安装任何驱动,系统即可自动识别到该无线网卡,直接就能用了,体验还是很不错的。

通过文件"/etc/network/interfaces"配置有线网络。
source /etc/network/interfaces.d/* auto eth0 iface lo inet loopback allow-hotplug eth0 iface eth0 inet static address 100.196.128.14 netmask 255.255.255.224
通过文件“/etc/wpa_supplicant/wpa_supplicant-wlan0.conf”配置无线网络,连接自己的wifi。
ctrl_interface=DIR=/run/wpa_supplicant GROUP=netdev
update_config=1
p2p_disabled=1
#country=US
network={
ssid="Xiaomi 13"
psk="weile150"
}等待升级完成即可,过程中会提示一些确认信息,直接按 Y 回车就行。


而在 BBB 板子上,本身就可以运行 Python,所以就计划直接使用 Python 来实现 Web 页面的管理。恰好 BBB 的 GPIO 口也有对应的 Python 库(如 Adafruit_BBIO) 可以直接调用,不需要自己去操作寄存器,整个任务用 Python 来实现就变得非常简单了,基本上就是几行代码的事。

安装对应的python包。
pip3 install --upgrade Adafruit_BBIO pip3 install flask
Flask 是一个用 Python 编写的轻量级 Web 应用框架。使用这个框架,可以很轻易地搭建自己的WEB服务。Adafruit BBIO 是一个 API,用于从 Beaglebone 上运行的 Python 应用程序启用GPIO、PWM、ADC、UART、SPI和eQEP(正交编码器)硬件访问。
设计web页面。浏览器访问时,读取的内容为服务器传递的html页面,在这个页面中,添加了3个按钮,分别对应了“LED灯开”、“LED灯关”、“LED灯闪烁”三个功能。
<!Document html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">
<!-- 可选的Bootstrap主题文件(一般不用引入) -->
<link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
<style>
a {
width:100%
}
</style>
<head>
<title>LED灯开关</title>
</head>
<body>
<div class="container-fluid">
<div class="row">
<a href="/on" class="btn btn-success btn-lg" role="butoon">开</a>
</div>
</br>
<div class="row">
<a href="/off" class="btn btn btn-info btn-lg" role="button">关</a>
</div>
</br>
<div class="row">
<a href="/sansuo" class="btn btn-danger btn-lg" role="button">闪烁</a>
</div>
</div>
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
</body>搭建WEB服务。使用flask的框架。先建立文件夹BBB_led 作为项目目录。在文件夹下建立子文件夹templates,用来存放web页面,将上边的页面文件命名为"ctlled.html",最后在项目文件夹BBB_led下,建立python文件BBB_led
app = Flask(__name__)
# 进入的首个网页
@app.route('/', methods=['GET', 'POST'])
def main():
return render_template("ctlled.html") # 返回网页控制LED。BBB开发板上使用两组23X2的排母,将管脚引了出来。可以通过映射去控制对应的管脚。板子上还有4颗LED灯,分别是USER0、USER1、USER2、USER3。在这里,我直接使用板子上的LED0的灯来做展示。

浏览器通过get方式访问,后台通过不同的字符串来执行相应的动作。
# 点击打开
@app.route('/on', methods=['GET'])
def on():
GPIO.output("USR0", GPIO.HIGH) # GPIO.26高电平
time.sleep(3.5) # 延时3.5s
print("555") # 打印555
return render_template("ctlled.html") # 返回一开始的页面
# 点击关闭
@app.route("/off", methods=['GET'])
def off():
GPIO.output("USR0", GPIO.LOW) # GPIO.26低电平
time.sleep(3.5)
print("666")
return render_template("ctlled.html") # #返回一开始的页面
# 点击闪烁
@app.route("/sansuo", methods=['GET'])
def sansuo():
for i in range(10):
GPIO.output("USR0", GPIO.HIGH)
time.sleep(0.2)
GPIO.output("USR0", GPIO.LOW)
time.sleep(0.2)
print("666")
return render_template("ctlled.html")实现效果

我要赚赏金
