智能车入门——车模器件篇 <新手从零做车>

article/2025/9/23 3:03:05

本文讲搭车需要哪些器件,及其使用


电磁车简易接线图

 这个是逐飞tb店展示的电磁车简易接线图,加上舵机,基本上就可以搭一辆四轮车。


 电机

电机

 电机应该都比较熟悉

在电机两端施加电压,电机就会旋转,电压越大,转速越快。

通过电压越大,转速越快这句话,联系之前的知识,我们可以想到用PWM来控制转速,

但是直接把电机直接接在核心板io口是不可行的(因为io口电压比较低,而且电机坏了有可能造成核心板损坏)

因而就需要电机驱动

这一篇文章写的详细,值得去看

【嵌入式&单片机】一文带你搞懂电机驱动模块_云朵先生_的博客-CSDN博客_电机驱动模块

简单说一下,驱动接线一般是这样的,

 而常见的电机驱动有两种

一种是两路PWM

另一种是一路PWM,一路 GPIO。

两路PWM,就是根据两个pwm信号 差值的正负决定电机转动方向,差值大小决定电机转速,

一般选用这种控制方式,图片来自上面推文。

 一路PWM,一路 GPIO,就是pwm控制转速,GPIO控制方向。


 舵机


舵机是伺服电机的一种。

普通电机,我们给固定的PWM信号,电机齿轮就以一定速度转动,

而给舵机固定的PWM信号,舵机齿轮就固定在一个位置,因而称伺服电机是带有反馈环节的电机。

详解舵机的基本原理以及控制方法_小麦大叔的博客-CSDN博客_舵机工作原理与控制方法

舵机有三根线,VCC,GND,PWM信号脚。接线的时候,VCC,GND接供电模块,PWM大小决定舵机转动位置。

建议安装舵机之前,先给pwm,然后安装舵机,这样可以知道舵机中值的大致范围。

如果已经安好舵机,建议使用试触法,在给pwm时,如果舵机打死,立刻拔掉线,再调整pwm值,重新测定舵机中值。


电机,舵机频率选择

电磁信号检测 | 本是同根生,相煎何太急_卓晴的博客-CSDN博客_信号检测 

舵机控制的PWM的频率一般选择50-60HZ,电机控制的pwm频率设置为13-19khz,以尽可能的消除干扰。


 

编码器

编码器齿轮与后轮齿轮啮合,

编码器读值函数放进程序定时器中断里,我中断周期设置的5ms。

如果想知道编码器读数与实际车速的关系,你可以根据中断时间,编码器齿轮数,电机齿轮数,后轮半径等参数,计算得出。

也可以将车沿着直线推动一米,程序中将编码器读数从0进行累加,多次测量,取平均值(假设为L)

那么可以推算出 编码器每增加1,车实际走1/L  米,

中断里每次读出的编码器增量(假设E)

那么车速 = E*(1/L)/ 5   米/毫秒

再处理单位进制关系就得到车速。


电感采集信号原理

工字电感

 工字电感由一圈圈线圈构成,

电磁赛道铺设电磁线,信号发生器输送正弦电流信号,与电感(线圈)发生电磁感应现象,电感中就产生了电流,但这个电流比较微小,需要运放,放大信号,给单片机的AD采集口,获取赛道信息。

我们用的电磁信号发生器,发送的是20KHZ信号,需要用电容与电感构成LC振荡电路。

电感9.3mH与6.8nF校正电容构成LC谐振电路,频率为20KHz,选频效果很好!

学做智能车--电磁探究篇_不合格的engineer的博客-CSDN博客_电磁智能车


陀螺仪

陀螺仪后面会再说,

逐飞的例程可以获得XYZ轴的角速度和角加速度,

角速度累加 再乘系数就是角度。


磁铁检测

磁铁检测一般用干簧管或者霍尔检测板

干簧管就是,靠近磁铁,两个贴片导通,单簧管高低电平变化。

霍尔检测板核心是霍尔检测芯片,它是一个特殊的三极管,当磁场强度达到一定值,霍尔检测板高低电平变化。

两个都是用单片机读取 高低电平来判断磁铁,与按键原理差不多。


