小白的机甲大师总结

在这里插入图片描述
任务一 控制电机旋转
1号电机27,13引脚控制;2号电机4,2引脚控制;3号电机17,12引脚控制;4号电机15,14引脚控制

  analogWrite(27,255);
  analogWrite(13,0);
  analogWrite(4,255);
  analogWrite(2,0);
  analogWrite(17,255);
  analogWrite(12,0);
  analogWrite(15,255);
  analogWrite(14,0);

`

任务二 控制车前后左右移动,平移
前进:四个轮子正转;后退:四个轮子反转;左转:左侧轮反转,右侧轮正转;右转:左侧轮正转,右侧轮反转;左平移:1,4号轮反转,2,3号轮正转;右平移:1,4号轮正转,2,3号轮反转;停止:四轮不转。
平移使用麦克纳姆轮

void qianjing(){
  analogWrite(27,255);
  analogWrite(13,0);
  analogWrite(4,255);
  analogWrite(2,0);
  analogWrite(17,255);
  analogWrite(12,0);
  analogWrite(15,255);
  analogWrite(14,0);
}
void houtui(){
  analogWrite(27,0);
  analogWrite(13,255);
  analogWrite(4,0);
  analogWrite(2,255);
  analogWrite(17,0);
  analogWrite(12,255);
  analogWrite(15,0);
  analogWrite(14,255);
}
void zuopingyi(){
  analogWrite(27,0);
  analogWrite(13,255);
  analogWrite(4,255);
  analogWrite(2,0);
  analogWrite(17,255);
  analogWrite(12,0);
  analogWrite(15,0);
  analogWrite(14,255);
}
void youpingyi(){
  analogWrite(27,255);
  analogWrite(13,0);
  analogWrite(4,0);
  analogWrite(2,255);
  analogWrite(17,0);
  analogWrite(12,255);
  analogWrite(15,255);
  analogWrite(14,0);
}
void zuo(){
  analogWrite(27,0);
  analogWrite(13,255);
  analogWrite(4,0);
  analogWrite(2,255);
  analogWrite(17,255);
  analogWrite(12,0);
  analogWrite(15,255);
  analogWrite(14,0);
}
void you(){
  analogWrite(27,255);
  analogWrite(13,0);
  analogWrite(4,255);
  analogWrite(2,0);
  analogWrite(17,0);
  analogWrite(12,255);
  analogWrite(15,0);
  analogWrite(14,255);
}
void stop(){
  analogWrite(27,0);
  analogWrite(13,0);
  analogWrite(4,0);
  analogWrite(2,0);
  analogWrite(17,0);
  analogWrite(12,0);
  analogWrite(15,0);
  analogWrite(14,0);                
}

任务三 PS3手柄控制车
摇杆:stick.lx/ly/rx/ry;方向键:button.up/down/left/right;图形键:button.triangle/square/cross/circle;前按键:button.l1/l2/r1/r2。
配对地址

#include <Ps3Controller.h>
void kongzhi(){
      if(Ps3.data.analog.stick.lx>=100){
      you();}
    else if (Ps3.data.analog.stick.lx<=-100){
        zuo();}
    else if(Ps3.data.analog.stick.rx>=100){
      youpingyi();}
    else if(Ps3.data.analog.stick.rx<=-100){
      zuopingyi();}
    else if(Ps3.data.analog.stick.ly>=100){
      houtui();}
    else if(Ps3.data.analog.stick.ly<=-100){
      qianjing();}
    else if(Ps3.data.analog.stick.ry>=100){
      houtui();}
    else if(Ps3.data.analog.stick.ry<=-100){
      qianjing();}
    else{
      stop();
    }
}

撞击感应
振动传感器感应力度,力度>500闪一下红灯,常规绿灯。

#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel rgb_display_5 = Adafruit_NeoPixel(12,5,NEO_GRB + NEO_KHZ800);
void boom(){
  if (analogRead(32)>=500){
    for(int i = 0;i <16;i++){
      rgb_display_5.setPixelColor(i,255,0,0);
    }
    rgb_display_5.show();
    delay(200);
  } else{
    for (int i = 0;i<16;i++){
      rgb_display_5.setPixelColor(i,0,255,0);
    }
    rgb_display_5.show();
  }
}

舵机
通过手柄控制摇臂控制发射器上下。

#include<ESP32Servo.h>
void duoji(){
  if(Ps3.data.analog.button.l2){
    if(servo < 180){
      servo_25.write(servo);
      delay(10);
      servo=servo+2;
    }
  }else if(Ps3.data.analog.button.r2){
    if(servo>90){
      servo_25.write(servo);
      delay(10);
      servo=servo-2;
    }
  }
}

发射器
用手柄控制发射器发射子弹

void biubiu(){
  if (Ps3.data.analog.button.l1){
    analogWrite(26,255);
 
  }else{
    analogWrite(26,0);
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值