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

看了别人写的帖子,做了一个玩微信跳一跳的程序,然后辅助自己玩游戏,然后自己手也挺痒痒的,也想做出一个来。

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

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


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

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

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


以下是我的程序:

#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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
本文根据时下最火小游戏微信跳一跳,编写的物理外挂,实现简单,具有DIY精神的都能迅速上手。废话不多说,先来点视频开开胃。 哈哈哈,是不是很爽很刺激,好了,不吊胃口了,还是整点干货吧。 准备1:手机一部,电脑端下载好投屏软件,苹果的airplay,安卓的忘了,自己找下,嘻嘻嘻。。。。 准备2:搞电子的才有,继电器模块一个,随便什么开发版一块,有串口就行,usb转串口模块一个。 准备3:电脑上装上我提供的“跳一跳物理外挂.exe",这个才是核心,后面我会贴源码,low不low不要紧,关键好用,我花了一天时间学的,代码拙劣,慎看,/呲牙。 准备工作做完了,现在开始动工,先做物理。 首先拿出你的继电器模块,然后把继电器给削了(捂嘴笑)哈哈,我也不知道怎么告诉你怎么削,还是给个图吧。 哎吆我去,这图这么大的咧,将就看看。反正就是把继电器的壳子给拿掉。温馨提醒:用刀的时候注意点,手弄破没事,别把继电器线圈削了(幸灾乐祸的笑呵呵) 然后呢,找个导电的,有电容的,弹簧呀,电容笔呀,或者湿海绵呀。。。一切可以让手机触摸屏反应的材料都行,就是要小一点。 反正我是找了个弹簧,还把它焊在了继电器的活动片上。不会的,看图,下面没图,还是上面那张。 硬件部还差个单片机,这个你们都会的,专业的嘛,随便整个单片机最下系统就行,带个串口,协议我告诉你简单。 帧头32位的最高8位后8位后8位后8位 ‘A’00000000 看到没,接收到串口数据后,把除了'A' 之外的四个8位的数据合并成一个32位的数据,这个合并后的数据,就是ms,是多少就是多少ms。 简单吧,单片机只要接收到这组串口数据,就可以进行操作了,(忘了说了波特率115200 ,8,0,1,我想大家都看得懂,不解释了。) 主程序代码如下: if(收到串口发来的数据) { 将4个字节接收到的数据转化为32位的数据; 继电器置1或者置0(看你电路了,让它按下去就行,模拟按下动作); 延时(xx ms);(这就是那个32的数据) 继电器置1或者置0(看你电路了,让它抬起来就行,模拟抬起动作); } 实在不会的,也没事,我不是还有程序源码的嘛; 好了好了,硬件就到这了,整点软件的。软件c#写的,高手的话,简单,随便你们喷,反正我也不熟,就学了一天,整成这样,自认为还行。 源码,我会贴上去,别急。 操作部。我是鼠标左键点击确定起点位置,鼠标右键点击确定终点位置。也就是说,你想跳,那就鼠标左键点起点,鼠标右键点终点。根据距离计算时间。软件上,有个系数,用来确定不同电脑,不同辨率的,自己调试下, 一致就行。截图截图,看图看图。 先打开这个软件,苹果的airplay,然后打开手机,选择airplay镜像。然后将软件全屏。 打开我的那个"跳一跳物理外挂.exe", 选择串口后,就点连接,没啥问题是不会有任何提示的。有问题就报错了。(哈哈哈,仰天长啸中) 下面这个框 3.5,这个就是系数了,要将我的这个软件和投上去的界面重合,这样才行。然后你试试鼠标左键,鼠标右键,看看你的继电器会不会动。(不会动就是你程序有问题,硬件有问题,电脑有问题,反正我的是好的,我不管,自己检查) 还有就是,这个软件是由两个窗体组成的,一个透明的,一个透明有边框的,别问我为什么,因为我不知道如何设置透明鼠标不穿透,你也不知道呀,哈哈哈(鬼畜中),会的私信我,我学一下。所以,如果点击的时候会触发这个软件后面的东西,那么请点击任务栏中,将窗体设置到最前,其实就是获取热点了,其实就是激活窗口啦,笨呢,点不到说明窗口不在激活状态嘛。 好了,不说了, 下面都是图了,你们自己玩吧。 啰嗦一句,把框框对齐哟,不然跳不准呢。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Allen953

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值