摄像头(如果需要)

摄像头按照线插上就行,

摄像头考验的是数组的处理。


http://chatgpt.dhexx.cn/article/Rlb8XYeD.shtml

相关文章

智能车竞赛技术报告 | 双车接力组 - 辽宁工业大学 - 灵越1队

简 介: 本智能车系统以MM32SPIN27PS微控制器为核心,通过电感检测模型车的运动位置和运动方向,用编码器检测模型车的速度。使用PID控制算法调节驱动电机的转速和角度,完成对模型车运动速度和运动方向的闭环控制。为了完成接力任务并…

TSINGHUAJOKING公众号基本信息

文章目录 ▌01 基本信息1.公开信息2.注册信息3.Momo起草的描述语 ▌02 二维码 ▌01 基本信息 1.公开信息 名称: TsinghuaJoking 微信号:singhuazhuoqing 二维码: 下载公众号二维码或带有搜一搜标识的二维码,用于推广与分享公众号…

无线充电组别国一队:浙江工业大学

一、前言 大家好,我们是来自浙江工业大学智能车无线充电组鸿泉RUSH队。很荣幸受到达尔闻和英飞凌的邀请,分享我们的作品。 我是雷双铭,我在队伍中主要负责图像处理和控制部分;   我是王景可,主要负责控制和机械结构部…

第十七届全国大学智能汽车竞赛竞速比赛规则

(版本:2022-6-21) 00 规则导读 参加过往届比赛的队员可以通过下面内容了解第十七届竞赛规则主要变化。如果第一次参加比赛,建议对于本文进行全文阅读。 竞速比赛共分为九个组别,每个组别在比赛环境、比赛任务、单片机平…

【c语言】矩阵乘法

【c语言】矩阵乘法 1.N*N矩阵 A[N][N]*B[N][N]C[N][N] #include<stdio.h> #define N 2 int main() {int A[N][N] {}, B[N][N] {}, C[N][N] {};printf_s("请输入矩阵A&#xff1a;\n");int i, j;for (i 0; i < N; i) {for (j 0; j < N; j) {scanf_…

C语言求矩阵的逆(伴随法)

之前介绍了C语言用代数余子式求行列式 本次开始介绍如何用公式法对矩阵求逆&#xff0c;并用C语言将其实现。 之前程序有点小bug&#xff0c;已于2022年11月29日修改。 更新&#xff1a; 伴随法只适合求低阶矩阵的逆&#xff0c;对于相对高阶&#xff08;20维以上&#xff09;对…

C语言 矩阵乘法

Description 给出m * n阶矩阵A&#xff0c;乘以n * p阶的矩阵B&#xff0c;得到一个m*p阶的矩阵C。矩阵乘法定义如下图所示。 Input 输入分为两部分&#xff1a;第一部分是三个整数m、n和p&#xff1b;后面为两个矩阵&#xff0c;分别是mn阶矩阵A和np阶矩阵B。m、n和p都不会超…

C语言矩阵库------Matrix

欢迎使用Matrix Matrix目前能实现矩阵的基本功能,例如:方阵行列式求解,矩阵的线性运算和矩阵相乘,矩阵求逆等等. 我会持续更新此库,需要的朋友可以进行下载。 V1.1版本10阶矩阵的行列式和逆矩阵求解对齐了matlab的精度&#xff0c;但是速度较慢。谨慎使用于高阶矩阵运算。 链…

使用C语言实现矩阵转置(稀疏矩阵)

目录 1.转置矩阵&#xff08;普通矩阵&#xff09; 2.转置矩阵&#xff08;稀疏矩阵&#xff09; &#xff08;1&#xff09;稀疏矩阵 &#xff08;2&#xff09;稀疏矩阵的压缩存储方式 &#xff08;3&#xff09;理论运算方法 1.转置矩阵&#xff08;普通矩阵&#xff0…

c语言矩阵

思路&#xff1a;开辟一个新的同样规格的矩阵b&#xff0c;并将其全部置1. 遍历矩阵a(原矩阵)&#xff0c;发现有0的就在b的此行此列中插入0 // // main.c // test // // Created by 神威 on 2018/9/11. // Copyright © 2018年 神威. All rights reserved. // #incl…

