Управляйте роботизированной рукой - PullRequest
1 голос
/ 26 марта 2012

У меня есть Cyber ​​Robot CYBER 310 и роботизированная рука Sciento CS-113 без документации. Оба используют параллельный порт.

Как я могу их запрограммировать?

Для Cyber ​​One я нашел это:

enter image description here

Ничего на Sciento.

Любые указатели или примеры в Python / Java / C / независимо от того, что оценили.

[обновление] Эта страница содержит некоторую информацию, но я все еще потерян: http://www.anf.nildram.co.uk/beebcontrol/arms/cyber/software.html

Ответы [ 2 ]

0 голосов
/ 05 апреля 2012

Крис прав в том, что параллельный порт является тупым интерфейсом.Параллельный порт имеет адрес, по которому вы можете вывести 8-битное двоичное число, соответствующее позициям цифрового выхода.

Я обнаружил, что это действительно хороший пример программирования параллельного порта с использованием C #.http://www.codeproject.com/Articles/4981/I-O-Ports-Uncensored-1-Controlling-LEDs-Light-Emit

Чтобы ваш проект соответствовал его примеру.C0 является стробоскопом.Тогда ваши цифровые выходы слева направо соответствуют его D0-D6.

Похоже, это действительно забавный проект.Веселитесь.

0 голосов
/ 04 апреля 2012

Я не совсем уверен, что понимаю, в чем вопрос.

Вы не знакомы с программированием параллельного порта?

Моя память на нем мутная, но с iirc все довольно просто.Это «тупой» интерфейс, поэтому вам просто нужно написать в него.

Если вы работаете в Linux, то есть несколько замечательных ресурсов:

Драйверы устройств Linux: Глава9: Обзор параллельного порта - немного поговорим о программировании параллельного порта и далее поговорим о написании драйверов устройств для него.Я думаю, что это немного излишне для вашего приложения, но вся книга увлекательна и поучительна.

Программирование портов ввода / вывода Linux - по сути, вы можете написать в / dev / port или включитьasm / io.h и используйте inb () и outb () (я давно этого не делал, но я уверен, что если вы столкнетесь с конкретной проблемой, там будет множество ответов, как только вы ее сузите)к чему-то конкретному)

Если вы работаете на Windows или Mac, тогда id все еще предлагает прочитать выше, чтобы вы знали, что вы пытаетесь сделать, они просты, на мой взгляд, тогда ищите эквивалент для Windows / Mac.

Теперь, как я предполагаю, суть вопроса в том, что вы пишете в порты?

Для Cyber ​​310 у вас есть расположение выводов, хотя, кажется, их несколько разныхрасположение булавок, если вы просматриваете сайт, который вы перечислили, и если мы следуем anf.nildram.co.uk здесь , мы можем найти некоторую сборку PIC, которая покажет нам, как вращать базу.

Я никогда не касался сборки PIC до сегодняшнего дня, но с некоторой помощью из интернета и комментариев, я думаю, мы можем перевести то, что это пытается сделать (вырезал соответствующую часть, так как большинствоэто время и цикл)

; 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

Так что, с моей наивной точки зрения, кажется, что для поворота рычага вам нужно установить биты двигателя (схваченные из вашей распиновки), затем установить и очистить строб.

Дайте мне знать, если я совсем не в базе, это увлекательный проект.

...