陀螺仪小车(Forerake-Car)

这篇具有很好参考价值的文章主要介绍了陀螺仪小车(Forerake-Car)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目简介:搭建一辆有arduino UNO 与rnf24l01组成的小车;手部安装由arduino nano开发板、nrf24l01、imu构成的手势控制器,利用手势控制器检测手部状态、发送信号对小车进行前进,实现基于卡尔曼滤波的MPU6050姿态结算。

准备工作:

如果你想搭建一辆有Arduino UNO和nRF24L01组成的小车,并使用手势控制器来控制小车,你需要准备以下硬件:(制作步骤省略)

  1. Arduino UNO微控制器:用于控制小车的运动。

  2. NRF24L01模块:用于在小车和手势控制器之间进行无线通信。

  3. 小车底盘:用于支撑小车的结构和轮子。

  4. 马达:用于带动小车的运动。

  5. 电池:用于为小车提供电力。

  6. Arduino Nano开发板:用于控制手势控制器的运动。

  7. IMU传感器:用于检测手势控制器的状态。

这些硬件是搭建一辆有Arduino UNO和nRF24L01组成的小车所必需的。

陀螺仪小车是一种使用陀螺仪感测器控制方向的小车。要制作陀螺仪小车,你需要准备以下材料和工具:(制作步骤省略)

  1. 小车底盘:可以使用Lego(乐高)、Arduino、Raspberry Pi(树莓派)或其他工具制作。

  2. 电机和驱动板:可以使用直流电机(【Youtube搬运】直流电动机的工作原理【含中文字幕需手动开启】_哔哩哔哩_bilibili)或步进电机(【动画演示】步进电机的原理,学了这么多年电工,终于搞明白了_哔哩哔哩_bilibili),并使用驱动板来控制它们的转速和方向。

    简言之:步进电机是一种特殊的直流电机,转动受限,范围小,
    但精确度更高,适用于高精度转动的场合:机器人,3D打印机。

    步进电机与直流电机的优缺点,与伺服电机区别 - 21ic电子网

  3. 陀螺仪感测器:可以使用MPU6050、L3G4200D或其他类型的陀螺仪感测器。
    MPU6050和L3G4200D都是三轴陀螺仪传感器,可以测量旋转率和加速度。
    
    MPU6050是一款集成的加速度计和陀螺仪传感器,可以提供高精度的测量数据。
    它采用了微控制器的内部滤波器来减少噪声并提高精度。
    MPU6050还支持运动检测功能,可以检测到极小的运动并触发相应的事件。
    
    L3G4200D是一款独立的三轴陀螺仪传感器,它通过 I2C 或 SPI 接口与微控制器连接。
    L3G4200D可以测量高达 2000 dps 的旋转率,具有较高的精度和较快的采样速率。
    它还具有数据自动对齐功能,可以使得数据在不同的字节序中得到正确的对齐。
    
    在选择这两个传感器时,应考虑自己的应用场景,以及所需的精度和功能。
    如果需要一个集成的解决方案,则可以选择 MPU6050,但如果需要一个独立的陀螺仪传感器,则可以选择 L3G4200D。
  4. 电源:可以使用锂电池或其他类型的可充电电池来为小车提供电力。

  5. 开发板:可以使用Arduino、Raspberry Pi或其他类型的开发板来控制小车的电机和陀螺仪感测器。

  6. 编程工具:需要安装适用于你使用的开发板的编程工具。

开发板、驱动板、母板概念:

1.开发板,就是通常用作开发用途的PCB(未有安装元器件,只有布线电路图形的半成品板),通常上面载有一个或多个MCU(微控制单元,为芯片级的计算机,近似理解为cpu,俗称单片机(scm))/FPGA(由可编程互相连接的可配置逻辑块矩阵构成的半导体器件)等器件作为核心,以及一些外设例如Flash、SRAM、SDRAM、LED、数码管、TFT LCD等外设作为辅助开发,以及一些额外的引脚。

