初学树莓派——(四)树莓派IO输入检测

本文详细介绍了如何使用Python和C语言在树莓派上通过BCM编码检测GPIO(General Purpose Input/Output)输入状态,包括接线步骤和代码实现,适合初学者理解IO操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、接线

2、Python检测IO状态(BCM编码)

3、C语言检测IO状态


1、接线

因为不想把简单的问题复杂化,所以我就把杜邦线一端接在(12) GPIO18这个引脚上,另一端悬空或者接口VCC来控制GPIO的高低电平,进而在树莓派上显示对应信息

下面将通过Python和C语言2中方式讲解IO状态检测,不清楚编码的小伙伴可以看下上一篇博客初学树莓派——(三)树莓派点亮LED(Python,C)

2、Python检测IO状态(BCM编码)

在主页新建文件,修改文件名为io_scan.py(随你写),或者打开Thonny新建py文件,然后输入测试代码

import wiringpi

GPIO_Intput_Pin = 1 #定义GPIO_Intput_Pin为7脚
OUTPUT = 1 #定义OUTPUT为1即输出
INPUT = 0 #定义INPUT为0即输入
HIGH = 1 #定义HIGH为1即高点平
LOW = 0 #定义HIGH为1即高点平

wiringpi.wiringPiSetup() #设置GPIO编号为wPi方式
wiringpi.pinMode(GPIO_Intput_Pin,INPUT) #设置GPIO_Intput_Pin为INPUT输入模式

while 1:
    print('GPIO_Intput_Pin INPUT <=',wiringpi.digitalRead(GPIO_Intput_Pin))#打印从GPIO_Intput_Pin读到的数据
    wiringpi.delay(1000) #延时1000ms
    print() #为了输出美观 打印换行

由于文件在桌面上,所以运行的时候需要先输入cd Desktop打开桌面路径

随后再输入python io_scan.py(你文件叫啥就改成啥)

至此IO检测结束!

3、C语言检测IO状态

在主页新建文件,修改文件名为io_scan.c(随你写),或者打开Geany新建c文件,然后输入测试代码

#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
#define KEY      1   //wiringPi模式第1号脚  (12)GPIO18
int main()
{
    if(wiringPiSetup()==-1)
    {
      perror("树莓派启动失败");
      exit(-1);
    }
    pinMode(KEY,INPUT);//设置引脚为输入
    while(1)
    {
        if(digitalRead(KEY)==0)
        {
             puts("低电平");
        }
        else
        {
             puts("高电平");  
        }
	}
   return 0;
 }

由于文件在桌面上,所以运行的时候需要先输入cd Desktop打开桌面路径

然后输入gcc -o io_scan io_scan.c -lwiringPi(这里的.c文件名要和你的文件名对应)

最后输入sudo ./io_scan即可实现IO检测

至此IO检测结束!

 

