极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12445|回复: 3

如何实现机器小车边跑边打开机械臂?

[复制链接]
发表于 2017-2-8 21:35:47 | 显示全部楼层 |阅读模式
本人新手一个。。现在参加一个机器人比赛但是技术不行啊。。想要一边用板子控制L298N跑直流减速电机,同时又控制6自由度机械臂上的舵机动作来节省时间。不过不知道怎么同时进行两项任务。。听说用中断可以,不过中断不是停下当前任务去执行另一项吗?。。
回复

使用道具 举报

发表于 2017-2-9 15:59:36 | 显示全部楼层
舵机不要用for循环,直接用servo.write()指令,就这一句,不用delay
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-2-9 19:50:27 | 显示全部楼层
本帖最后由 Johncalm 于 2017-2-10 00:13 编辑
zjz5717 发表于 2017-2-9 15:59
舵机不要用for循环,直接用servo.write()指令,就这一句,不用delay


噢,谢谢哈不过我有两个问题:
1、我的电机不是一直跑着哒,(场地用白线黑底,准备用正方形四个边分别四个红外巡线来全压到白线就count++一次这样来实现初步定位X,Y坐标)
2、我的舵机有6个。。要用PCA9685操控,而Arduino UNO一共只有2个servo口(如果我没记错的话。。。)Mega2560不知道有几个,不过不会到六个(然鹅。。到了六个以上servo口应该也用不来吧,,六个舵机电流太大了,所以只能用PCA9685,但是这个模块又好像很少有人用,在论坛里面有些许几篇。但是没看懂。。

所以综上,结合昨天刚请教别人得到的说是要用“定时器中断”,   现在我这个菜鸟就需要解决PCA9685操控和定时器中断的问题了。。请问有没有什么学习帖或资料推荐的QAQ    (由于是新手上路刚又问了个问题,,所以我等了1个小时才回复。。)


另外,我在网上看到许多人说舵机控制不用写delay()    但是我自己用一个舵机直接连上Arduino uno发现当

for(pos = 180; pos>=1; pos-=1;//从180度到0度运动  
{ myservo.write(pos);// 指定舵机转向的角度
delay(1);
  }
的时候抖得很厉害,如果是delay(10)就好一点儿;                      又有人试过不加delay()舵机坏掉了,只有一个舵机目前,我没敢尝试。。
回复 支持 反对

使用道具 举报

发表于 2017-2-10 20:39:08 | 显示全部楼层
Johncalm 发表于 2017-2-9 19:50
噢,谢谢哈不过我有两个问题:
1、我的电机不是一直跑着哒,(场地用白线黑底,准备用正方形四个边分 ...

不知道你的舵机的型号是什么,反正我用的9g舵机没什么问题,我之前用舵机做机械臂的话,如果确定这个机械臂的负载不是特别大的话,可以直接用servo.write,如果有一定量的负载的话还是建议带上delay
至于针脚的话,我记得UNO板上所有支持PWM输出的针脚都可以用于驱动舵机,而且9g舵机还可以直接使用板载5v电源供电,驱动几个9g舵机不是问题,毕竟现在的UNO板的电源芯片都升到800ma了,大一点的像航模的大舵机,可以用外接的电源给舵机供电,然后UNO只负责控制信号针就可以了,记得电源共地。
关于你的直流电机,我看你在驱动直流电机的同时还要巡线计数啥的,你可以考虑多用几个控制板然后控制板之间电源的那一排针脚连在一起就可以了,比如一块板子负责总控,一块板子负责电机,一块负责舵机,通过串口通信也是很方便的,我做机械臂小车的时候就是这么干的。。。


至于那个PCA9685我还真没用过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-27 03:06 , Processed in 0.041180 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表