https://www.bilibili.com/video/BV193411y7TW/?spm_id_from=333.337.search-card.all.click&vd_source=a2417ade71290cd940c5e2edb896b97bhttps://www.bilibili.com/video/BV193411y7TW/?spm_id_from=333.337.search-card.all.click&vd_source=a2417ade71290cd940c5e2edb896b97b

2.驱动板,通常是用于驱动特定外设(驱动外接硬件,用来控制输出大电流大电压),例如大功率步进电机、大的液晶屏等。

3.母板,或者叫底板,通常将开发板或者是核心板插在其上,同时将驱动板也连接在其上,主要起到一个大型连接器的作用,当开发板或者说核心板上的外设不够时,也会部署一些额外的外设用来辅助开发并最终形成整个产品。

陀螺仪小车开发的注意内容

具体的,你需要在代码中读取陀螺仪感测器的数据,然后根据陀螺仪感测器的角度来控制电机的方向。你可以设置一个阈值,当陀螺仪感测器的角度大于阈值时,小车向左转;当陀螺仪感测器的角度小于阈值时,小车向右转。

你也可以设计其他的控制策略,比如根据陀螺仪感测器的加速度来控制小车的前进和后退。

在制作过程中,你可能会遇到各种问题,比如小车不能正常行驶、陀螺仪感测器的数据不准确等。在遇到这些问题时,你可以通过调试代码、检查电路连接、重新校准陀螺仪感测器等方式来解决问题。

NRF24L01

NRF24L01是一种无线收发模块,具有较高的传输速率和长距离传输能力,能够使用2.4GHz频段进行无线通信。它是一种低成本、低功耗(支持自动睡眠、待机和唤醒功能)的无线通信模块,支持多种通信协议,广泛应用于各种无线通信项目中。除了通信协议和接口之外,nRF24L01模块还具有其他一些特性:尺寸较小、支持多种通信模式、可配置的通信参数、支持硬件加密。

NRF24L01模块通常使用SPI接口与微控制器连接,可以使用Arduino、Raspberry Pi或其他类型的微控制器来控制它。

如果你想使用nRF24L01模块来开发无线通信应用,你可以考虑以下应用场景:

  1. 远程控制:nRF24L01模块可以用于实现远程控制功能。你可以使用模块来控制各种电子设备,比如灯、电视、空调等。

  2. 传感器网络:nRF24L01模块可以用于建立传感器网络。你可以使用模块来采集各种传感器的数据,并将数据传输到中央服务器。

  3. 无线网络:nRF24L01模块可以用于建立无线网络。

  4. 即时通讯:nRF24L01模块可以用于实现即时通讯功能。你可以使用模块来实现文本、语音和视频通信。

  5. 家庭自动化:nRF24L01模块可以用于实现家庭自动化功能。你可以使用模块来控制各种智能家居设备,比如门锁、窗帘、照明等。

  6. 远程监控:nRF24L01模块可以用于实现远程监控功能。你可以使用模块来监控各种环境参数,比如温度、湿度、气压等。

 正式内容:

流程:

arduino uno(①)和nrf24l01(①)控制小车;arduino uno(①)、nrf24l01(①)、mpu6050获取姿态解算数据。

1.手上姿态检测,控制mpu6050检测手部状态(运动数据及温度数据),利用其芯片内部的DMP模块,进行传感器数据处理,通过SPI协议向手势控制器中的arduino UNO(②)输出姿态结算后的数据;

2.编写代码,将NRF24L01模块连接到对应的Arduino开发板,arduino uno(②)将获取的数据通过nrf24l01(②)(发射器)无线传给nrf24l01(①)(接收器)一端。

3.arduino uno(①)要编写代码来接收 NRF24L01 (①)收到的信号,并根据信号来控制小车的运动(可以使用电机驱动器的相应函数来控制小车前进)。

(2条消息) Arduino开发板使用NRF24L01进行无线通信_sunshyman的博客-CSDN博客_arduino rf24l01

