我有一台Cyber Robot CYBER 310和一台没有文档的Sciento CS-113机器人手臂。两者都使用并行端口。
我怎么能编程呢?
对于Cyber one,我发现了这个:
在Sciento上没有任何东西。
Python / Java / C /中的任何指针或示例。
[更新]此页面包含部分信息,但我仍然遗失:http://www.anf.nildram.co.uk/beebcontrol/arms/cyber/software.html
答案 0 :(得分:0)
我不完全确定我明白这个问题是什么。
您是否不熟悉并行端口的编程?
我对它的记忆是模糊的,但是它非常简单。这是一个“愚蠢”的界面,所以你只需要写它。
如果你在linux下运行,那么就有一些很好的资源:
Linux Device Drivers: Chapter 9: An Overview of the Parallel port - 谈谈并行端口编程,然后继续讨论为它编写设备驱动程序。我认为对你的应用来说有点矫枉过正,但整本书很有吸引力,也很有启发性。
Linux I/O port programming - 基本上你可以写入/ dev / port,或者包含asm / io.h并使用inb()和outb()(我有一段时间没有这样做,但我确定如果你遇到一个特定的问题,一旦你把它缩小到特定的东西,就会有很多答案。
如果您使用的是Windows或Mac,那么ID仍然建议阅读以上信息,以便您知道自己要做什么,在我看来它们很简单,然后搜索等效的windows / mac。
现在我认为问题的症结在于,你对港口写了什么?
对于Cyber 310,你有引脚布局,但如果你浏览你列出的网站似乎有多种不同的引脚布局,如果我们关注anf.nildram.co.uk here,我们可以找到一些PIC组件将向我们展示如何旋转底座。
我在今天之前从未接触过PIC汇编,但是在internet和评论的帮助下,我认为我们可以翻译它试图做的事情(剪掉相关部分,因为大部分都是时间和循环)
; 6: Symbol prf = PORTA.0
; The address of 'prf' is 0x5,0
; 7: Symbol strobe = PORTA.1
; The address of 'strobe' is 0x5,1
; 8: Symbol base = PORTB.0
; The address of 'base' is 0x6,0
; 9: Symbol shoulder = PORTB.1
; The address of 'shoulder' is 0x6,1
...
; 16: main:
L0001:
; 17: base = 1
BSF 0x06,0 // set bit 0 at 0x06 to 1 essentially set base bit to 1
; 18: strobe = 1
BSF 0x05,1 // set strobe bit to 1
; 19: strobe = 0
BCF 0x05,1 // set strobe bit to 0
; 20: While a <> 730 // now we loop 729 more times
从我天真的角度看,旋转手臂需要设置电机位(从引脚输出中抓取),然后设置并清除频闪。
如果我完全偏离基础,请告诉我,这是一个非常有趣的项目。
答案 1 :(得分:0)
Chris对于并行端口是一个愚蠢的接口是正确的。并行端口的地址可以输出8位二进制数,以匹配数字输出的位置。
我发现这是使用C#编程并行端口的一个很好的例子。 http://www.codeproject.com/Articles/4981/I-O-Ports-Uncensored-1-Controlling-LEDs-Light-Emit
将您的项目与他的示例相匹配。频闪是C0。然后,从左到右的数字输出与他的D0-D6相匹配。
看起来像一个非常有趣的项目。玩得开心。