C语言-矩阵转置

描述 KiKi有一个矩阵&#xff0c;他想知道转置后的矩阵&#xff08;将矩阵的行列互换得到的新矩阵称为转置矩阵&#xff09;&#xff0c;请编程帮他解答。 输入描述&#xff1a; 第一行包含两个整数n和m&#xff0c;表示一个矩阵包含n行m列&#xff0c;用空格分隔。 (1≤n≤…

C语言对矩阵进行转置

对矩阵进行转置最重要的是值的交换&#xff0c;这里用到了二重数组 #include <stdio.h> #include <stdlib.h>int main() {int a[3][3]{1,2,3,4,5,6,7,8,9};//初始化一个矩阵出来int b[3][3]{0};for(int i0;i<2;i){for(int k0;k<2;k){b[k][i]a[i][k];//对矩…

C语言 - 矩阵转置

C语言 - 矩阵转置 输入NM的矩阵&#xff0c;输出它的转置矩阵。 Input 第一行为整数N&#xff0c;M&#xff08;1≤N&#xff0c;M≤100&#xff09;。 接着是一个NM的矩阵。 Output 转置矩阵。 Example Input 2 3 1 2 3 4 5 6 Example Output 1 4 2 5 3 6#include&l…

(C语言)求矩阵各行元素之和

本题来自pintia.cn 题目要求代码测试结果图PTA测试结果 题目要求 本题要求编写程序&#xff0c;求一个给定的mn矩阵各行元素之和。 输入格式&#xff1a; 输入第一行给出两个正整数m和n&#xff08;1≤m,n≤6&#xff09;。随后m行&#xff0c;每行给出n个整数&#xff0c;其间…

编写矩阵运算程序(C语言)

编写矩阵运算程序之C语言 1. 要求2 代码 1. 要求 a) 功能包括&#xff1a;矩阵加、矩阵减、矩阵乘、矩阵三角化 b) 实现方式1&#xff1a;函数的参数为&#xff1a;二维数组名、行数、列数 2 代码 #include<stdio.h> #define M 20 #define N 20 float A[M][N]; float…

C语言——矩阵转置

矩阵转置的原理&#xff1a;行元素变成列元素&#xff0c;列元素变成行元素 例如&#xff1a; 矩阵转置代码 #include<stdio.h> #include<malloc.h> #include<stdlib.h> #include<math.h>//矩阵转置 double** Matrix_T(double** arr) {if(arrNULL)e…

C语言实现矩阵的乘法

矩阵乘法作为算法题我觉得对我来说是比较难想的&#xff0c;而且作为没学线性代数的我来说&#xff0c;这简直就是场灾难&#xff0c;在我研究了书上及网上的有关资料后&#xff0c;我觉得自己应该差不多可以理解矩阵乘法的要领了&#xff0c;希望可以帮助大家&#xff1a;其实…

C语言矩阵运算

矩阵的乘法&#xff1a; 矩阵的列数&#xff08;column&#xff09;和第二个矩阵的行数&#xff08;row&#xff09;相同时 #include<stdio.h>int main() { int a[2][4], b[4][3], c[2][3];int i, j, k, sum; printf("输入一个24的矩阵&#xff1a;\n"); fo…

c语言矩阵的乘法

矩阵的乘法&#xff1a; 两个矩阵只有在第一个矩阵的列数&#xff08;column&#xff09;和第二个矩阵的行数&#xff08;row&#xff09;相同时才有意义。一般单指矩阵乘积时&#xff0c;指的便是一般矩阵乘积。一个mn的矩阵就是mn个数排成m行n列的一个数阵。 运算规则&#x…

C语言刷题小结---矩阵篇

电影黑客帝国有很多这样的场景 用矩阵表示我们看到的一切&#xff01; 而在编程中矩阵是用数组来表示的 目前小作者还只是学习编程的初学者&#xff0c;很多知识内容都还没有学习。但相信每一个学习编程的小伙伴在做C语言方面的练习时都会遇到有关矩阵相关的题目&#xff0c;…