任务实现步骤:

首先,你需要将 Arduino UNO 和 NRF24L01 连接到小车上,并使用一些电机驱动器来控制小车的运动。具体来说,你可以使用 L298N 电机驱动器来控制小车的电机。(学习内容:连接电机驱动器和电机)

然后,你需要在 Arduino UNO (①)上编写代码来接收 NRF24L01(②) 收到的信号,并根据信号来控制小车的运动。(了解如何使用 NRF24L01 和 Arduino 进行无线通信)

接着,你需要在 Arduino uno (②) 上编写代码来控制 IMU 检测手部的状态,并使用 NRF24L01 将信号发送给 Arduino UNO。具体来说,你需要使用 IMU 库来读取 IMU 传感器的数据,并根据手部的状态来控制 NRF24L01 发送信号。

最后,你需要将所有部分整合起来,调试代码并确保所有功能都能正常工作。

IMU与MPU6050的关系

IMU 是一个通用术语,指的是任何可以测量和提供有关人体加速度和方向信息的设备,而 MPU6050 是由 InvenSense 制造的一种特定类型的 IMU。

MPU6050 是一个 6 轴 IMU,包含一个 3 轴加速度计和一个 3 轴陀螺仪。它用于测量和提供有关物体在 3D 空间中的加速度和角速度的信息。它通常用于无人机、机器人和其他类型的运动传感系统等应用。

相比之下,IMU 可以指任何能够测量和提供有关身体加速度和方向信息的设备,而不管它使用的传感器的具体类型或它具有的轴数。IMU 通常用于各种应用,包括机器人、航空航天和虚拟现实等。

控制电机的转速即控制PWM

控制电机的转速通常是通过调节电机的输入电压来实现的,而调节电机输入电压的一种常用方法就是使用脉冲宽度调制(PWM)控制。


PWM 控制方法通过不断地交替地打开和关闭电机的电源,达到调节电机输入电压的目的。具体来说,我们可以调节 PWM 信号的占空比(duty cycle)来控制电机的转速。占空比越大,电机所接受的电压就越大,电机的转速就越快;占空比越小,电机所接受的电压就越小,电机的转速就越慢。


使用 PWM 控制电机的转速的一个优点是,它可以提供较好的转速精度和响应速度。另外,PWM 控制还可以通过改变 PWM 信号的频率来控制电机的扭矩。
但是,使用 PWM 控制电机也有一些缺点。首先,PWM 控制需要使用控制电路来实现,这会增加系统的复杂度和成本。其次,PWM 控制可能会产生较大的电磁干扰,影响电机的寿命和系统的稳定性。


在选择控制电机的方式时,需要根据具体的应用场景来确定使用哪种控制方式。在一些情况下,使用 PWM 控制电机可能是最优的选择。但是,在一些应用场景中,其他控制方式可能更加适用。


例如,在需要提供较大扭矩和较高转速的应用场景中,可能会使用直流电机,并使用直流桥控制方式来控制电机的转速和扭矩。在需要提供较高精度和较低成本的应用场景中,可能会使用步进电机,并使用步进电机驱动器来控制电机的转速和位置。


总之,在控制电机的转速时,PWM 控制是一种常用的方法,但是并不是唯一的选择。根据具体的应用场景和需求,可以选择适合的控制方式来实现。

L298N驱动模块,用在控制小车电机的驱动和通过单片机PWM来控制电压输入脚已达到控制小车速度的目的 

代码实现模块:

参考: Arduino教程:MPU6050的数据获取、分析与处理 - 知乎摘要MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度。由于其体积小巧,功能强大,精度较高,不仅被广泛应用于工业,同时也是航模爱好者的神器,被安装在各类飞行…https://zhuanlan.zhihu.com/p/20082486

