请教:如何用单片机控制小车转弯?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教:如何用单片机控制小车转弯?相关的知识,希望对你有一定的参考价值。

一般小车转弯分若干种
1。三轮式
1.1两个动力轮,一个辅助轮
举例 玩具小车
两个动力轮同时转动,前进或后退
两个动力轮反向转动或者转动速度不同,转向
1.2两个辅助轮,一个动力轮
前轮有动力而且可以转向
这就要用两个电机控制前轮。一个控制前轮的速度,一个控制前轮转过的角度。
1.3两个动力轮,一个转向轮
举例 三轮车
两个后轮转动方向和速度完全一样,靠前轮转动一定的角度来转向。
2。四轮
2.1两个动力轮,两个转向轮
举例 后轮驱动汽车
前面两轮负责转向,后面两轮负责提供动力。
2.2两个动力轮,两个辅助轮
四个轮子呈菱形布置,两个动力轮在对角线上。两个动力轮转速相同时前进或后退,两个动力轮转速不同或者转动方向相反时转向。
参考技术A 控制转弯最简单的方法是控制舵机,舵机是通过pwm控制的。如果单片机有pwm发生器,就用它,没有用定时器模拟一下。下面是51的程序
//12MHz
#include <reg51.h>

void InitTimer0(void)

TMOD = 0x01;
TH0 = 0x0B1;
TL0 = 0x0E0;
EA = 1;
ET0 = 1;
TR0 = 1;

void delay(void) //可以修改高电平周期
//修改这个延时可以更改舵机转的角度 ,具体能调多少度,你可以试试测下

unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=142;b>0;b--)
for(a=2;a>0;a--);

void main(void)

InitTimer0();
P1_2=0;
while(1);


void Timer0Interrupt(void) interrupt 1

//20ms中断
TH0 = 0x0B1;
TL0 = 0x0E0;
P1_2=1;
delay();
P1_2=0;
参考技术B 可以单片机管脚的高低电平,开启或关断小车的左右轮子。例如两个轮子同时开启,小车前进,同时关断,小车停止,那你只要让小车一个轮子停止,一个开启,就实现了小车的转弯。 参考技术C 看你是什么小车
如果是舵机转向的 就如一楼说的PWM控制
还有的玩具小车是差速控制转弯的 就得分时控制电机了
参考技术D 要看您的小车结构而定。您用的是什么电机,用的是什么驱动芯片

用树莓派的方式打开小米手机:摇晃手机控制小车,前进后退加转弯,成本不到350元 | 开源...

博雯 发自 凹非寺
量子位 报道 | 公众号 QbitAI

人体姿态控制见得多了,手机姿态控制的来一个?

左右前后倾斜手机,面前的小车也跟着移动:

看这灵活的身姿,转个弯也毫无问题:

绝对正儿八经的“手机遥控器”,可以倒翻小车看看这个轮胎转动:

再一看,诶,车上又有我们熟悉的树莓派:

这就是油管主MohammadReza Sharifi用树莓派DIY的“手机姿态控制”的机器小车。

而整个项目的花销只有大概40英镑,不到350元

手机加速计操控小车

那么,这个拿手机当遥控器的小车在结构上有什么特殊之处呢?

Sharifi老哥公布了他所采用的全部材料:

树莓派×1

HC05蓝牙模块×1

L298电机驱动器×1

机器人底盘×1(还是非常便宜的塑料材质)

直流齿轮马达×4

跳线×n

嗯……毕竟总成本只有约40英镑,还要啥自行车呢。

而安装在底板上的价格不到3英镑的Raspberry Pi Pico,无疑就是小车的核心了。

这是树莓派今年年初发布的微型处理器新品,基于其自研的RP2040芯片构建,搭载双核ARM Cortex M0+处理器,运行频率133MHz,内置264KB的片上RAM。

和以往的树莓派产品相比,Raspberry Pi Pico更擅长低时延的I/O通信和模拟信号输入。

而Sharifi老哥就是打算用Raspberry Pi Pico实时处理运动数据,并将信息发送给小车的电机驱动程序,带着小车跑起来的。

那么树莓派接收到的运动信息又从何而来呢?

智能手机中的加速计

这是手机内部的一个传感器组件,用于检测手机受到的加速度的大小和方向。

(很多人会把加速计功能叫做重力感应功能,这是因为手机静置时只受到重力加速度)

这就是Sharifi老哥的“手机姿态控制”的完整思路,即通过蓝牙设备将手机加速计的运动数据传给树莓派,再控制机器小车移动。

三小时编写代码

要在手机加速计和Raspberry Pi Pico之间传递数据,当然还是得靠代码。

Sharifi老哥使用的是一个叫做MIT App Inventor的代码开发平台:

这是由一个基于模块的可视化编码平台,可以相对轻松地开发移动设备应用程序:

在确定手机加速度计的角速度和加速度的大小,以及机器小车的相对坐标轴这些任务上,Sharifi老哥花了不少时间。

不过最终他还是在三小时内完成了构思和编程。

像这样,手机连接蓝牙,打开开发好的App:

和设备成功连接之后,转动手机,四个小轮胎也就跟着开始转了:

这一次的项目是基于Sharifi老哥自己的Redmi Note 9 Pro手机的安卓开发项目。

他表示,下一步打算用Python整一个iOS程序,争取早日把iPhone也变成遥控器

视频:
https://www.youtube.com/watch?v=VSJwZKd9ECw

下载:
https://github.com/mohammadreza-sharifi/Control-Raspberry-Pi-Pico-Robot-using-Android-Phone-Accelerometer

参考链接:
https://www.raspberrypi.com/news/raspberry-pi-pico-robot/

以上是关于请教:如何用单片机控制小车转弯?的主要内容,如果未能解决你的问题,请参考以下文章

求教如何用单片机控制LED灯的亮度

基于单片机智能自动循迹小车控制系统设计 毕设课设资料

如何用单片机控制液晶显示器呀,怎么接线……

开关电源,STM32单片机产生PWM控制MOS管通断,这个如何用电压反馈来控制PWM的占空比?

单片机课堂思考题-如何用手机控制单片机IO口-如点亮一个LED

单片机课堂思考题-如何用手机控制单片机IO口-如点亮一个LED