Arduino制作跳一跳物理外挂冲1000分

时间:2022-12-22 23:25:40
看了别人写的帖子,做了一个玩微信跳一跳的程序,然后辅助自己玩游戏,然后自己手也挺痒痒的,也想做出一个来。

看论坛里面别人用继电器做的,然后由于没有继电器,所以要找一个动作的东西代替,最后由舵机来实现来,舵机上压一个重物来将它固定好。

那么首先看一下成绩,是我不想玩了,室友把我给弄死了,要不然应该无限玩下去。

Arduino制作跳一跳物理外挂冲1000分

然后就是程序和接线了。由于水平有限,写的程序不好的地方请大家多多批评指正,然后一起互相学习,谋求进步。

舵机上固定一个棉签 ,棉签沾水湿润后通上5v电压,就可以充当触控笔了,然后固定到舵机法兰上,如下图。
具体舵机是什么,大家可以百度上搜或者到淘宝上看也可以,都可以搜到具体的图片可以看的很清楚,

包括舵机的外形结构, 注意弄明白舵机的动作,
和你想实现的运动过程:

Arduino制作跳一跳物理外挂冲1000分

以下是我的程序:

#include <Servo.h>
 
Servo myservo;
 
int char_to_int(char i)
{
  switch(i)
  {
  case '0':return 0;
  case '1':return 1;
  case '2':return 2;
  case '3':return 3;
  case '4':return 4;
  case '5':return 5;
  case '6':return 6;
  case '7':return 7;
  case '8':return 8;
  case '9':return 9;
  default: return 0;
  }
}
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(8,OUTPUT);
  myservo.attach(8);
  myservo.write(120);
  delay(2000);
}
 
void loop() {
  // put your main code here, to run repeatedly:
  char a,b,c;
  int i;
  while(!Serial.available());//等待数据
  if(Serial.available())
  {
    a=Serial.read();
    delay(3);
  }
  if(Serial.available())
  {
    b=Serial.read();
    delay(3);
  }
  if(Serial.available())
  {
    c=Serial.read();
    delay(3);
  }
  if(b==NULL)
  {
    i=char_to_int(a);
    Serial.println(i,DEC);
  }
   
  else if(c==NULL)
  {
    i=char_to_int(a)*10+char_to_int(b);
    Serial.println(i,DEC);
  }
  else
  {
    i=char_to_int(a)*100+char_to_int(b)*10+char_to_int(c);
    Serial.println(i,DEC);
  }
  i=i*23;
  for(int j=120;j<=135;j++)
  {
    myservo.write(j);
    delay(5);
  }
  delay(i);
  for(int j=135;j>=120;j--)
  {
    myservo.write(j);
    delay(5);
  }
}
然后再上个视频吧:

点击打开链接

最后就是接线的事了,其实只有一个舵机,给它通上电,由于舵机没有负载,因此用Arduino的vcc和gnd供电也可以,
然后信号线连到Arduino UNO的8号引脚。

最后说明一下量的数据,量的是两个地方的长度,单位mm,取整数就好,打开串口监视器输入数值发送出去就行:还有一点就是舵机的角度要自己找,这个角度每个人都不一样
具体的角度值怎么找可以参考我另一个帖子,串口控制舵机旋转的那个

希望大家多多批评指正,谢谢。

我的博客:www.iilala.com

邮箱:953598974@qq.com