极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2927|回复: 0

前轮转向(阿克曼)底盘的制作分享

[复制链接]
发表于 2022-11-29 16:01:37 | 显示全部楼层 |阅读模式
1.运动功能说明
       前轮转向(阿克曼)底盘可以通过后轮进行驱动,通过前轮控制方向,前轮转向结构和汽车类似,可以做到前进、后退、大半径转向等基本行驶功能,但不能实现原地转向。

2.结构说明
       样机包含一个直流电机、与齿轮、传动轴构成转动机构,用于驱动后轮;一个舵机,与连杆组一起构成阿克曼转向机构。

3. 运动功能实现
3.1 电子硬件
在这个示例中,采用了以下硬件,请大家参考:
主控板Basra(兼容Arduino Uno)
扩展板Bigfish2.1
电池7.4V锂电池

3.2 编写程序
编程环境:Arduino 1.8.19
运动功能的代码
/*------------------------------------------------------------------------------------
  版权说明:Copyright 2022 Robottime(Beijing) Technology Co., Ltd. All Rights Reserved.
           Distributed under MIT license.See file LICENSE for detail or copy at
           https://opensource.org/licenses/MIT
           by 机器谱 2022-9-8 https://www.robotway.com/
  ------------------------------
  实验功能:
          实现阿克曼底盘前进3秒,左转前进3秒,右转运动3秒.
  -----------------------------------------------------
  实验接线:

               |   |                   |   |
          .-----------------------------------.
          |                                   |
          |                                   |-------.
          | 后轮电机接5,D6                            |【车头】|阿克曼机构舵机接4
          |                                   |-------*
          |                                   |
          *-----------------------------------*
               |   |                   |   |

------------------------------------------------------------------------------------*/
#include<Servo.h>     //调用舵机库
#define Servo_Pin 4   //定义舵机引脚号
#define Angle_Zero 90   //设置舵机转动的角度为90度
#define Angle_One 120 //设置舵机转动的角度为120度
#define Angle_Two 60 //设置舵机转动的角度为120度

void Forward(); // 前进
void Turnleft();// 左转
void Turnright();// 右转
Servo myservo;   //声明舵机对象

//程序初始化部分:设置电机引脚为输出模式
void setup() {
  Serial.begin(9600);//开启串口,并设置波特率为9600
  myservo.attach(Servo_Pin);//设置舵机引脚
  pinMode( 5 , OUTPUT); //将引脚5设置为输出模式
  pinMode( 6 , OUTPUT); //将引脚6设置为输出模式
}

//主程序部分:阿克曼底盘运动
void loop() {
  Forward();
  delay(3000); //等待3秒
  Turnleft();
  delay(3000); //等待3秒
  Turnright();
  delay(3000); //等待3秒
}

//封装小车前进动作子程序
void Forward() {  
  myservo.write(Angle_Zero); //4号引脚舵机直接转到90度
  digitalWrite( 5 , LOW );   //后轮前进
  digitalWrite( 6 , HIGH );
}

//封装小车左转动作子程序
void Turnleft() {
  myservo.write(Angle_One); //4号引脚舵机直接转到120度
  digitalWrite( 5 , LOW );   //后轮前进
  digitalWrite( 6 , HIGH );
}

//封装小车右转动作子程序
void Turnright() {
  myservo.write(Angle_Two); //4号引脚舵机直接转到60度
  digitalWrite( 5 , LOW );   //后轮前进
  digitalWrite( 6 , HIGH );
}


资料内容:例程源代码、样机3D文件【资料下载链接https://www.robotway.com/h-col-144.html


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-29 11:28 , Processed in 0.037654 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表