树莓派实验实践记录与技术分析

卡尔曼滤波器学习笔记(一) Kalman Filter学习笔记(一) 卡尔曼滤波器的原理及应用最近在学习Probablistic Robotics这本书,获益良多。以前学了概率论和随机过程之后一直觉得这些是虚的,不知道在工程上怎么用,而这本书恰恰就是讲如何把这些概率理论和方差估计应用到工程上去,更确切的说,应用到机器人上去。 应用前提 算法详细介绍 应用举例 下篇预告 1.应用前提 要应用kalman 阅读详情
一、内核驱动开发:hello 模块实现
  1. 驱动程序代码
    #include <linux/init.h> 
    #include <linux/module.h> 
    static int __init hello_init(void) 
    { 
        printk(KERN_INFO "hello kernel\n"); 
        return 0; 
    } 
    module_init(hello_init); 
    
    static void __exit hello_exit(void) 
    { 
        printk(KERN_INFO "bye kernel\n"); 
    } 
    module_exit(hello_exit); 
    
    MODULE_LICENSE("GPL v2"); 
    MODULE_DESCRIPTION("树莓派3B+ hello驱动模块"); 
    MODULE_ALIAS("HelloModule"); 
    MODULE_AUTHOR("Philon");
  2. 编译配置(Makefile)
    obj-m := hello.o 
    KERNEL_VERSION := $(shell uname -r) 
    KDIR := /lib/modules/$(KERNEL_VERSION)/build 
    PWD := $(shell pwd) 
    
    all:
        $(MAKE) -C $(KDIR) M=$(PWD) modules
        
    clean:
        $(MAKE) -C $(KDIR) M=$(PWD) clean
  3. 模块模块指令
  • 加载:sudo insmod hello.ko
  • 查看输出:dmesg | tail
  • 卸载:sudo rmmod hello

     4.PWM 驱动问题说明

尝试实现 PWM 呼吸灯驱动时,发现旧版源码中的pwm_set_clock等函数已被新版内核废弃。替换为pwm_enable等新接口后编译通过,但装载内核时无法调用 PWM 资源,推测是设备树未正确声明 PWM 控制器导致。

二、Python 应用开发:PWM 呼吸灯
  1. 硬件连接
  • 编码方式:BCM 编码
  • 引脚分配:白色 LED 接 BCM13(PWM1),黄色 LED 接 BCM18(PWM0)
  • 供电:通过树莓派 GPIO 口提供 5V 与 GND

2.完整代码:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
OUT1, OUT2 = 13, 18
GPIO.setup(OUT1, GPIO.OUT)
GPIO.setup(OUT2, GPIO.OUT)

pwm1 = GPIO.PWM(OUT1, 60)
pwm2 = GPIO.PWM(OUT2, 60)

try:
    pwm1.start(0)
    pwm2.start(0)
    for _ in range(3):
        # 白灯呼吸效果
        for dc in range(0, 101, 5):
            pwm1.ChangeDutyCycle(dc)
            time.sleep(0.1)
        for dc in range(100, -1, -5):
            pwm1.ChangeDutyCycle(dc)
            time.sleep(0.1)
        
        # 黄灯呼吸效果
        for dc in range(0, 101, 5):
            pwm2.ChangeDutyCycle(dc)
            time.sleep(0.1)
        for dc in range(100, -1, -5):
            pwm2.ChangeDutyCycle(dc)
            time.sleep(0.1)
