查看: 1027|回复: 16

[未解决] 自动抛石机的编程,两个舵机一个碰撞传感器。

[复制链接]
  • TA的每日心情
    难过
    2020-3-31 13:53
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2020-3-31 11:31 | 显示全部楼层 |阅读模式
    以前从未接触这个,突然老师就要求写这个的编程,非常希望得到帮助。
    大意是这样的:一个舵机装上凸轮一直不停的360度旋转,这样可以控制抛杆上下运动(附带皮筋作为抛物的动能),抛头撞上下方的碰撞传感器,传感器发出信号给另一个舵机,里一个舵机选择一圈将料推进抛头,然后凸轮转到凹的地方,皮筋带动抛杆发射。循环往复。
    时间有点紧。附带一提用的是mega2560板子。

    B382A933BD9C6FDED91F3EC27EB15D50.jpg
  • TA的每日心情
    难过
    2020-3-31 13:53
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-3-31 11:36 | 显示全部楼层
    图中间抛头下面的碰撞传感器没有画出来呢,然后抛头左边的倒L型是装料的地方,最左边就是接受传感器信号的舵机,转一圈控制小车一来一回将料推进抛头。
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2020-3-31 23:59 | 显示全部楼层
    舵机已经拆掉了限位装置,360度当电机用了对吧?
  • TA的每日心情
    难过
    2020-3-31 13:53
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-4-1 11:38 | 显示全部楼层
    t3486784401 发表于 2020-3-31 23:59
    舵机已经拆掉了限位装置,360度当电机用了对吧?

    是的,请问可以大致写下编程吗,不需要完全对,我可以给老师修改下。

    该用户从未签到

    发表于 2020-4-1 12:56 | 显示全部楼层
    [mw_shl_code=arduino,true]#include <Servo.h>

    Servo myservo1;  
    Servo myservo2;  

    int spd = 120;   
    int sw = 3;
    int pos = 0;

    void setup() {
      pinMode(sw, INPUT_PULLUP);
      myservo1.attach(9);  
      myservo2.attach(10);
    }

    void loop() {

      myservo1.write(spd);
      if (digitalRead(sw) == LOW)
      {  
        for (pos = 0; pos <= 180; pos += 1)
        {
          myservo2.write(pos);              
          delay(15);                       
        }
       
        for (pos = 180; pos >= 0; pos -= 1)
        {
          myservo2.write(pos);              
          delay(15);                       
        }
      }
    }[/mw_shl_code]
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2020-4-1 13:11 | 显示全部楼层
    kk847986050 发表于 2020-4-1 11:38
    是的,请问可以大致写下编程吗,不需要完全对,我可以给老师修改下。

    这样的机器用不到 Servo 类库,因为都是通电就转的功能。

    驱动凸轮的那个好说,直接接电源上不需要程序控制;
    驱动推料杆的那个比较麻烦,不容易控制“转一圈”这个功能,因为不知道通电多久对应一圈,建议研究下这个问题
  • TA的每日心情
    难过
    2020-3-31 13:53
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-4-1 13:24 | 显示全部楼层
    i7456 发表于 2020-4-1 12:56
    [mw_shl_code=arduino,true]#include

    Servo myservo1;  

    容我先膜拜下
  • TA的每日心情
    难过
    2020-3-31 13:53
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-4-1 13:25 | 显示全部楼层
    t3486784401 发表于 2020-4-1 13:11
    这样的机器用不到 Servo 类库,因为都是通电就转的功能。

    驱动凸轮的那个好说,直接接电源上不需要程序 ...

    这样啊,帮我看下五楼的编程是那意思不?非常感谢!!!
  • TA的每日心情
    擦汗
    2019-7-29 00:08
  • 签到天数: 47 天

    [LV.5]常住居民I

    发表于 2020-4-1 14:24 | 显示全部楼层
    kk847986050 发表于 2020-4-1 13:25
    这样啊,帮我看下五楼的编程是那意思不?非常感谢!!!

    估计 5L 的兄弟已经跑偏了,那里用到了 Servo 类,这个是产生 PWM 带动舵机的。

    你这舵机拆掉了限位器,应该当减速电机用了,直接控制通断就有,非要用的话也是 L298 之类的电机驱动类
  • TA的每日心情
    难过
    2020-3-31 13:53
  • 签到天数: 2 天

    [LV.1]初来乍到

     楼主| 发表于 2020-4-1 15:25 | 显示全部楼层
    t3486784401 发表于 2020-4-1 14:24
    估计 5L 的兄弟已经跑偏了,那里用到了 Servo 类,这个是产生 PWM 带动舵机的。

    你这舵机拆掉了限位器, ...

    不不,我可能哪里表述不正确,我就是要用到两个舵机,一个传感器。带凹轮的舵机一直朝一个方向不停旋转,凸的部分就抬起杆尾,这样抛头就往下压了,然后抛头撞上碰撞传感器,传信号给另一个舵机,于是这个舵机也朝一个方向旋转,就推动小车进行推料进抛头再返回。(刚好一圈是要调延时的,可以回头慢慢调)正好凹轮凸的部分接触完了,转到了凹的部分,这样就没有接触来抬起杆尾了,于是皮筋之前被撑起后又回缩将料抛走。所以说这个推料的舵机刚好一圈基本是可以通过调节带凹轮的舵机转速来达到的。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    Arduino UNO中文数据手册
    Arduino UNO中文数据手册
    2018.9.23重新翻译整理 转载请注明来自Arduino中文社区,并附本帖链接 本帖地址:http
    LabVIEW监控温度传感器
    LabVIEW监控温度传感器
    这里涉及 dht11 数字温度湿度传感器模块、TM1637数码显示模块、LabVIEW。 功能
    黑乌鸦的Arduino兵器库-----DS1302时钟模块
    黑乌鸦的Arduino兵器库---
    嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以 大家的回复将是我最大
    中文 字库 的8针 OLED 12864模块 arduino
    中文 字库 的8针 OLED 128
    屏幕电路SPI连线: 中文字库OLED Arduino UNO GND GND
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表