内容介绍
内容介绍
Funpack3-5 :基于网页的BeagleBone Black点灯
一、项目简介
本项目基于BeagleBone Black平台,使用python开发,建立了一个网页与开发板LED联动,当开发板通过网线连接到电脑时,可通过网页控制LED的开关与闪烁
二、硬件介绍
BeagleBone Black开发板
BeagleBone Black 是一款面向开发人员和业余爱好者的低成本、高扩展、社区支持的开发平台,板卡处理器选用的是 TI 公司 AM3358 芯片, 处理器集成了高达 1GHz 的 ARM Cortex™ A8 内核,具有强大的处理能力并提供了丰富的外设接口。BeagleBone® Black面向开源社区用户、开源硬件爱好者和任何对Arm Cortex-A8低成本处理器感兴趣的人而设计,配备精简,旨在为不需要搭建完整开发平台并想体验Arm处理器功能的用户提供入门的捷径。它配备了最低限度的外设,使用户能够体验处理器的强大功能,还提供了许多接口,用户还可以开发自己的电路板或添加自己的电路。
特性
- 处理器 TI Sitara 处理器:AM3358BZCZ100
- 1GHz ARM® Cortex-A8 处理器
- SGX 3D 图形引擎
- NEON 浮点加速器
- 2×32 位 200MHz 可编程实时单元 (PRU)
- 内存
- SDRAM:512MB DDR3L 800MHZ
- 板载闪存:4GB,8 位嵌入式 MMC (eMMC)
- 接口
- 高速 USB 2.0 客户端端口: 通过 miniUSB 访问 USB0,客户端模式
- 高速 USB 2.0 主机端口: 访问 USB1,A 型插座,500mA LS/FS/HS
- 串行端口: UART0 通过 6 针 3.3V TTL 接头访问。接头已填充
- 10/100M 以太网接口(RJ45)
- 视频/音频接口
- HDMI D 型接口
- LCD 接口
- HDMI 接口立体声音频
三、 设计思路
本项目使用python语言开发,通过flack建立一个web服务器,使用html制作了一个简易网页,通过点击网页上的按钮可以直接控制开发板LED的io文件,从而控制LED的开关和闪烁。设计步骤如下:
- 更新系统镜像。BeagleBone Black开发板(以下简称BBB)自带镜像版本比较旧,更新镜像有利于后续开发。从BeagleBone官网下载最新版本的镜像,使用BalenaEtcher将镜像烧录至MicroSD卡。将烧录好的MicroSD卡插入BBB卡槽,按住Boot按钮后上电连接至电脑,此时启动的就是MicroSD卡中的新版本镜像。
- 开启自带的VScode编辑器。通过putty等方式连接到BBB,输入如下指令
sudo systemctl enable bb-code-server.service
稍等片刻即可开启VScode。浏览器中输入http://192.168.7.2:3000(或http://192.168.6.2:3000)进入VScode。
- 编写代码和网页。
四、 效果展示
- 打开网页
- 控制LED开关:
点击on按钮后,USR3亮起
点击off按钮后,USR3熄灭
点击blink后,USR3闪烁
五、主要代码
控制部分
from flask import Flask, redirect, url_for, request, render_template
import threading
import time
blink_enable=0
app = Flask(__name__)
LEDPATH='/sys/class/leds/beaglebone:green:usr3/brightness'
#控制LED亮起
def turn_on():
with open(LEDPATH,"w") as f:
f.seek(0)
f.write("1")
#控制LED熄灭
def turn_off():
with open(LEDPATH,"w") as f:
f.seek(0)
f.write("0")
#控制LED闪烁
def blink_LED():
global blink_enable
while(blink_enable):
turn_on()
print(0)
time.sleep(0.5)
turn_off()
print(1)
time.sleep(0.5)
@app.route('/')
def index():
return render_template("index.html")
@app.route('/on',methods = ['POST', 'GET'])
def on():
global blink_enable
if request.method == 'POST':
blink_enable=0
turn_on()
return render_template("index.html")
@app.route('/off',methods = ['POST', 'GET'])
def off():
global blink_enable
if request.method == 'POST':
blink_enable=0
turn_off()
return render_template("index.html")
@app.route('/blink',methods = ['POST', 'GET'])
def blink():
global blink_enable
if request.method == 'POST':
blink_enable=1
t = threading.Thread(target=blink_LED)#开启线程,用于控制LED闪烁
t.start()
t.join()
return render_template("index.html")
if __name__ == '__main__':
app.run()
网页部分
<html>
<head>
<style>
.centered-title {
text-align: center;
}
</style>
</head>
<h2 class="centered-title">LED Control</h2>
<body class="centered-title">
<form action = "/proxy/5000/on" method = "post">
<p><input type = "submit" value = "on" /></p>
</form>
<form action = "/proxy/5000/off" method = "post">
<p><input type = "submit" value = "off" /></p>
</form>
<form action = "/proxy/5000/blink" method = "post">
<p><input type = "submit" value = "blink" /></p>
</form>
<form action = "/proxy/5000/close" method = "post">
<p><input type = "submit" value = "close" /></p>
</form>
</body>
</html>
软硬件
附件下载
main.py
主函数
index.html
网页代码
团队介绍
中山大学2021级通信工程学生
团队成员
sksks
评论
0 / 100
查看更多
猜你喜欢
Funpack3-5 BeagleBone® Black点灯任务该项目使用了BeagleBone® Black 的pru,实现了通过按钮切换呼吸灯频率的设计,它的主要功能为:使用PRU采集按钮并且切换呼吸灯频率的软件。
Hotmilk
9
Funpack3-5:BeagleBone® Black 任务1:使用PRU点灯!该项目使用了BeagleBone® Black,实现了使用PRU点灯的设计,它的主要功能为:使用C语言实现PRU控制一个LED实现呼吸灯,并且使用一个按键按下后切换闪烁的速度。。
Jahg
28
Funpack3-5 BeagleBone® Black入门指南与网页点灯该项目使用了BeagleBone® Black,实现了网页控制板载LED的设计,它的主要功能为:搭建网络环境,实现网页上的开关控制板载LED的开关。
henry
7