finally:
    pwm1.stop()
    pwm2.stop()
    GPIO.cleanup()
    三、超声波测距系统
    1. 硬件接线注意事项
      | 引脚 | 功能 | 接线要求 |
      |------|------|----------|
      | Vcc | 电源正极 | 接树莓派 5V 引脚,避免独立供电 |
      | GND | 电源负极 | 连接树莓派 GND |
      | Trig | 触发信号 | 接 BCM23(输出模式) |
      | Echo | 回声信号 | 需通过 1kΩ+2kΩ 电阻分压后接 BCM24(输入模式),防止 5V 信号烧毁 GPIO |

    2. 测距原理

    • 树莓派向 Trig 发送 10μs 高电平脉冲,HC-SR04 接收到信号后发射超声波,同时将 Echo 置高;
    • 接收到反射波时 Echo 置低,通过测量高电平持续时间计算距离:
      距离 = (高电平时间 × 34300cm/s) / 2

      3.代码实现

    import RPi.GPIO as GPIO
    import time
    
    GPIO.setmode(GPIO.BCM)
    TRIG, ECHO = 23, 24
    GPIO.setup(TRIG, GPIO.OUT)
    GPIO.setup(ECHO, GPIO.IN)
    
    def measure_distance():
        GPIO.output(TRIG, True)
        time.sleep(0.00001)
        GPIO.output(TRIG, False)
        
        while GPIO.input(ECHO) == 0:
            start = time.time()
        while GPIO.input(ECHO) == 1:
            stop = time.time()
        
        time_diff = stop - start
        return (time_diff * 34300) / 2
    
    if __name__ == '__main__':
        try:
            while True:
                dist = measure_distance()
                print(f"距离:{dist:.2f} cm")
                time.sleep(1)
        except KeyboardInterrupt:
            print("测量停止")
            GPIO.cleanup()
      四、超声波测距滤波算法分析
      1. 平均值滤波
      • 原理:对 N 次测量值取算术平均,公式为Y = (X₁+X₂+…+Xₙ)/N。
      • 优点:实现简单,有效抑制随机噪声;
      • 缺点:对突变信号响应慢,不适用于动态场景(如移动物体测距)。

           2.卡尔曼滤波

      • 原理:基于状态空间模型,通过递归估计动态系统状态,同时考虑测量噪声与过程噪声。
      • 核心优势:
        • 动态适应性强,可实时修正温度漂移、环境干扰等误差;
        • 无需存储历史数据,计算效率高,适合实时系统;
        • 能处理非线性误差,更贴合超声波测距的实际场景(如声波折射、反射干扰)。
      • 缺点:需建立精确的系统模型,初始参数调优难度较高。

           3.方案选择
      推荐采用卡尔曼滤波。超声波测距易受环境噪声、温度变化影响,且需实时更新距离数据,卡尔曼滤波可通过系统状态预测与修正,提供更稳定的测量结果。若硬件资源有限,可采用加权移动平均滤波作为简化方案。

        树莓派与pc 串口通讯 调试记录 1、背景 因为项目需求,使用树莓派开发一个解调模块。模块要接受上位机的控制指令,完成相应的工作。目前协定树莓派预留rs232接口,所以首先解决pc与树莓派的串口通信问题。 2、工作中用到软件 1、PC端:串口调试助手,vmware,vspd。 2、树莓派:minicom,geany。 3、硬件连接 使用的USB转ttl的电路板,将PC端与树莓派连接起来。PC端连接USB接口,树莓派连接... 阅读详情

        相关推荐

        树梅派应用30:使用树莓派+GPS制作行车记录

        行车记录仪现在其实也非常的普及了。那么我们就用树莓派自己折腾一个来玩玩。 器材准备: 树莓派x1 GPS串口模块x1 移动电源x1 树莓派屏幕x1 首先我们需要禁止树莓派本身的串口命令行输出。为了不干扰我们的数据传输,所以我们需要禁用它。首先编辑inittab文件 1 sudo nano /etc/inittab

        huayucong的博客 3367

        基于树莓派的智能摄像系统

        目录基于树莓派的智能摄像系统第一章 绪论需求:目标追踪应用于生活的方方面面,但在大部分领域目标依靠于手动校准第二章 前期的准备第三章 树莓派运行yolov5和tensorfolw lite第四章 自动跟踪模块第五章 语音控制和定位模块结合用户识别第六章APP远程监控和选择目标跟踪模块第七章 用户身份验证第八章 总结摘要目前,在教室中的网课录制和课程录制当中,由于被摄像机固定大大限制了老师们的发挥,此外还增加了摄像人员的负担;在舞台表演和体育赛事的直播当中,快速高效的目标聚焦也会给观众带了非凡的体验。但是目前

        weixin_53284122的博客 3893

        ds1302模块 树莓派_【完整记录】DS1302实时时钟模块实验

        一、介绍  现在有很多流行的串行时钟芯片,如DS1302,DS1307,PCF8485等,由于简单的接口,低成本和易用性,他们被广泛应用于电话、传真、便携式仪器等产品领域。在本实验中,我们将使用DS1302实时时钟(RTC)模块获取当前日期和时间。  DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。这种记录对长时间的连续测控系统...

        weixin_42494890的博客 2410

        树莓派采集MPU9250运行AHRS进行姿态解算

        1.几种概念的区分 IMU:全称Inertial measurement unit,惯性测量单元,由三个正交的加速度敏感元件和三个正交的角速度敏感元件组成,该模块只输出三轴加速度和三轴角速度,其中输出三轴加速度的输出量里包含了重力加速度g。IMU从精密程度可以分为微机电(MEMS)、光纤、激光等。 SINS:全称Strapdown inertial navigation system,捷联惯性导航系统(该定义相对于平台惯性导航系统)。IMU的敏感轴与载具主轴固联对齐。SINS由IMU与惯导计算机里运行的

        qq_43015524的博客 6461

        树莓派上NB-IOT模块连接华为OceanConnect IOT平台调试记录

        参考链接:https://developer.huawei.com/ict/cn/doc/site-oceanconnect-nb-iot_device_integration_development_guide-zh/index.html/zh-cn_topic_0118655590 1.IOT平台简介 IoT平台包括数据管理、设备管理和运营管理等能力,可以实现统一安全的网络接入、各种终端的灵活...

        但行前路 无问西东 7248

        树莓派构建光谱仪实验设计

        本文介绍了一种基于树莓派的可见光分光计实验课程,旨在帮助学生理解仪器原理并提升分析能力。学生通过动手搭建光谱仪、进行校准、测量吸收光谱及动力学研究,并结合Python编程实现数据采集与分析。实验强调误差控制、线性范围确定和迭代优化,培养了学生的批判性思维与综合实践能力。

        bert9linguist的博客 962

        卡尔曼滤波算法-简易版

        代码实现: /** ****************************************************************************** * @file bsp_kalman.h * @author Zxp * @version V1.0.0 * @date 2021-06-08 * @brief 卡尔曼滤波算法头文件 *******************************************************...

        Car12 1029

        基于树莓派的智能捡球车源码解析与技术详解

        移动通信技术自20世纪末以来,经历了从模拟到数字,从2G到5G的快速演进。在早期,移动通信仅限于语音通信,随着技术的发展,移动通信功能逐渐扩展到数据传输、多媒体通信以及物联网应用等更加广泛的领域。2G技术提供了数字语音服务和初步的数据服务,3G技术则实现了高速数据传输,4G进一步提升了网络速度和稳定性,而5G技术以更低的延迟、更高的数据传输速率和更大的连接密度引领了当前移动通信的最新发展。这一切的进步都为远程通信技术在捡球车等智能设备上的应用提供了可能。

        weixin_35973118的博客 1003

        卡尔曼滤波的原理、理解与仿真

        转载: https://zhuanlan.zhihu.com/p/49298236 卡尔曼滤波器是一种利用线性系统状态方程,通过系统输入输出观测数据,对系统状态进行最优估计的算法。而且由于观测包含系统的噪声和干扰的影响,所以最优估计也可看做是滤波过程。 1 卡尔曼滤波的原理与理解 1.1 预测 假设有一辆小车,其在t时刻的位置为 PtP_tPt​ (假设其在一维直线上运动,则位置可以用数轴上的点...

        戈扬的博客 7015

        树莓派实现电话通话记录

        本文介绍如何利用树莓派与传感器构建物联网系统,自动检测并记录放射科阅片室的电话通话。通过干簧开关、按钮、OLED屏等组件采集数据,并借助MQTT协议实现数据发布与订阅,提升临床环境中的数据收集能力。

        9o8p7i6u5y的博客 704

        树莓派2实现便携脑电图实验

        本文探讨了使用树莓派2作为低成本、便携式设备在脑电图(EEG)实验中替代传统台式电脑的可行性。通过听觉oddball任务,实验显示树莓派2能可靠地诱发失匹配负波(MMN)和P3成分,尽管存在轻微的时间延迟和噪声增加,但事件相关电位(ERP)结果与台式机相当,支持其在移动化、生态化场景中的应用。

        f6g7h8i9j的博客 414

        OpenClaw树莓派摄像头任务测试

        摘要:任务1使用树莓派摄像头拍摄了两张照片(标准分辨率和高分辨率),并成功保存到桌面目录。任务2尝试识别照片中的牛奶盒及品牌,通过图像处理和OCR技术分析,但因拍摄角度、光线或视野问题未能识别到有效文字信息。颜色分析显示照片主要为浅色背景和深色物体,建议调整摄像头角度、改善光线条件或重新拍摄以获得更清晰的图像用于识别。

        91创客学堂 542

        基于Python的树莓派实验项目实战代码合集

        <a href="/data">查看实时数据</a>

        weixin_42629522的博客 828

        【亲测免费】 xjtu嵌入式系统设计-树莓派实验报告及代码

        xjtu嵌入式系统设计-树莓派实验报告及代码 【下载地址】xjtu嵌入式系统设计-树莓派实验报告及代码 本仓库提供了一份关于西安交通大学(XJTU)嵌入式系统设计课程的实验报告及代码资源。该资源旨在帮助学习者掌握嵌入式系统开发平台——树莓派的使用,并通过实践学习基于C或Python的程序设计方法。通过在树莓派平台上设计并...

        gitblog_09786的博客 1000

        树莓派:Linux微电脑开发板的探索与实践

        树莓派(Raspberry Pi)是一种旨在促进基础计算机科学教育的低成本、信用卡大小的单板计算机。自2012年首次发布以来,它已经成为了教育、DIY和爱好者社区中的热门工具。树莓派的设计初衷是提供一个低成本的平台,让学生可以亲自动手实验、学习编程和电子知识,同时也为专业人士提供一个原型开发平台。通用输入输出(GPIO)是树莓派最具特色和应用广泛的接口之一。GPIO接口允许开发者连接各种电子组件,如LED灯、按钮、传感器等,使树莓派能够与现实世界进行交互。

        weixin_32099703的博客 1557

        树莓派在生物学中的应用与指南

        本文综述了树莓派在生物学领域的广泛应用,包括环境监测、行为记录、植物表型分析和生物声学等。树莓派凭借低成本、高灵活性和强大的社区支持,成为科研自动化的重要工具。文章还提供了硬件选型、系统配置、电源管理及数据传输的实用指南,帮助研究人员快速上手并部署定制化实验系统。

        s4t5u6v的博客 978

        基于树莓派实现的智能小车论文

        树莓派3是一款基于ARM的微型电脑主板,具备所有PC的基本功能,Python作为主要编程语言,系统基于Linux或者Windows 10 IoT,有良好的易用性和多功能性。这里介绍的是如何用树莓派3来实现太原理工大学的毕业设计,该设计是树莓派结合多个传感器的智能小车的发明,是未来多个行业的发展方向,它可以按照程序预先设定好的模式在一个符合设定程序的环境里自动的运作,不需要人为的管理,可应用于科学勘探、科研、军事等的用途。本系统为实现设计题目的要求,采用了树莓派3为控制核心,接收并处理传感器消息;利用超声波传

        m0_73485055的博客 5242

        基于树莓派的开源色谱记录仪

        本文介绍了一种低成本、开源的数字条形图记录仪,基于树莓派和Pi帽硬件实现色谱数据采集与处理。系统集成滤波、基线校正及峰参数计算功能,性能与商用软件相当,误差控制在3%以内,适用于教学与便携式分析设备。

        perl8的博客 889
        上一篇: Vmware虚拟机安装Ubuntu20.4系统及QEMU模拟ARM64 Linux
        下一篇: 树莓派与嵌入式系统实验报告
        ooolips
        博客等级 码龄4年 129粉丝 25原创
        评论
        成就一亿技术人!
        拼手气红包6.0元
        还能输入1000个字符
         
         条评论被折叠 查看
        添加红包

        请填写红包祝福语或标题

        个

        红包个数最小为10个

        元

        红包金额最低5元

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

        抵扣说明:

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

        余额充值