详解Arduino Uno开发板的引脚分配图及定义_全程站着的攻城师的博客-CSDN博客_arduino uno引脚图https://blog.csdn.net/it1988888/article/details/118087831(2条消息) Arduino开发板使用NRF24L01进行无线通信_sunshyman的博客-CSDN博客_arduino rf24l01https://blog.csdn.net/sunshyman/article/details/112977704?ops_request_misc=&request_id=&biz_id=102&utm_term=arduino%E5%92%8Cnrf24l01%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-112977704.142%5Ev68%5Ejs_top,201%5Ev4%5Eadd_ask,213%5Ev2%5Et3_esquery_v3&spm=1018.2226.3001.4187

详解PWM原理、频率与占空比 - 21ic电子网https://www.21ic.com/article/887609.html#:~:text=%E8%84%89%E5%86%B2%E5%AE%BD%E5%BA%A6%E8%B0%83%E5%88%B6%20%28PWM%29%EF%BC%8C%E6%98%AF%E8%8B%B1%E6%96%87%E2%80%9CPulse,Width%20Modulation%E2%80%9D%E7%9A%84%E7%BC%A9%E5%86%99%EF%BC%8C%E7%AE%80%E7%A7%B0%E8%84%89%E5%AE%BD%E8%B0%83%E5%88%B6%EF%BC%8C%E6%98%AF%E5%88%A9%E7%94%A8%E5%BE%AE%E5%A4%84%E7%90%86%E5%99%A8%E7%9A%84%E6%95%B0%E5%AD%97%E8%BE%93%E5%87%BA%E6%9D%A5%E5%AF%B9%E6%A8%A1%E6%8B%9F%E7%94%B5%E8%B7%AF%E8%BF%9B%E8%A1%8C%E6%8E%A7%E5%88%B6%E7%9A%84%E4%B8%80%E7%A7%8D%E9%9D%9E%E5%B8%B8%E6%9C%89%E6%95%88%E7%9A%84%E6%8A%80%E6%9C%AF%EF%BC%8C%E5%B9%BF%E6%B3%9B%E5%BA%94%E7%94%A8%E5%9C%A8%E4%BB%8E%E6%B5%8B%E9%87%8F%E3%80%81%E9%80%9A%E4%BF%A1%E5%88%B0%E5%8A%9F%E7%8E%87%E6%8E%A7%E5%88%B6%E4%B8%8E%E5%8F%98%E6%8D%A2%E7%9A%84%E8%AE%B8%E5%A4%9A%E9%A2%86%E5%9F%9F%E4%B8%AD%E3%80%82%20%E8%BF%99%E5%B0%B1%E6%98%AF%E5%8D%A0%E7%A9%BA%E6%AF%94%E4%B8%BA80%25%E7%9A%84%E8%84%89%E5%86%B2%E4%BF%A1%E5%8F%B7%E3%80%82

nRF24L01 – How It Works, Arduino Interface, Circuits, CodesIn this tutorial we will learn how to use the nRF24L01 RF transceiver module to make a wireless communication between two Arduino boards.https://howtomechatronics.com/tutorials/arduino/arduino-wireless-communication-nrf24l01-tutorial/

MPU6050姿态解算2-欧拉角&旋转矩阵 - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/195683958文章来源地址https://www.toymoban.com/news/detail-619714.html