<think>嗯,用户想查找关于基于ROS的智能安防机器人相关资料或教程。从用户的提问来看,ta需要的是具体的开发教程或实现方案,说明可能是开发者或机器人爱好者。用户引用了三段材料:第一段介绍了ROS的基本定义和特性,强调其开源性和工具集第二段提到家庭安防机器人需要目标检测、行为识别等功能,并指出ROS能实现这些第三段则展示了OrangePiAIpro和Turtlebot4在仿真中的应用,特别是激光雷达建图导航用户的核心需求很明确——要实操性的ROS安防机器人开发资源。ta可能遇到这些难点:1如何搭建基础移动平台2环境感知模块集成(特别是视觉识别)3安防逻辑的决策系统设计4实际部署时的成本控制方案注意到用户对价格敏感(引用3提到Turtlebot4昂贵),所以应该推荐低成本方案。OrangePiAIpro这类国产开发板值得重点考虑。专业层面需要覆盖:-硬件选型:激光雷达+摄像头组合方案-软件栈:ROS2比ROS1更推荐,因安防场景需要实时性-算法模块:重点在YOLO等目标检测和OpenPose行为识别-通信安全:家庭场景需考虑数据传输加密用户没有说明开发阶段,但“教程”一词暗示可能是初学者。因此资源推荐要梯度化:1基础ROS移动机器人教程(树莓派平台)2逐步添加传感器模块的实验3安防专项功能开发案例特别要注意引用2提到的“异常情况报警”完整链路,这涉及多模块协同:传感器数据→AI分析→决策阈值→报警触发最后考虑用户可能需要仿真测试方案,Gazebo和Turtlebot4仿真环境都要包含。实际产品级开发还需补充SLAM建图优化建议。</think>以下是为您整理的基于ROS的智能安防机器人开发方案和资源指南,结合核心技术模块和实操路径: --- ### **一、核心开发框架** 1. **硬件基础** - 移动平台:Turtlebot3/Turtlebot4(仿真可用)或基于树莓派/OrangePi AIpro的自建底盘 - 传感器: - 激光雷达(如RPLIDAR A1,用于SLAM建图) - RGB-D相机(如Intel Realsense D435,目标检测与深度感知) - 红外传感器(夜间监测) - 通信模块:WiFi/4G报警联动 2. **软件栈** ```mermaid graph LR A[ROS2 Foxy/Humble] --> B[导航-Nav2] A --> C[感知-OpenCV/YOLOv8] A --> D[控制-MoveIt2] A --> E[通信-ROSbridge] ``` --- ### **二、关键功能实现方案** #### **1. 环境建模与导航** - **SLAM建图** 使用`gmapping`或`cartographer`算法处理激光雷达数据: ```bash ros2 launch slam_toolbox online_async_launch.py ``` - **自主导航** 配置`Nav2`的代价地图和路径规划器,示例代码: ```python # 导航目标点发布 from geometry_msgs.msg import PoseStamped goal = PoseStamped() goal.header.frame_id = "map" goal.pose.position.x = 3.0 goal.pose.orientation.w = 1.0 ``` #### **2. 安防行为识别** - **目标检测** 集成YOLOv8的ROS节点: ```python # 调用检测服务 from yolov8_msgs.srv import Yolov8Detection detections = self.yolo_client(image_msg) ``` - **异常行为判断** 基于OpenPose的姿态分析,定义触发阈值(如闯入区域停留超时): $$ \text{报警条件} = \begin{cases} 1 & \text{if } t_{\text{stay}} > T_{\text{max}} \\ 0 & \text{otherwise} \end{cases} $$ #### **3. 报警系统** - **多级响应机制** - 本地声光报警(控制GPIO驱动蜂鸣器) - 手机推送(通过`MQTT`桥接云平台) - 自动追踪(云台摄像头PID控制) --- ### **三、学习资源推荐** 1. **官方教程** - [ROS2导航系统详解(Nav2)](https://navigation.ros.org) - [Gazebo仿真教程](https://gazebosim.org/docs) - [Turtlebot4手册](https://turtlebot.github.io/turtlebot4-user-manual/) 2. **项目案例** - **家庭安防机器人开源项目** [GitHub - SecurityBot-ROS](https://github.com/ros-security/security_bot)(含SLAM+人脸识别代码) - **仿真环境搭建** ```bash # 安装Turtlebot4仿真包 sudo apt install ros-humble-turtlebot4-simulator ``` 3. **低成本硬件方案** - 使用OrangePi AIpro替代工控机(支持ROS2和AI推理加速) - 思岚A1雷达(¥800)+ Realsense D435(¥1500)组合 --- ### **、开发路线建议** ```mermaid graph TD A[ROS基础] --> B[Gazebo仿真测试] B --> C[传感器驱动集成] C --> D[SLAM建图调试] D --> E[导航避障实现] E --> F[AI行为识别开发] F --> G[多端报警联调] ``` > 提示:先从仿真环境(如Turtlebot4的工厂场景)验证导航逻辑,再移植到实体机器人可降低60%开发风险[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

会点灯的大力水手

科研需要动力

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

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

打赏作者

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

抵扣说明:

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

余额充值