利用Nodemcu+Arduino nano+TB6612+点灯科技APP制作简易麦克纳姆轮Wi-Fi遥控小车

本文介绍了如何使用Nodemcu、Arduino nano和TB6612电机驱动制作简易麦克纳姆轮小车,并通过点灯科技APP进行无线控制。小车采用全向行驶设计,通过控制四个车轮的转动实现多方向运动。制作过程包括硬件连接、APP配置和代码编写。作品具有无线控制、无距离限制的优点,但也存在操作延迟的问题。
摘要由CSDN通过智能技术生成

摘要

麦克纳姆轮小车由于车轮本身的特殊结构,可以实现全向行驶,可玩性非常强。麦克纳姆轮原理在这里不做展开,麦克纳姆小车主要是通过控制四个轮胎的转与不转以及转动的方向来实现多方向的运动,其中一种X型车轮分布车轮转动方向与车体运动方向关系如下:在这里插入图片描述

所需材料

1. Nodemcu模块
2. Arduino nano 开发板
3. TB6612电机驱动模块×2
4. 麦克纳姆轮小车底盘
5. 点灯科技APP
6. 电烙铁、导线、稳压电源等

制作步骤

1. 将各模块按如下图所示进行连接

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.打开点灯科技APP,添加独立设备,在添加的设备界面添加如图所示的按键组件,数据键名与代码内一致

在这里插入图片描述
3.分别在Nodemcu和Arduino nano中写入以下代码

Nodemcu

#define BLINKER_WIFI          //选择WIFI连接模式
#include <Blinker.h>
#include <Wire.h>

char auth[] = "***************";       //BlinkerAPP内获取的设备密钥
char ssid[] = "Your Wi-Fi Name";       //Wi-Fi名称
char pswd[] = "Your Wi-Fi Password";   //Wi-Fi密码
BlinkerButton Button1("1");   //新建按键对象
BlinkerButton Button2("2");
BlinkerButton Button3("3");
BlinkerButton Button4("4");
BlinkerButton Button5("5");
BlinkerButton Button6("6");
BlinkerButton Button7("7");
BlinkerButton Button8("8");
BlinkerButton Button9("9");
BlinkerButton Button0("0");
BlinkerButton Button11("11");

void button1_callback(const String & state)      //按键1所执行函数
{
   
    BLINKER_LOG("get button state: ", state);
    if (state == BLINKER_CMD_BUTTON_PRESSED)     //按键按下
    {
   
      Wire.beginTransmission(1);                 //发送数据到设备号为1的从机
      Wire.write("f");                           // 发送字符串
      Wire.endTransmission();                    // 停止发送
      Button1.text("向前行驶");
      Button1.print();
    } 
    else if(state == BLINKER_CMD_BUTTON_RELEASED)//按键释放
    {
   
      Wire.beginTransmission(1); 
      Wire.write("s");           
      Wire.endTransmission();    
    }
    Blinker.vibrate();                          //手机震动
}

void button2_callback(const String & state) 
{
   
    BLINKER_LOG("get button state: ", state);
    if (state == BLINKER_CMD_BUTTON_PRESSED) 
    {
   
      Wire.beginTransmission(1); 
      Wire.write("b");           
      Wire.endTransmission();   
    } 
    else if(state == BLINKER_CMD_BUTTON_RELEASED)
    {
   
      Wire.beginTransmission(1); 
      Wire.write("s");           
      Wire.endTransmission();   
    }
    Blinker.vibrate();
}

void button3_callback(const String & state) 
{
   
    BLINKER_LOG("get button state: ", state);
    if (state == BLINKER_CMD_BUTTON_PRESSED) 
    {
   
      Wire.beginTransmission(1); 
      Wire.write("l");           
      Wire.endTransmission();   
    } 
    else if(state == BLINKER_CMD_BUTTON_RELEASED)
    {
   
      Wire.beginTransmission(1); 
      Wire.write("s");           
      Wire.endTransmission();   
    }
    Blinker.vibrate();
}

void button4_callback(const String & state) 
{
   
    BLINKER_LOG("get button state: ", state);
    if (state == BLINKER_CMD_BUTTON_PRESSED) 
    {
   
      Wire.beginTransmission(1);
      Wire.write("r");           
      Wire
  • 12
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值