BeagleBone开发(BBB)

##开发板型号与配置

BeagleBone Black

这里写图片描述

说明配置
微处理器(MPU)TI Sitara AM3358 ARM Cortex-A8 @1GHz
RAM512M 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,需要以下几步

  1. 登陆 修改 /boot/uEnv.txt 文件最后一行
  2. 完全关机 shutdown 拔掉USB电源线, 按住Power,再插入USB口供电启动
  3. 等待20 min 装完后会自动关机
  4. 拔下sd 卡,上电启动

扫写过当时最新的 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

解决板载的硬件资源使用问题,例如 串口 IIC等等

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编程

**方式一 **

  • 在浏览器中访问 192.168.7.2
  • 使用 Cloud9 IDE 编程
//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);
}

方式二

  • 通过putty登陆到192.168.7.2,
  • 安装Python工具链
    • sudo apt-get install python-dev python-setuptools python-pip python-smbus
  • 安装Beaglebone开发的Python库
    • sudo pip install Adafruit_BBIO
    • pip install --upgrade Aadfruit_BBIO
    • sudo pip install twisted 定时器库

BBB MQTT 开发
paho.mqtt.python MQTT client

BBB I/O 开发
Beaglebone I/O Python API

BeagleBone Black串口开发

首先需要安装 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
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一銤阳光

希望分享的内容对你有帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值