projects:giant_robot_arm
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
projects:giant_robot_arm [2020/04/21 21:46] – created hibby | projects:giant_robot_arm [2023/10/10 16:40] (current) – andy | ||
---|---|---|---|
Line 46: | Line 46: | ||
</ | </ | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | Robot arm handover notes, email from 11sth May 2015... | ||
+ | < | ||
+ | Hi All, | ||
+ | It's long overdue, but I've finally got around to putting together some handover notes for the robot arm - hopefully they' | ||
+ | |||
+ | Ed has kindly agreed to act as the arm's ' | ||
+ | |||
+ | Finally, if you manage to do anything interesting with the arm, please let me know - I'm curious to see just what it can do for someone who can devote a bit of time to it. | ||
+ | |||
+ | Cheers, | ||
+ | Calum | ||
+ | |||
+ | ------ | ||
+ | |||
+ | Background | ||
+ | ========== | ||
+ | |||
+ | The arm is a Microbot Teachmover II (also known as the Microbot Alpha II, or "your metal pal who's fun to be with" | ||
+ | |||
+ | The arm has 5 degrees of freedom (base, shoulder, elbow, left wrist and right wrist) - the 6th (gripper) is missing on this particular arm, but could probably be added without too much drama. The individual joints are driven by steppers using a system of gears and cables, rather than being driven directly. The manual states that the resolution of the arm can be as fine as 0.011" with a speed of between 2" and 7" per second, depending upon load. The cables may need to be re-tensioned in order to get that level of accuracy though. Full specs can be found on the manufacturer website [1], where it's still sold for $5800. | ||
+ | |||
+ | |||
+ | A typical setup would be: | ||
+ | |||
+ | [ Teach Pendant ] --> [ ] | ||
+ | [ System | ||
+ | and/ | ||
+ | [ Unit ] | ||
+ | [ PC ] < | ||
+ | |||
+ | |||
+ | System Control | ||
+ | ============== | ||
+ | |||
+ | In recent hardware revisions, the System Control unit appears to have been integrated into the base of the arm, however the version supplied is roughly the size of a desktop PC base-unit. It's a 6502-based machine with the following ports: | ||
+ | |||
+ | * 1x DB-50 for connect to the arm (see ' | ||
+ | * 1x DB-25 serial port to connect to a PC. [2] | ||
+ | * 1x DB-25 serial port to connect to ' | ||
+ | * 1x DB-15 port for ' | ||
+ | * 2x 14-pin connectors (unfamiliar type) for driving auxiluary motors. | ||
+ | * 1x 24-pin connector (same unfamiliar type) for connecting to the Teach Pendant. | ||
+ | |||
+ | The teach pendant is a handheld controller used to control the arm, optionally record sequences for later playback. It's unclear whether there' | ||
+ | |||
+ | Also, there is space on the PCB for 18 opto-isolators (3 already populated), providing 10 inputs lines and 8 output lines for interfacing with other hardware. | ||
+ | |||
+ | Given the size, age, lack of documentation, | ||
+ | |||
+ | |||
+ | Arm Hardware | ||
+ | ============ | ||
+ | |||
+ | The steppers are driven by 7 pairs of 3717 controllers [3] located in the base of the arm, with each controller driving one winding of a stepper. The controllers (as numbered on the PCB) are paired as follows: | ||
+ | |||
+ | Controller | ||
+ | ---------- | ||
+ | U1 & U2 Elbow | ||
+ | U3 & U4 | ||
+ | U5 & U6 Rt. Wrist | ||
+ | U7 & U8 | ||
+ | U9 & U10 Base | ||
+ | U11 & U12 | ||
+ | U13 & U14 Lt. Wrist | ||
+ | |||
+ | The steppers may be driven in either full-step, half-step or quarter-step modes, depending upon the stepping sequence used (see datasheet). | ||
+ | |||
+ | The only other chips in the base are a pair of LM339 comparators [4]. I'm not sure what these are used for - possibly for use with motor limit sensors or grip sensors? | ||
+ | |||
+ | |||
+ | Interface | ||
+ | ========= | ||
+ | |||
+ | We communicate with the arm via a DB-50 (female) port on the base. Despite appearances, | ||
+ | |||
+ | The pinout (looking at the arm) is as follows: | ||
+ | |||
+ | ---------------------------------------------------------------- | ||
+ | \ / | ||
+ | | ||
+ | \ / | ||
+ | | ||
+ | \ / | ||
+ | \ 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 / | ||
+ | \__________________________________________________/ | ||
+ | |||
+ | Probing the board with a multimeter, I've established that the pins are mapped as follows: | ||
+ | |||
+ | Pin Usage | ||
+ | --- ----- | ||
+ | 01 U14 Phase | ||
+ | 02 U13 Phase | ||
+ | 03 U5 I0 | ||
+ | 04 U6 I0 | ||
+ | 05 U12 Phase (Currently unused) | ||
+ | 06 U11 Phase (Currently unused) | ||
+ | 07 U3 I0 | ||
+ | 08 U4 I0 | ||
+ | 09 U10 Phase | ||
+ | 10 U9 Phase | ||
+ | 11 U1 I0 | ||
+ | 12 U2 I0 | ||
+ | 13-16 ???? | ||
+ | 17 GND | ||
+ | 18 U14 I0 | ||
+ | 19 U13 I0 | ||
+ | 20 U5 Phase | ||
+ | 21 U6 Phase | ||
+ | 22 U12 I0 (Currently unused) | ||
+ | 23 U11 I0 (Currently unused) | ||
+ | 24 U3 Phase | ||
+ | 25 U4 Phase | ||
+ | 26 U10 I0 | ||
+ | 27 U9 I0 | ||
+ | 28 U1 Phase | ||
+ | 29 U2 Phase | ||
+ | 30-33 ???? | ||
+ | 34 Grip sensor pin2 | ||
+ | 35 Grip sensor pin4 | ||
+ | 36 GND | ||
+ | 37 GND | ||
+ | 38 ???? | ||
+ | 39 +12v at 4.5A (motor supply) | ||
+ | 40 +5v (logic supply) | ||
+ | 41-50 ???? | ||
+ | |||
+ | |||
+ | 4 of the remaining '????' | ||
+ | |||
+ | The pneumatic connections on the base are not used as part of the arm's operation - they were presumably used to drive some form of actuator in place of the gripper. | ||
+ | |||
+ | |||
+ | Replacement Controller | ||
+ | ====================== | ||
+ | |||
+ | Using the above mappings, I've created a sketch for the Arduino to drive the arm. It should serve as a decent starting point for your projects, though I realise it's missing a few 'nice to have' features. Given the number of pins required, it's pretty much limited to running on an Arduino Mega. | ||
+ | |||
+ | You can find the code at github.com/ | ||
+ | |||
+ | Questions, pull requests and forks all welcome, though I can't guarantee I'll be doing much more development on it going forward. | ||
+ | |||
+ | There are a couple of outstanding ' | ||
+ | |||
+ | * Clean up the Serial.Print debug code - these calls have a significant performance impact when made during a motor movement and should be made only when strictly necessary. | ||
+ | * Implement separate timers for each motor, allowing them to run simultaneously at different speeds. | ||
+ | * Implement some other input sources e.g. serial, network, SPI, Ed's mind-control helmet... [5] | ||
+ | |||
+ | |||
+ | Markings | ||
+ | ======== | ||
+ | |||
+ | Arm Serial# plate: | ||
+ | MICROBOT Alpha | ||
+ | SERIAL NO. 1564 | ||
+ | |||
+ | Arm base PCB: | ||
+ | MICROBOT INC | ||
+ | ALPHA MOTOR DRIVE | ||
+ | ASSY: 10131 | ||
+ | REV. A | ||
+ | Serial No. 636 | ||
+ | |||
+ | System Control unit PCB: | ||
+ | MICROBOT | ||
+ | PROCESSOR | ||
+ | ASSY 10060 | ||
+ | REV 1985 | ||
+ | Serial No C0190002 | ||
+ | 1564 [6] | ||
+ | |||
+ | |||
+ | Footnotes | ||
+ | ========= | ||
+ | |||
+ | [0] https:// | ||
+ | |||
+ | [1] http:// | ||
+ | |||
+ | [2] The latest version of the software is named the ' | ||
+ | http:// | ||
+ | |||
+ | [3] http:// | ||
+ | |||
+ | [4] http:// | ||
+ | |||
+ | [5] The Pixy camera would also be a nice input source: | ||
+ | http:// | ||
+ | https:// | ||
+ | |||
+ | [6] Note that this matches the number marked on the arm itself - the base and the arm were definitely supplied together. | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | {{tag> |
projects/giant_robot_arm.1587505611.txt.gz · Last modified: 2020/07/07 20:48 (external edit)