到了这里,关于陀螺仪小车(Forerake-Car)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 陀螺仪MPU6050(IIC&源码)

    1. 陀螺仪 1.1   什么是陀螺仪? 检测角度变化的一个装置。 1.1.1  有什么用?? 用于检测角度变化,用角度变化的值判断物体的运动轨迹。 1.1.2  我们怎么用? 我们是使用这个装置(或者说设备)获取到数据,再使用这个数据得到我们想要的信息。 这里我使用陀螺仪获取板

    2024年02月13日
    浏览(30)
  • 课题学习(十九)----Allan方差:陀螺仪噪声分析

       Allan方差是一种分析时域数据序列的方法,用于测量振荡器的频率稳定性。该方法还可用于确定系统中作为平均时间函数的本征噪声。该方法易于计算和理解,是目前最流行的识别和量化惯性传感器数据中存在的不同噪声项的方法之一。该方法的结果与适用于惯性传感器

    2024年01月22日
    浏览(32)
  • MPU6050六轴陀螺仪外围电路分析

    MPU6050六轴陀螺仪常用的外围电路设计分析 AUX_DA引脚:用于传输辅助数据。通过该引脚,MPU6050可以与外部设备或其他传感器进行数据交换。可以将其他传感器(如磁力计)连接到AUX_DA引脚,以获取额外的数据或实现其他特殊功能。 AUX_CL引脚:用于提供辅助时钟信号。MPU6050可

    2024年01月25日
    浏览(30)
  • 三轴陀螺仪解算姿态(四元数)

    三轴陀螺仪可以测量载体在三个轴上的角速度分量,对这些角速度进行积分就可以得到旋转的角度,应用到载体上就可以得到载体的姿态。 假设导航坐标系为东北天,载体坐标系为右前上。 初始载体坐标系和导航坐标系重合,对应的四元数为q=[1,0,0,0],使用此四元数表示 载

    2024年02月05日
    浏览(29)
  • 陀螺仪与加速度计的姿态融合——互补滤波

    本篇文章我们来讲讲如何将陀螺仪和加速度计的数据结合起来,获取更准确的姿态数据,使用的是互补滤波的方法。 阅读本文需有一定的知识基础,可以参见作者以前MPU6050的两篇文章:《MPU6050陀螺仪和加速度计数据的获取和校准》、《MPU6050官方DMP的移植和使用》,以及了解

    2024年02月03日
    浏览(31)
  • 陀螺仪mpu6050的使用(附带HAL的使用)

    我们日常见的陀螺仪模块的使用就是在平衡小车和控制小车的移动上,那么陀螺仪是怎么使用的呢,首先就是能很好的使用I2C,而看到这里,说的一切都是虚的,首先陀螺仪的配置和数据手册大家也是没少看的,但是还是跟我再了解一遍. MPU6050内部整合了三轴MEMS陀螺仪、三轴

    2024年02月13日
    浏览(38)
  • 【QT】OpenGL显示六轴陀螺仪3D实时姿态

    https://blog.csdn.net/qq_35629971/article/details/126203543?spm=1001.2014.3001.5506 新建一个qt的空白工程,附带UI界面,我的工程名称就叫my_3d UI界面可以可以放一些自己想要的按键、文本或者其他控件。这个不影响3D效果的展示,这些控件都会展示在3D效果图的上层,不会被3D效果覆盖 首先我们

    2024年02月02日
    浏览(29)
  • MPU6050 加速度计和陀螺仪传感器与 Arduino 连接

    MPU6050是一款非常流行的加速度计陀螺仪芯片,具有六轴感应和 16 位测量分辨率。这种意义上的高精度和低廉的成本使其在 DIY 社区中非常受欢迎。甚至许多商业产品都配备了 MPU6050。陀螺仪和加速度计的组合通常被称为惯性测量单元或 IMU。 IMU 传感器用于各种应用,例如手机

    2024年02月02日
    浏览(38)
  • 【Android入门到项目实战-- 9.5】—— 陀螺仪传感器的详细使用教程

    目录 陀螺仪传感器 1、基础知识  2、实战使用         返回x、y、z轴的角加速度数据。         水平逆时针旋转,z轴为正,顺时针为负;         向左旋转,y轴为负,向右旋转,y为正;         向上旋转,x为负,向下旋转,x为正。 修改activity_main.xml代码如下:

    2024年02月12日
    浏览(43)
  • 【STM32】I2C练习,HAL库读取MPU6050角度陀螺仪

    MPU-6000(6050)为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时间轴之差的问题,减少了大量的封装空间。当连接到三轴磁强计时,MPU-60X0提供完整的9轴运动融合输出到其主I2C或SPI端口(SPI仅在MPU-6000上可用)。 寄存器地址 寄存器内容 0X3B

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包