##开发板型号与配置
BeagleBone Black
说明 | 配置 |
---|---|
微处理器(MPU) | TI Sitara AM3358 ARM Cortex-A8 @1GHz |
RAM | 512M DDR3 |
板载闪存 | 4GB eMMC |
以太网 | 10/100 Mbit/s RJ45 |
外置存储 | MicroSD |
注意 程序中以 P9_1 ~ P9_46编号为准,旁边的GPIO_&仅仅是一个编号,
##初识体验
Debian系统安装与使用
https://beagleboard.org/latest-images 下载最新镜像文件并烧录到SD卡
插入SD卡,按住Power,再插入USB口供电启动
等待半个小时,拔下USB ,取出SD卡
如果要把系统烧写到eMMC,需要以下几步
扫写过当时最新的 Debian 9.3 2018-03-05 4GB SD IoT 4.9.82版本的
重新启动
电脑安装Beaglebone 驱动
window登陆 192.168.7.2
初始账号是 debian temppwd
网口通过网线连接路由,也会有一个IP
cd /boot/uEnv.txt
## 加上下面这一句
uboot_overlay_addr0=/lib/firmware/cape-universalh-00A0.dtbo
##下面就可以挂着自己想要的设备了
uboot_overlay_addr1=/lib/firmware/BB-UART1-00A0.dtbo
uboot_overlay_addr2=/lib/firmware/BB-UART4-00A0.dtbo
uboot_overlay_addr3=/lib/firmware/BB-UART5-00A0.dtbo
参考资料
https://github.com/adafruit/adafruit-beaglebone-io-python/issues/227
https://github.com/beagleboard/bb.org-overlays
https://elinux.org/Beagleboard:BeagleBoneBlack_Debian#Flashing_eMMC
GPIO 驱动是默认加载的,所以无需加载device tree(设备树,以后学会了再说)就能实现操作。
不同的软件版本,设备的操作方式也不尽相同
在最初的Debian 7.5的版本中
Debian 7.5 (BeagleBone, BeagleBone Black - 2GB SD) 2014-05-14
Debian 7.5 (BeagleBone Black - 2GB eMMC) 2014-05-14
如果使用串口4
sudo su
cd /sys/devices/bone_capemgr.9/
echo BB-UART4 > slots
查看 ls /dev/ttyO4
测试 开两个窗口 cat /dev/ttyO4 echo “test” > /dev/tty)4
上面的方案,只能在此次开机时使用,关机重启UART4又没有挂载了,
那么如何解决开机自动挂载的问题呢 增添uEnv.txt文件
sudo vim /boot/uboot/uEnv.txt
cape_enable=capemgr.enable_partno=BB-UART4
cape=ttyO4
cd /sys/class/gpio
ls
sudo echo 60 > export //在P9_60端口接了一个LED
ls //查看到有 gpio60
cd gpio60
echo out > direction
echo 1 > value
echo 0 > value
参考博客 https://blog.csdn.net/luyejie8888/article/category/2417735
##BoneScript python编程
**方式一 **
//blink.js
var bbb = require("bonescript");
var state = bbb.LOW;
bbb.pinMode('USR1',bbb.OUTPUT);
setInterval(blink,1000);
console.log('hello,world');
function blink()
{
if(state == bbb.LOW)
state = bbb.HIGH;
else state = bbb.LOW;
bbb.digitalWrite('USR1',state);
}
方式二
BBB MQTT 开发
paho.mqtt.python MQTT client
BBB I/O 开发
Beaglebone I/O Python API
首先需要安装 pyserial库
pip install pyserial
https://pythonhosted.org/pyserial/pyserial_api.html
import serial #python 串口库
import Adafruit_BBIO.UART as UART #Adafruit 串口库
UART = 'UART4'
ser_id = '/dev/ttyO4' # 使用的串口
baud_rate = 38400 # 串口通信波特率
def Uart4Init():
#先看看串口4是否挂载挂载成功
UART.setup(UART)
if os.path.exists(ser_id):
## configure UART buad 38400
uart = serial.Serial(ser_id, baud_rate, timeout=0.02)
# timeout也很关键,对于后面的readline,单位是s
# print(ser.portstr)
#print(ser.name) # check which port was really used
else:
raise ValueError('serial is not exist\r\n')
return ser
x = ser.read() # read one byte
s = ser.read(10) # read up to ten bytes (timeout)
line = ser.readline() # read a '\n' terminated line
write('hello'.encode('utf-8'))
#uart = serial.Serial(ser_id, baud_rate, timeout=0.02)
uart.write("\x55\x53".encode('utf-8'))
uart.write(b,"\x55\x53")
例如串口的收发
#!/usr/bin/python
## neet to install pyserial
## pip install pyserial
import serial
import os.path
from time import sleep
import Adafruit_BBIO.UART as UART
#Start serial connection with Arduino UART
#Create device if it doesn't exist.
if os.path.exists('/dev/ttyO4'):
ser = serial.Serial('/dev/ttyO4', 38400, timeout=2)
else:
UART.setup("UART4") #This creates the serial device
ser = serial.Serial('/dev/ttyO4', 38400, timeout=2)
while True:
#read
line = ser.readline()
print(line)
# write
ser.write(line)
sleep(0.025)
ser.close