树莓派学习

gpio 意思为通用输入输出,简称IO口或gpio,芯片上的引脚
查看板载编码
pinout
查看所有引脚
sudo gpio readall
在这里插入图片描述
板载编码
是按顺序对主板引脚排针进行编号
WiringPi编码
简称wPi,把扩展gpio端口从0开始编码,使用C语言控制树莓派引脚时,使用的是WiringPi编码
BCM编码
是参考Broadcom SOC的通道编号侧重CPU寄存器,使用Python控制树莓派引脚时常用

gpio命令 直接控制管脚
从内核空间找到引脚 直接控制gpio引脚
cd /sys/class/gpio 进入gpio目录
ls 查看gpio目录中的内容

echo 26 > export 从内核暴露到用户空间,此处为BCM编码,执行后会产生一个引脚文件夹gpio26
cd gpio26 进入引脚文件夹即可对引脚进行操作
echo out > direction 设置输出方向 输出
echo 1>value 引脚设置高电平
cd … 返回上一文件夹
echo 26 > unexport 注销引入的引脚

gpio -g mode 4 out 其中-g表示以BCM编码,去掉后表示以wPi编码
gpio read 4 读取管脚当前状态
gpio write 4 1 设置管脚4为高电平
gpio write 4 0 设置管脚4为低电平

使用Python
新建py文件


```python
import RPi.GPIO as GPIO
from  time import  sleep
GPIO.setmode(GPIO.BCM)#采用BCM编号方式
GPIO.setup(26,GPIO.OUT)#指定使用26号端口
for i in  range(1,10):
    GPIO.output(26,GPIO.HIGH)
    sleep(1)
    GPIO.output(26,GPIO.LOW)
    sleep(1)
GPIO.cleanup()

然后python3 gpio_light.py

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
输入ls /dev al 可查看所有串口状态

安装minicom工具
sudo apt-get install minicom

串口连接USB转TTL的urat
接地引脚连接树莓派连地引脚GND
RXD引脚 连接树莓派第8个引脚
TXD引脚连接树莓派的第10个引脚

### 树莓派学习路线与教程 #### 一、基础入门阶段 对于初学者来说,了解树莓派的基础概念及其硬件结构是非常重要的。可以选择适合自己的树莓派型号,例如 Raspberry Pi 3、Raspberry Pi 4 或最新的 Raspberry Pi 5,这些设备在性能、接口和功耗方面存在差异[^1]。 在此基础上,建议熟悉以下内容: - **操作系统安装**:掌握如何烧录镜像文件至SD卡,并启动基于Linux的操作系统(如 Raspbian OS)。 - **基本命令操作**:学会使用终端执行常用 Linux 命令,比如 `ls`、`cd` 和 `sudo` 等。 - **GPIO编程**:理解通用输入/输出端口的功能以及如何利用 Python 控制 GPIO 引脚完成简单任务。 ```python import RPi.GPIO as GPIO import time # 设置GPIO模式为BCM编号方式 GPIO.setmode(GPIO.BCM) led_pin = 18 # 定义LED灯连接的GPIO引脚号 GPIO.setup(led_pin, GPIO.OUT) # 配置该引脚为输出模式 try: while True: GPIO.output(led_pin, GPIO.HIGH) # 打开LED time.sleep(1) GPIO.output(led_pin, GPIO.LOW) # 关闭LED time.sleep(1) finally: GPIO.cleanup() # 清理释放资源 ``` #### 二、进阶应用开发 随着技能提升,可尝试更复杂的项目实践,如下述案例中的超声波测距功能实现过程所示: ##### 超声波传感器工作原理及其实现方法 超声波模块能够发出高频声音脉冲并捕捉回响时间从而推算目标物体的距离值。具体而言就是记录下从触发发送指令到检测反馈信号所需耗费的时间间隔t秒数之后再乘以音速c除以2得到最终数值d厘米单位表示形式即 d=(ct)/2 。实际部署过程中需注意正确连线关系——把电源正负极接入对应位置;另外还需指定两个数据交互通道分别用于激活请求动作(TRIG)以及监听返回状态(ECHO)[^2]。 以下是完整的Python代码片段展示如何读取由HC-SR04型探头所提供的实时测量结果: ```python import RPi.GPIO as GPIO import time TRIG_PIN = 17 ECHO_PIN = 18 def setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(TRIG_PIN, GPIO.OUT) GPIO.setup(ECHO_PIN, GPIO.IN) def get_distance(): GPIO.output(TRIG_PIN, False) time.sleep(0.2) GPIO.output(TRIG_PIN, True) time.sleep(0.00001) GPIO.output(TRIG_PIN, False) start_time = end_time = None while GPIO.input(ECHO_PIN)==0: start_time = time.time() while GPIO.input(ECHO_PIN)==1: end_time = time.time() duration = end_time - start_time
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值