Home

to open the manual in a new window (pdf download).

image

Contents

1. Convert 16 bit 2 s complement number to ASC GERMES von tunes be erben Clear MOTBF array CEB Clear TBUF DRBUF amp MOTBF arrays GENE Z 22 Get 16 bit signed value from keyboard POSDS Display relative position array elements POST LL tote Increment relative position array elements STORES 15x55 54 no nv eM Copy TBUF to current ARST slice RESET DE Clear POSAR array PUTGHR zione S de Print character ic PPS Print a string PSPACGS AAA E ENE pe De a n Print a space kr Print a carriage return 4 24 SUBROUTINES INDEX continued SCKBD re Par Scan the keyboard GCHRAS Get a character and print it CLR Cee undo Clear the Screen 2 cendi S dad Delay on value in B DELS Delay approx 0 001 sec DELT Delay approx 0 01 sec 1 0 sec WA 25 SUBROUTI NE DOALL This subroutine executes a sequence in store once Forever flag FORFG DOALL NMOTS RET2 CARON CE RES G d WR Wee oO 2 Q D CALL POP POP CALL RET is cleared BC COUNT A B Z RET2 HL ARST DE TBUF BC BC 0006 DNEWD NZ
2. Li TRYN2 TRYN3 4 5 C TRYN6 C EE CG w E ALL OR ALL INC ALL INC ALL INC ALL CLRMF A 3840H Z IGDEL DELT DELT A KEYP A 3810H 0 Z TRYS NOTNG A 3804H 3 A 3810H 7 1 Z STORE 1 BC 0 1 Z TRYN2 FORMT BC 2 A Z TRYN3 FORMT BC 3 7 4 FORMT BC 4 7 5 FORMT BC 5 A Z TRYN6 FORMT BC 6 A Z TRYGT FORMT Ne Ne Se se se NO So se se Ne Ne Ne se se Ne Ne Ne Ne se lt Ne Ne Ne Ne 4 744 4 Ne Ne se 4 This routine scans the keyboard checking for and LOMME RANT EN It then drives the motors corresponding If in learn mode the and 5 Clear MOTBF array Get TRS80 keyboard byte See if No space key so skip Slow motor driving Clear KEY PRESSED flag Is the zero key pressed No then skip Go to do nothing See if S key pressed Restore memory value No then skip See if in manual mode No then store TBUF Set not finished flag and exit to caller Clear MOTBF offset in BC See if 1 key is pressed No then skip else Set up motor 1 position in MOTBF Increment MOTBF offset See if 2 key pressed No skip Set second motor forward Advance offset See if 3 key pressed
3. 545 i N 225 78 4 49 If you compare the table values with the tables on the previous page you will note difference this is because and QC are exchanged in the above table due to the hardware switching these two lines NOTE REMEMBER WHEN WRITING PROGRAMS DIRECTLY DRIVE THE ARM SO THAT THE QB AND QC OUTPUT BITS SHOULD REVERSED SO THAT THE TOP FOUR BITS ARE D8 QA D7 D6 QB D5 QD 610 CONSTRUCTION OF SUITABLE PORT FOR THE ARMDROID circuit diagram is given which describes in particular the construction of an 8 bit bi directional non latched circuit as given is for the TRS80 bus but it should port The be possible with reasonably simple modifications to alter 1 t for most 280 type systems The circuit described is non latched port so the utput data will appear for only a short period on the 8 data lines As can be seen from the diagram the circuit draws its 5 volt power supply from the arm s interface port and not processor it is connected to The port was construc from the ted this way due to the fact that some commercial microprocessor systems do not have a 5v output supply When the above circuit is connected to the arm s interface card the bottom bit is usual
4. HL AF BC DE HL HL POSST PSTR B 6 DE POSAR A DE L A DE A DE H A DE 1X NUMAR CBTAS NUMAR PSTR PSPAC NPOSA PNEWL HL DE BC AF is from its se Ne Ne NO NO NO 4 4 Ne Ne Ne Ne Ne se se 4 x Save all registers Print RELPOS String Motor count into B Point to array containing offsets Get lower order byte into L Increment memory pointer Get higher order byte into H Increment to next number 1X points to result string Convert HL and leave in 1X Point to result string Print it Print a space Do for next motor Print a new line all done Restore all Registers Now return 2 42 SUBROUTI POSIC motor 51 But this be rotat POSIC NPOS1 NONZM RDPOS STPOS NPOS2 NE increments tep offset counts is very unlikely USH USH USH USH E tg E EH E ca CJ Q D EDZ i Q H Q pj Omm DEC DEC DEC POP DJNZ POP POP POP POP RET AF BC DE HL B 6 DE MOTBF 5 HL POSAR 10 BC C HL HL HL DE w gt J D NZ NONZM HL NPOS2 1 NZ RDPOS BC STPCS BC HL B HL HL C HL HL DE BC NPOS1 HL DE BC AF
5. thi irer t she morder ot trer iot de K 3L Us 2 227 Colter Phe cots its the thie toi nig 22 bx ELECTRONI CS Si dl The Description Interface To enable the Armdroid to function with as wide a range of microprocessor equipment as possible tandard 8 bit bidirectional or non latched be used to input da round a S lines are In the output defined as four data bits the port interface is designed This may be latched mode D4 D2 and one bit travel on the port 01 Four user can con The address bits are used to channel the step pattern to The three address bits can define eight of which 1 6 are used to select one of the motors 0 and 7 are unallocated selected moto Dl indicates rol Es the Dl is low high which causes output latch In the input on the arm point for eac fr The tr ansition of the stepper motor coils direct direction of data travel om the microswitches Dl from high the step pat D8 D3 mode These h of reed switches and magnets provide a the movements of the arm If non latched the interface will normally ta to the micro the port is configured as follows The eight D8 D5 three address bits to identify the direction of data data lines are provided
6. BC HL HL TBUF B 6 A HL A NZ STOR1 1X 0 0 HL COUNT HL A H 1 NC OVRFW COUNT HL I CTBUF HL BC HL OVFMS PSTR PNEWL Z REDO Z EXI T2 OVRFM N HL BC BC QUES1 DE CUROW HL TBUF BC 0006 DE 4 Save registers Point to TBUF motor Get TBUF N Is TBUF element zero count No then do store Point to next element Go dc next element check All TBUF zero so exit Clear DRBUF element Get current count value Advance it See if over or at 512 bytes Yes then overflow Put back advanced count Get current row pointer in DE Get TBUF pointer in HL Count for Copy TBUF six motors to ARST 1 Replace updated row pointer CUROW Clear buffers Restore Registers Now return to caller Print overflow situation Message Get response Print a new line User typed a D Yes then clear all User typed an S Yes exit with sequence saved Bad input Clear al try again arrays etc Restore Registers Throw away return address Back to main loop SUBROUTINE RESET This subroutine clears the POSAR array RESET PUSH BC 7 PUSH DE Save Registers PUSH His 7 LD HL POSAR Point to POSAR start LD DE POSAR
7. Yes then do arm set T 2 a JP Z TOSTM Yes then move arm to start CP kG a JP 2 GO Do execute movements stored CP ers a D JP Z DISP Yes then display ARST array CP JP Z BOOT 1 Yes then restart system CP JP Z MANU Yes the Manual control of arm CP EU a F JP Z FREARM Yes then clear all motors d 507 JP Z FINSH Yes then quit program LD HL QMESS Point to PARDON message CALL PSTR 2 Print it JP QUE S Try for next command 4 STE THE LEARN ROUTINE This section deals with the recording of LEARN WAITI WAIT2 NOINT STLRN CONLN LD CALL CALL CALL CP JUDD an arm sequence HL RELNS PSTR GCHRA PNEWL BET Z QUES1 Z WAIT 7 NOINT PNEWL LEARN MOVTO INIT HL CASRD PSTR GCHRA Y QUES1 SPAC NZ WAIT2 TORQUE STLRN HL COUNT A L H Z NOSTR A MAN A KEYIN A NZ CONLN MOVTO QUES1 4 Ne NO Ne Ne Ne Ne 4 Ne Ne Point to learn message Print the message Get response and print it Print a new line Response a Back to main Response an Y loop is uder types a 9 Learn sequence from start a C Continue learning from end of sequence output a new line Bad answer so try again Move arm to start position Clear variables
8. 0570 BC QUES1 BC HL HL PSPAC NEXTE PNEWL BC BC A COUNT NZ DOROW A COUNT 1 B NZ DOROW PNEWL QUES1 4 23 se se Ne Ne NO NO NO 4 Ne Ne Ne Ne Ne Ne se se Ne Ne Ne Jump back to main loop Restore column count Restore memory pointer Increment memory pointer Print a space between numbers Do for six motors Print a new line Restore row count Increment row count Get lower count byte Is it the same No then do next row Get higher order count byte Same No then do next row else print a new line and then back to main loop SECTION 4 23b 3 SUBROUTINES INDEX DOABLE s ss s it EL Execute a stored sequence once DRIVL Drives all motors directed by DLE UE 2 32 Set up system MOVTG esa ues i veut Use POSAR to rest system arm TORQUES s z Turn on off motors 2 54 Turn off all motors 5 w Gefen Reset CTPOS elements to one DRAMT Drive directed motors STEPM Ref Delta AE s LR Step motors via DRAMT DNEWD 1 Delay on direction change aaa eek the Update array during learn KEYEN 4 go eU ases Scan keyboard and build up motors to move CBIAS
9. Get count into BC Write higher byte Get lower byte of count into A delay Write lower byte Poi Save row count nt to start of sequence of store Clear check sum Six motor slots per row Get motor slot N delay Write it delay add to check sum Inc memory pointer Do for all six motors Test Write check sum Restore row count Decrement row count t if zero No Swi then try again tch cassette off Back to main loop LY CHECK ROUTINE Checks tape with sequence in store CHECK LD BC COUNT Get row count LD A B OR JP Z NOSTR If zero exit BADCI LD HL CASRD Print wait message CALL PSTR CALL GCHRA Get answer CALL PNEWL Print new line CP d 2 is response a JP 2 00 51 Yes then go to main loop CP SPAC 2 Is it a space JR NZ BADCI No then try again XOR A Clear cassette number CALL CASON Switch drive zero on CALL RDHDR 5 Read header from tape LD BC COUNT Get row count CALL READC Read first section CP B Same JR NZ RDERR No then error CALL READC Read lower byte of count GP Same JR NZ RDERR No then error OR B 7 Zero count from tape JP Z NOSTR So exit LD HL ARST Point to start of memory ROWNC PUSH BC 7 Save count LD E 0 Check sum is zero LD B 6 Count is 6 CKBYT CALL READC Rea
10. the signed 2 s complement 16 bit It does not check for 4 POSIC overflow The base would need to ted about 30 times to cause such an event Save registers B motor count Point to MOTBF Point to POSAR relative position Save motor count Get lower POSAR byte in C Point to Higher byte Get higher byte in B Get directionbyte frcmMOTBF Clear all higher bits from D7 D3 Is it zero No skip Yes then move POSAR pointer back and continue with next motor Test direction bit Do for reverse direction Advance element Restore 16 bit POSAR element Advance negative POSAR element Store higher byte Move pointer to lower byte Store lower byte Back up POSAR pointer to next motor position slot Backup MOTBF pointer to next slot Restore Motor count Do next motor Restore used Registers Exit Done 43 SUBROUT I se se Ne Ne STORE by CUROW copy is not done NE STORE copies the TBUF array If the TBUF array The COUNT and into the locations pointed to is completely empty then the the CUROW variables are both updated and a check is made to ensure that 7 store overflow is caught and the user told STORE STEST STOR1 EXIT OVREW REDO EXIT2 PUSH PUSH LD LD L Et Ea p E ELD E CALL
11. NOTE The above measurements were taken with the arm joints held in a horizontal plane 4 57 SOME EXTRA POINTS TO BEAR IN MIND a Long Lead of LED goes to NEGATIVE Short lead of LED goes via 4 7 kohm Resistor to POSITIVE b Due to LED hole being slightly too large a grommet will first have to be fitted to the LED and its holder can then be super glued if necessary into the grommet Torque available is largely function of speed and hence the user can expect performance to deteriorate as speed is increased Tables are supplied earlier in the manual FINAL NOTE BEST WISHES AND GOOD LUCK Te Sgt
12. Point to waiting message Print it Get response and print it Print new line character Response a Exit to main Y loop if so Is it a space If not then bad input try again Switch motors on Do rest of learn Get current count Is it zero Yes then can t add to nothing Clear manual flag Because we are in learn mode Drive motors and store sequence Zero key pressed No then continue Move arm to start position Back to main loop 132 EDIT FUNCTI DSRT DMOT DOK E Cj O E ON CALL CALL CALL INC PUSH SB PO JR DE PO SH P HL COUNT AL H Z NOSTR HL ECOMS PSTR GCHRA PNEWL Z EDMOT NZ EDSRT HL COUTS PSTR GINT NZ BADC A H TA NZ BADC BC COUNT HL HL BC HL NC BADC COUNT HL QUES1 HL EDSTR PSTR GINT NZ BADC A H 7 A NZ BADC A H Z BADC BC COUNT BC HL HL BC HL we Ne Ne Get row count Test for zero Yes then nothing in store Print edit message Get response Print a new line Is response an M Yes then edit motor Is response an R No then try again HL New row count message Print it Get 16 bit signed integer Non zero return means bad input Test top bit of H
13. RIO 1 8 11 1 8 R12 15K R13 10 R14 18ohm 5w 15 820 1 Capacitors CI 100p polystyrene 2 l Ovf Tant C3 C15 lOnf ceramic Semiconductors 7416 125 2 7415 125 7416 04 4 7415 123 5 7415 366 6 7415 138 7 1 12 7415 175 C13 IC16 ULN2003A 16277 UA 7805 ZD BZX 13v ZENER Miscellaneous MXJ 10 way edge connector 5 way PCB plug and socket connector Through Pins 16 pin IC sockets 14 pin IC sockets 4 way modified PCB plug and socket 3 QUANTI 13 Y Blue GENERAL ASSEMBLY SEQUENCE FOR THE PC BOARD Fit all of the through pins to the board B Fit and screw the 5v regulator to the board Identify and fit the resistors and the 13v zener to the board The black band v points to the motor connectors on the zener DIODE D Identify and fit all capacitors to the board E Solder the 2 2 resistor network IC sockets and the 4 and 5 way PCB plugs to the board G Solder the 10 way socket to the board NOTE Refer to the overlay diagram and parts list to ensure that the resistors capacitors IC s and other parts are inserted into the correct locations on the PC Board BASIC BOARD CHECKS A Check the board for dry joints and re solder any found B Hold the board under a strong light source and check the underside to ensure there are no sold
14. se se se Se Se we No se se se Ne Ne NO Ne Ne Ne Ne Ne t number is returned in HL Save Registers Clear A and carry Zero HL Maximum of 5 characters Clear MIN Minus Flag Get a character and display it Is it a space Yes then skip Is it a newline Done if new line return zero A minus number No then see if positive Set minus flag Get rest of number Is number a positive number See if numeric Get next character Newline Yes then exit Double number Save X 2 X 4 X 8 Restore X 2 Now add to get X 10 If number less than ASC 0 ERR If number greater than ASC 9 then error Number input Binary and load into DE Now add to total Do for next digit Print a new line Is number negative OK so make into No then finish else complement The value in HL off 2 s Complement 40 LD INC HL XOR Clear and flags POP DE Restore Registers POP BE MK RET 3 and return ERRN2 CALL PNEWL 5 Print newline LD 1 Set to 1 OR 7 Clear carry flag SBC HL HL Clear HL OR Clear carry flag JR PRET2 Return with ERROR CODE 4 41 SUBROUTI This NE POSDS routine displays the POSAR array for the user to see how far the arm Home position POSDS NPOSA USH USH USH USH E E EC Q E wD
15. 1 OUTAM Z REVMT A 5 C NORST 1 HL A HL DB NMTDT DELT DELS HL DE BC AF 1 NC NORST A 4 NORST A HL AF DE HL HL FTABL 1 D 0 HL DE HL C B C PORT A HL DE AF se se Ne Ne Ne se se Ne Ne Ne Ne Ne Ne Ne NO Ne se DRAMT drives all six motors directly and uses FTABL to output the correct pulse For half stepping the pattern must be changed in FTABL and the bounds in patterns Save R gist rs B motor count Point to MOTBF array HL points to FTABL offset array Get MOTBF N Is it zero If zero then skip Test direction Step motor If direction negative then jump Increment table counter Upper bound No then continue Reset table offset Store in CTPOS N Increment CTPOS pointer Decrement MOTBF pointer Do for next motor Delay after all pulses out Restor Exit Move table pointer on Compare with lower bound If no overflow then continue Reset table offset Do next motor Get table offset Registers 1 4 Save Registers Get table start DE now equals 1 4 Add to FTABL 1 to get address Get motor pulse pattern Get address field in C and shift it one to the left or in the pulse pattern Output to interface circuitry Restor Registers Re
16. 1 Point to next element LD HL 00 Clear first POSAR element LD BC 11 Eleven more row counts to clear LDIR 7 Clear POSAR array LD HL STRST Print ARM RESET message CALL PSTR and POP HL rd POP DE 2 Restore Registers POP BC M RET Return to caller 4 45 INPUT OUTPUT ROUTI prints a character PUTCHR PUSH PUSH CALL POP POP RET NES AF DE PCHR DE AF in 5 1 s Save DE Print character in Restore DE Restore AF Done Exit r prints a string pointed to by HL PSTR PUSH PUSH CALL POP POP RET BC DE PUTSTR DE BC Save registers that are corrupted by the TRS80 Print the string Restore Registers Done Exit PSPAC prints a space character PSPAC PUSH LD CALL POP RET AF A 20 PUTCHR AF se se Ne Ne se Save AF Space character Print it Restore AF Done Exit PNEWL prints new line to the screen PNEWL PUSH LD CALL POP RET SCKBD Scans the keyboard AF A ODH PUTCHR AF 7 zero if character found SCKBD PUSH CALL POP RET DE KBD DE Ne Ne Ne s Save AF A Newline character Print it Restore AF Done Exit once and returns non Save DE See if character is there Restore Done Exit GCHRA gets a character from keyboard and displays it GCHRA CALL CALL RET GCHR PU
17. 47 with the large spring 48 Fix to the finger base 49 with the long pin 50 1 16mm x 3mm and two small circlips see drawing Fix one circlip to the pin before one begins to assemble Join the fingertip to the middle section with the short pin 50 5 13mm x 3mm and two small circlips Cut off one end of the tip spring about 8mm 10mm beyond its hole Level with its hole bend the spring it Repeat at the other end Trim the inner end of the finger spring flush with the end of outer end as above AQ qo through a right angle to secure middle the finger end and treat the Fit the small 11 51 to the finger middle section using short pin 13mm x 3mm and two small circlips Fit the larger pulley 52 to the finger base with a long pin 16mm x 3mm and two small circlips Screw the finger base to the finger support flange Make sure that the fingers are evenly spaced and do not interfere with each other and then tighten M3 x 6mm cheesehead Assemble the large and small hand sheave pulleys using the large circlip on hand sheave pin 55 Kec 12 CABLE THREADING shoulder grip action cable tail en and check the reduction gears mesh to sho and t over the Slide arm into pulleys place washers Tight and the arm moves freely Connect correctly placed with the cable clamp Glue st rips of
18. Grip Left Wrist Right Wrist Elbow Shoulder 5 N P Base elas 16 3 5 4 SOFTWARE 4 1 Introduction machine code program LEARN to drive the ARMDROID has been specially written It was designed for the Tandy TRS 80 Model 1 Level 11 and the loading instructions given here apply to that computer But the program can be easily adapted to any 780 microprocessor with the necessary port and versions made available for the leading makes with variations of these instructions where appropriate But of course users can write their own software in whatever language they choose 4 2 Loading When in Basic type SYSTEM press ENTER answer the with LEARN and then press ENTER again The cassette tape will take about 1 5 minutes to load Answer the next with 17408 and press ENTER 4 3 General Description LEARN is a menu oriented program for teaching the ARMDROID a sequence of movements which it will then repeat either once or as many times as you like The program is divided into four sections one for learning the sequence and for fine tuning it one to save the sequence on tape and load it again one for moving the arm without the learning function and finally two exit commands We suggest that if this is your first encounter with the program you should read quickly through the commands without worrying too m
19. No skip Set forward direction on Motor 3 Increment offset in BC See if key 4 is pressed No then test key 5 Do forward direction for Motor 4 Advance offset Key 5 pressed No skip Do set up for motor 5 Advance offset Key 6 pressed No then try Q Do for motor 6 35 TRYQT TRYQ TRYW TRYE TRYR TRYT TRYY SOMEN NOTNG FORMT BACMT SETMT DOMOT gt lt O pmo E nO J UGUUUN x lt a pg sr tO HODDLDLLHOLDL H BG 0 A 3804H 1 Z TRYW BACMT BC 7 Z TYRE BACMT BC A 3801 5 A Z TRYR BACMT BC A 3804H 2 A TRYT BACMT BC 4 7 A 3808H BC 1 Z SOMEN BACMT SRAMT A MAN A Z STORE A E 3 SETMT 1 HL HL BC AF HL Z DOMOT HL A AF HL E A 1 4 se se Se Se Ne Ne NO Ne NO Ne Ne Ne Ne Ne Ne Ne Ne Ne Ne NO Ne Ne Ne Ne 4 4 Ne Ne Ne 44 Ne Ne 4 Ne Ne Ne Ne Ne lt Ne Ne Ne Ne Ne Ne 4 4 4 4 Ne Ne Ne Clear BC offset for motor 1 See if Q key pressed No then skip Set motor 1 for backward Advance pointer See if W key pressed No skip Do backward for motor 2 Advance pointer offset See if key pressed No skip Set motor 3 for backward Advance pointer offset See if Key R
20. OH 2 JNZ OD C Po H Q Q E d EDR PONG OD E Ed DEC POP DJNZ CALL JR POP POP POP POP RET AF BC DE HL HL POSAR 12 A HL NZ MTSA HL NRES1 ENDSC HL POSAR 10 DE MOTBF B 6 BC C HL HL B HL NZ DOMPL DE A HL NMDR A B 7 Z RMOT1 BC 1 DOIT1 BC A 3 DE A HL B HL HL C HL HL DE BC RSCAN DRAMT RES1 HL DE BC AF se Ne Ne Ne Ne NO NO Ne Ne Ne Ne Ne Ne Ne se Ne No Ne Ne Ne Ne se ve Ne 5 se Ne Ne Ne Ne Ne Ne Ne Ne Ne Ne 4 the POSAR array and uses it to drive the ARM is in its defined start position Save registers HL points to POSAR B count of 12 Get POSAR element Is it zero No then continue Point to next POSAR element See if all zero All zero so end to POSAR HL points DE points to MOTBF count Save coun Get lower byte Advance HL pointer Get high byte of POSAR element Get low byte into A See if POSAR N is zero no skip Zero MOTBF N advance POSAR pointer Do next motor See direction to move in Go in reverse Go forward forward Do rest Dec count for reverse Set reverse in Store reverse in N Store updated POSAR
21. Wrist bevel gear carrier Wrist guide pulleys Wrist bevel gears flanged Wrist pivots Hand bevel gear no flange Finger support flange Hand pivot Finger tip plates Finger cable clamp Small finger spring Finger tip pivot Middle finger plates Middle finger pivot Large finger spring Finger base Long finger pins 16mm x 3mm Short finger pins 13mm x 3mm Small finger pulleys Large finger pulleys Large hand sheave pulley Small hand sheave pulley Hand sheave pin Finger tip pads Base pan 2 6 DESCRIPTION OF ITEM Part E No 033 034 035 036 037 038 039 040 041 041 042 043 044 045 046 047 048 050 1 050 5 051 052 053 054 055 056 057 DESCR Pit ON OF ITEM Board Spacers Spacer bars for boards Rubber feet Cable springs wrist action short Cable springs grip elbow long PREPARATION AND FIXINGS ETC DESCRIPTION OF ITEM Magnets Bearing adjustment ring grub M4 x 8mm NB self made plug to protect the SCrews fine bearing thread Turned cable clamps 6 x 6mm M3 tapped Cable clamp grub screws M3 x 4 pointed head Crimped type cable clamps crimped eyelets Gear Cable grub screws 4 x 6mm flat head Bushes 8mm bore long with flange shoulder Shoulder pivot spindle spacer 6m
22. arm carries the gears and pulleys that drive the elbow wrist and hand It rotates about a horizontal axis on the shoulder The Forearm The forearm rotates about horizontal axis on the upper arm and carries the wrist bevel gears The Wrist and Hand The two wrist movements the rotation about the axis of the hand twist and the rotation of the hand about horizontal axis up and down depend on a combination of two independent movements The twist is accomplished by rotating both bevel gears in opposite directions while the up and down movement is done by turning the gears in the same direction Combinations of the two movements can be got by turning one bevel gear more than the other The three fingered hand with its rubber fingertips has a straightforward open and shut movement 2 1 2 2 Technical Hints 1 FITTING BELTS PULLEYS Fit belt over small pulley first and then work onto unflanged edge of large pulley little at time do not attempt to get belt fully onto pulley until you have got it on by one or two millimetres all round Belts can be damaged if they are crimped When fitted belts should not be drum tight there should be just little play or friction will rear its ugly head again 2 FITTING SWITCHES On initial fitting do up bolts only enough to hold switches in posit
23. count in POSAR N Store lower byte point to next POSAR element Move to next MOTBF element Restore motor count Do for next motor Drive all motors to be driven Do till all POSAR slots zero Restore all 2d registers Return 28a SUBROUTINES TORQUE CLRMT AND SETDT TORQUE switches of motors and sets CTPOS N s CLRMT turns all motors off and sets 8 1 6 SETDT sets all CTPOS elements to start offset position which equals TORQUE TORQL TORQ2 CLRMT OTMT CLNT TOQCL USH NNN ooo E qu ete aE iO Ou Ep E q G O E E E Q E tg rO U 2 z OOH Z SH SH C C C 00 SH UT DH Jg Ca N CALL POP POP POP POP RET AF BC DE HL HL TORMS PSTR DE CTPOS HL MOTBF B 6 A HL NZ TORQ2 1 192 r r DE A PORT A DE HL 1 TOQCL AF BC DE HL HL NOTOR PSTR B 6 A B A D PORT A CLMT SETI HL DE BC AF DT D OFOH se se Ne Ne NO NO 4 4 Ne 4 Set clear motor Save Registers Print TORQUE ON message Point to FTABL offset array Point to last drive table B motor count Get motor value Is it ze
24. for positive motor NDIR CP 0 Compare if both in same JP M NXTCK direction then skip else CDDEL CALL DELLN delay and NCDSG HL RUE POP DE BC Restore registers POP AF Now return PDIR CP 0 If previous motor is negative JP P NXTCK then delay else do for next JR CDDEL motor slot NXTCK INC HL increment current row pointer INC DE increment lost row pointer DJNZ do for next motor JR NCDSG Return with no large 1 sec delay 44 3395 SUBROUTINE SRAMT elemen exists current se No 58 Ne Ne SRAMT NTMOT FORDR CFORD NODRV REVDR CREVI CREVD SETST SETSC boundary of 128 to 127 LD A MAN OR A JP NZ STEPM LD STRFG A LD B 6 LD 1X DRBUF 6 LD 1 6 1 HL 6 DEC 1 DEC 1x DEC HL LD A 1Y 0 OR JR Z NODRV CP it JR Z REVDR LD A 1X 0 CP 1 JR NZ CFORD CALL SETST LD 1Y 0 0 JR NODRV INC HL LD A HL CP 127 CALL SETST LD 1 0 3 DJNZ NTMOT CALL STEPM LD A STRFG OR A JP NZ STORE RET LD A 1 0 CP 3 JR NZ CREV1 CALL SETST LD 1Y 0 0 JR NODRV DEC HL LD A HL CP 128 CALL 4 SETST 10 1X 0 1 JR NODRV PUSH AF LD Ay LD STRFG A POP AF RET Se Ne Ne 9 99 Ne se se se se Ne NO 4 NO Ne Ne Ne Ne SRAMT is responsible for updating the TBUF ts and for sett
25. is pressed No skip Set motor 4 backward Advance offset Is key T pressed No skip Set motor 5 backward Is the Y key pressed Advance offset No key Y then skip Set motor 6 for backward Step motors maybe store Set zero key not pressed flag Return to caller Zero was pressed so see if in learn mode Yes then store Set zero flag and Return to caller Set for forward direction Do set motor slot in MOTBF Set for reverse direction Point to MOTBF Add in motor offset Save AF Get byte See if zero Yes then set byte Clear byte in MOTBF user wants both directions clear byte Restore AF and return Set byte in MOTBF and set key pressed flag Restore AF exit from routine SUBROUT NE CBTAS H This subroul H HL CBTAS PUTSN POSNO CONUM NUMLP SUBBA GONEN into arm ASC in the locat USH USH USH USH IT EO E EO F C DJ tU UN is TOS SSS SPSS 00000607 Q m rir GY td DEC JR XOR POP POP POP POP POP RET L DE C GONEN SUBBA HL DE 1X 0 A 1X 1Y 1Y E NZ NUMLP 1X 0 A 1Y 1X DE HL AF se se No Ne Ne se se Ne NO NO NO 4 Ne Ne Ne Ne 4 5 4 4 NO NO Ne Ne Ne se se se 4 tine makes signed binary value in String and stores the string tions
26. joints together still leaves the hand vertical This is of vital importance for simplifying the picking and placing of objects The motors controlled by the keys are 1 0 Gripper 2 W Wrist left Wrist right 4 R Forearm Shoulder 6 Y Base B OOT Returns the computer to the program start and clears the memories Q UIT Returns the computer to 580 System level 4 qx ARM IRAINER MK2AL DIRECT FULL STEP MOTOR CONTROL FOR 18580 MODEL 1 LEVEL 11 BY ANDREW LENNARD FA JOLY SSL wet 4 4a T E T F M T E M 4 4b 5 T E S B L T A N T 4 5 INTRODUCTORY DEMONSTRATION SEQUENCE Teg After loading the program the screen shows the menu Press L to enter L EARN 25 Screen START AGAIN OR C ONTINUE FROM PRESENT POSITION TO EXIT Press S Screen ARM RESET ARM NOW FREE TO MOVE TYPE SPACE BAR WHEN READY OR FULL STOP TO EXIT Now move the arm so that both arm and forearm are vertical with the hand horizontal For coarse movements grasp the forearm or upper arm and move it For fine adjustments and for movements of the hand it is better to use the large white gear wheels in the shoulder joint Press the space bar and the arm will become rigidly fixed 4 Screen TORQUE APPLIED You can now move the arm u
27. pointed to by 1 Save Registers Test sign of number If zero then positive number Complement number if negative Now 2 s complement negative Place minus sign in string Pointed to by 1X Advance 1X pointer Do rest of conversion Place a space if number positive Jump to copy space to memory Save 1 register Point to subtraction table Get ASC 0 in Get table value Clear carry bit Subtract table value from value input If carry then do for next digit Inc count ASC in A Do next subtraction Restore value before last subtraction Store ASC Number in memory Inc memory pointer Point to next table value Test if F 0 No then try for next digit Clear and place in store as EOS End of string Restore all saved registers and Exit 3 7 DEFW 10000 2 Table of subtraction constants DEFW 1000 for conversion routine DEFW 100 DEFW 10 DEFW 1 o 2 CLEAR CLRMF CLRMF CTBUF Note all CTBUF NG ANI D RESETTI ING ROUTINES clears the MOTBF array RET BC DE HL HL MOTBF DE MOTBF 1 BC HL 0 HL DE BC se se 5 se No Ne Ne Ne Ne 4 esse PUS PUS PUS LD LD LD LD LDI POP POP POF RET H H H R ears TBUF must be in order BC DE HL
28. so that he can then the contents of a sequence by using the Edit command Point to header string and display it Print out the relative position Point to sequence start BC how many rows to print se se Ne Ne Ne Test if count is zero No then jump to rest of display else print message telling user no display and return to the main loop Clear BC for row count Save it Save memory position HL row count H Now row count N 1 Ix points to buffer for ASC String Convert HL to ASC 4 5 string now print it Print 127 Restore memory pointer Motor count to B 6 motors Get step value Save memory pointer Save motor count Test bit 7 of A for sign If bit 0 then positive step Make B negative number Do rest Clear H for positive number Get low order byte into L Point to result string Call conversion routine HL points to result Print resulting conversion Get keyboard memory location Test for zero key pressed Not pressed then skip Wait till next character entered Is it a dot No then carry else print new line and restore all the registers and the stack level se Ne 59 Ne Ne se 5 Se Ne NO NO 4 S Ne se DDR NOSTP POP POP POP CALL DJNZ CALL rg OBO GQ CG O Ht CI O P U gt gt J
29. 0049H KBD EQU 002BH PUTSTR EQU 28A7H CASON EQU 0212H CASOF EQU 01F8H RDHDR EQU 0296H READC EQU 0235H WRLDR EQU 0237H WRBYA EQU 0264H MINUS EQU SPAC EQU KEN NL EQU ODH NUMBA EQU 30H MAXLE EQU 10 ORG 1740 8 ARM PORT NUMBER SYSTEM RESTART SYSTEM PRINT CHARACTER SYSTEM GET CHARACTER SCAN KEYBOARD SYSTEM PRINT STRING CASSETTE ON CASSETTE OFF READ HEADER ON CASSETTE READ CHARACTER FROM CASSETTE WRITE HEADER TO CASSETTE WRITE CHARACTER TO CASSETTE ASC MINUS ASC SPACE ASC NEW LINE ASC NUMBER BASE UPPER BOARD FOR ARST ROW COUNTER 4400 TRS80 HEX ADDRESS FOR START OF PROGRAM 4 6 VARIABLES USEI MIN MAN STRFG KEYP FORFG COUNT CUROW ARRAYS NUMAR POSAR CTPCS TBUF DRBUF MOTBF ARST DEFB DEFB DEFS DEFB DEFB DEFB DEFB DEFS DEFS DEFS DEFS DEFS DEFS DEFS 00 00 00 00 00 0000 0000 6 6 6 6 N 6 se Ne Ne Ne se se ve No 5 Ne Ne Has value of one if number input negative If MAN zero then steps are stored If STRFG non zero then store TBUF array Set if key pressed in KEYIN Routine Set if sequence to be done forever Number of motor slices stored Pointer to next free motor slice Store used for Binary to ASC Conver
30. C If negative then bad input Get count value Save response Clear carry flag See if response current count Restore response Replace count with response Back to main loop Print row number Get integer response Bad answer No negative row count allowed or zero row count Get row count into BC Move count up one Clear carry flag Subtract count from response Restore response If greater than allowed error Move response down one Double HL Save it Row count x 4 BC row count x 2 4 14 MOTAS DNM DC g U U H D DDN H HNORNHOM OGOGOGWGAE rg ZOV O J W i Qa Up H HL BC BC ARST HL BC HL HL MOTNS PSTR GINT NZ BADNM A H NZ BADNM AE 1 C BADUM NC BADNM HL A C A B 0 HL BC HL HL NVALS PSTR GINT NZ BADNM A H OFFH NZ PEDIT T Z BADNM MOTAS A NZ BADNM Jo NZ BADNM A L HL HL A 00 51 HL HL BADMS PSTR QUES1 4 HL Row count x 6 Get store start address Add row offset Save resulting pointer Print Motor number string Get Answer Bad answer Response too large No motor number lt 1 No motor number gt 6 Restore Memory pointer Motor offset 0 5 Add to memory pointer Now we point to motor in store Save pointer Print
31. CARON FORFG A BC A B NZ NMOTS 4 if user types Get sequence row count If count zero then exit HL points to memory start DE points to temporary buffer Save count Motor count of six Copy memory slice into TBUF Save new memory pointer Drive all motors fcr this slice See if keyboard input Restore memory pointer Restore row count User typed a No then continue Clear A Clear flag to halt routine above exit Decrement count Test for zero No then carry on else return 26 SUBROUT n Ihis routine is given TI it then drives all P the motors that need to be driven till TBUF 0 DRIVL SCANW TBNZR DOAGN SPOS SNEG NOEL NOFIL E p 10 ET E N HAO jE G EA Et Cy Cy Cc ut Q Hx e ED ua LE E C M tz za N E JCGUOGOEFPMEEBUU D dj EH gt O UO C4 pi H NZ SCANW STEPM se ve s Set BC motor count Point to TBUF Get step value from Is it zero No then continue Do next motor check Point to next TBUF loca f no motor to step tion then return DE points to last direction array H
32. COLNE RUBO The Colne Robotics ARMDROID Construction and Operation Manual Published by COLNE ROBOTICS LIMITED 1 Station Road Twickenham Middlesex 1 4LL C Copyright 1981 CONTENTS 1 Introduction 2 Mechanics 222 Description 22 Technical Hints 228 9 Tools 2 4 Mechanical Parts 2 5 Assembly S Electronics 3 1 Description 92 Component List 3 3 Assembly 4 Software Introduction Loading General Description Command Explanation Introductory Demonstration Sequence Detailed Software Description Applications GS E P gt L P P gt 50h rp Page No 1 1 2 1 2 2 2 3 2 4 AZ O 2 14 Ks te Ao FJES 3 4 3 5 A A 4 X4 1 4 4 x4 5 4 6 4 48 4 48 4 58 INTRODUCTION The development of Armdroid I arose as result of survey of industrial robots It became apparent that educationalists and hobbyists were starting to show interest in medium and small sized robotic devices There was however no robot on sale where in the world at a price suitable to these markets The Armdroid micro robot now fulfils this role providing a fascinating new microcomputer peripheral Purchase of the robot in kit form enables the assembler to understand its principles and allows f
33. HL DE TBUF 1 BC 17 TBUF HL 0 HL DE BC x4 Save Registers used Point to MOTBF 0 Point to MOTBF 1 BC Count MOTBF 0 0 Copy through complete array Restore Registers used Exit DRBUF and MOTBF Save Registers HL points to TBUF 0 DE points to 1 BC Count of 17 Clear first element Now clear next 17 elements Restore Registers Exit 3 9 SUBROUT NE G NT se Ne Ne Ne Ne GINT PCSON GINT2 NUMI NUMET Fi OQ tF GIO Et O U gt H E cn CI O c O P tg p gt gt rg gt c USH USH UO Qu Q C Q C Q O E H E QQE MAG FN j UO XU gt G 2 C tg tg tg D oO 9 9 D t rg gt gt Z O U 2 try u u9utu This subroutine gets signed 16 bit integer from the TRS80 Keyboard If bad number istyped it returns with the Status flag non zero The 218 complemen BC DE HL HL B 5 MIN A GCHRA SPAC Z GINT NL Z PRET1 MINUS NZ POSON Ayu MIN A GINT2 tat NZ NUM1 GCHRA NL Z NUMET HL HL HL HL HL HL HL DE HL DE 0 C ERRN2 0 1 NC ERRN2 NUMBA E A D 0 HL DE GINT2 PNEWL A MIN Z PRET1 A L L A A H 4
34. L points to TBUF B motor count Get motor step value Is it zero Yes then skip Is it negative ie revers With 3 Set MOTBF 1 for a positive drive Do rest of MOTBF Clear MOTBF N Set key pressed flag Step all motors once if any to step then return No positive so load MOTI Decrement motor count in Complete the MOTBF array Decrement negative count Move to next MOTBF element Move to next TBUF element Do for all six motors N BUF Do for maximum of 128 cycles SUBROUTINE INIT 2 NIT clears the row count COUNT resets the MAN flag clears the TBUF DRBUF amp MOTBF arrays The CUROW pointer is reset to the start of the ARST I position array is cleared NIT 10 HL 0 Set HL 0 LD COUNT HL and clear the row count XOR Clear A LD MAN A 3 Now clear MAN LD HL ARST HL start of arm store LD CURCW HL CUROW start of arm store CALL CTBUF Clear TBUF DRBUF amp MOTBF CALL RESET Clear the POSAR array CALL CLRMT Free all motors RET EXIT 4 2283 SUBROUT I This routine takes 3 all the motors until MOVTO RESI NRES1 MTSA RSCAN DOMPL RMOT1 DOIT NMDR ENDSC NE MOVTO USH USH USH SH rg U u U Circ ET
35. NT REPLAC 00 LRN READ BOUND TS ER FPS ON WHICH MOTOR STEP VALUE CHECK WRITE GO DISP BOOT MAN 000DH SE TOST EDT FREE DO 00 F OREVE y E O NCE R OR TYPE 00 PARDON 000DH ODH SPACE EXIT BAR WH EN READY OF FULL STOP TO WANT TO RE START Y N 2 START AGAIN OR EXIT TO 000DH ODH ODH 000DH ODH 000DH MOVEM NO S C ONTINUE FROM CURRENT POSITION ENT ARRAY DISPLAY AAK Y EQU ENCE IN STORE NO MORE 000DH ODH SEQUENCE 000DH ARM COMPL OR SAVE STORE DE EFT 7 ET E ETE READ 000DH 000DH ARM RESE 000DH ARM NOW TAPE OK T ERROR AAK TN FR E TO LH 4 TORMS DEFB DEFB DEFM DEFW POSSI DEFM DEFB 000DH ODH TORQUE APPLIE 000DH RELPOS 00 4 IOF D 4 1 COMMAND INDEX STARM Program entry point LEARN Learn a sequence command Edit sequenc
36. TCHR 4 Get a character Print it Done Exit 46 clear CLEAR SCREEN ROUTINE Simple scrolling type screen CLRSC PUSH BC LD B 16 UP 1RW CALL PNEWL DJNZ UPIRW 4 zu AT Save used register Get screen row count Print a new line Do 16 times Restore Register Exit ELAY ROUTI ELSW ELS1 NES PUSH PUSH NOP NOP POP POP USH ALL rg I USH ALL rg Li USH E UU tg O E tU tg tg O CALL DJNZ POP DJNZ 4 se se Ne No Ne Ne 4 NO Ne 4 NO NO Ne 4 4 4 Ne 4 Ne Ne Ne 4 4 4 Ne 485 Delay for 10 10 cycles Save BC Delay for 11 state 4 state delay 4 T state delay Delay for 11 T states Do delay times value in B Restore BC Exit Save BC Set for 0 001 sec delay Do delay Restore BC Exit Save BC Set for 0 01 sec delay Dc delay Restore BC Exit Save BC Set for 1 0 sec delay Do delay Do next delay section Restore BC Exit FULL STEPPING AND HALF STEPPING THE MOTORS Two tables are shown below the first indicates the sequence for full stepping the motors and the second table shows t
37. These constants are necessary for users wishing to formulate cartesian frame reference system or joint related angle reference system Base Motor step angle ratio 1 ratio 2 7 5 x 20 teeth x 12 teeth 72 teeth 108 teeth 0 2314 degree step or 4 32152 steps per degree Shoulder 7 5 x 14 teeth x 12 teeth 72 teeth 108 teeth 0 162 degree per step or 6 17284 steps per degree Elbow Same as shoulder joint Wrists Same as base joint calculations Hand 7 5 x 20 teeth 12 teeth 72 teeth 108 teeth 0 231 degree per step pix dx 0 231 0 0524 2 mm 360 0 0262mm hand pulley motion per step Total hand open to close pulley movement 20 0mm Angletraversedbysinglefinger 50degrees 50 0 0262mm 20 0 mm 0 0655 degrees per stepor 15 2672 steps per degree pi 3 1415926 26mm pulley diameter 4 56 SOME OVERALL DIMENSIONS Shoulder pivot to pivot 190mm Forearm pivot to pivot 190mm Finger wrist pivot to fingers closed 90mm wrist pivot to finger open 90 99mm Bottom of base to shoulder pivot 238mm ANGULAR JOINT SPANS Shoulder up 153 down 45 Forearm up 45 down 150 Wrist up 100 down 100 Base no limit but suggest caution not to overwind cables in base Hand fingers move over 50 All above measurements are in degrees
38. ase gear large i nternal dim Bearing adjusting Hand motor support Hand motor Hand switch bracke Motors Upper ar Fore arm Wrist ac Motor pulleys ring bracket m tion Upper arm Fore arm short 14 too Wrist action long 20 Hand short 20 tooth 2 4 Part th tooth O1 02 03b 04b 05 06 07 08m 09 03h 16 03u 03f 03w 04u 04f 04w DESCR PTION OF ITEM Shoul der Side Plates Switch support bar 107mm x M3 at ends Suppo Motor Suppo Reduc Reduc Drive Upper small rt bar spacers M3 clearance X support bracket stiffener 107mm x M3 at ends rt Bar spacers tion gears tion gear spindle 96mm belts long 114 teeth medium 94 teeth short 87 teeth Arm Drive Gear internal dim no drum Upper arm side plates Upper Gears Idler Shoul Fore arm brace wrist action hand action fore arm pulley der pivot 96mm x 8mm spindle arm side plates Fore Fore arm brace arm pulley 2 5 Part No 17 19 18 16 18 12 X C 019 018 54 018 41 020 021 08 1 08 m Fore Upper arm 08 5 Wrist action 021 022 023 024 025 026 027 029 030 031 032 Elbow Idler pulleys hand wrist Elbow spindle 65mm
39. clipped arm and connected and tensioned with its arm is fitted Spring after this purpose by placing on the end of area where i is to be paper when position but are not obstructing there are no burs remaining the to the the is passed through the clamp onnected to the spring adequate tension can be with the g the free tail A friend will be useful if around 2 13 then nipping it but it is tension can be easily uld be First Second Third Fourth Fifth through the the cable slipping before crimping crimping or ordinary pliers or you may cut through cable During threading the correct from the expanding drawings should be followed exactly especially the posi grub screws when wrong it will Care should be taken itself on the drums Experience has shown cables and lengths to Elbow cable pillar first and 2 M3 hex crimped cable cl affect use route can be ascertained It is very important these tion of the e If this is they are tightened on the the performance of the arm crossing to avoid the cable kinking or that the best order to thread the Excess can be trimmed easily later but makes tensioning simpler set up M3 x full nuts lamp Wrist cables one at a time the spring 10mm cheesehead attach to forearm first using M3 x 10 cheese head and tw
40. d motor step element CP HL 7 Same as in store JP NZ RDERR Not the same so error ADD LD E A Add to check sum INC HL Advance memory pointer DJNZ CKBYT Do next row element POP BC 7 Restore row count CALL READC Read check sum CP E Same as check sum calculated JP NZ RDERR No then error DEC BC Decrement count LD A B 1 3 IS count zero JP NZ ROWNC F No then do next row CALL CASOF Switch cassette off TAPEF 10 HL TAPOK Print tape off message CALL PSTR JP QUES1 3 and back to main loop 4 18 AND FINISH COMMANDS This routine BOOT LD CALL CALL restarts the program HL BOOTS PSTR GCHRA tyr Z STARM N NZ BOOT PNEWL QUES1 se se se No No Ne Ne Print DO YOU REALLY WANT TO RESTART Get answer user Yes t No N Then typed hen restart program 19 try again else print new line and back to main loop 2 This is the exit from program Section to TRS80 7 system level FINSH TRYNO 10 CALL CALL CP JR HL RELYQ PSTR GCHRA NZ TRYNO HL SIGOF PSTR FINAD N NZ FI PNEWL QUES1 NSH Print REALLY QUIT Get answer User typed a Y No then try N Print ending message and then return to TRS80 System User typed an N No then try again Print Back 19 a new line to ma
41. e command BEAD fy ag Read in sequence from tape command WRITE a X055 Write sequence to tape command CHECK vain ta Check stored sequence command s pede FMS Re start system command FINSE Oe Exit from system command SETARM 255225020 2 7 Set start position command TOSIM oe sd Move arm to start position command FREARM Free all arm joints MANUS Se A iau Go into manual mode ark ner deos dede Execute stored sequence command DISPLAY Display stored Sequence command qa c EE MAIN LOOP Program start STARM CALL CLRSC Clear the TRS80 Screen LD HL SIGON Point to sign on message CALL PSTR Print it CALL PNEWL Print new line CALL INIT Set up system QUES1 CALL DELT Small delay LD HL QUESS Point to menu string CALL PSTR Print it CALL GCHRA Get response and print it CALL PNEWL Print new line NL IS response newline JR Z QUES1 Yes then ignore CP LT Is response 1 JP Z LEARN Yes do learn section CP Is it an E JP Z EDIT Yes do edit Is it an R JP Z READ Yes then do read command CP W zu Ts ait AR JP Z WRITE Yes do write command CP Is it a C JP Z CHECK Yes do check routine CP CAS Is it an VS JP Z SETAM
42. e zero or starting position F REE Removes the motors torque from the arm thus allowing it to be moved by hand M ANUAL Gives the user control of the movements of the arm direct from the keyboard It is used a for practising manual control before L EARN ing D for trying new combinations of separate movements and c for moving the arm to a new starting position before pressing S ET ARM Holding the space bar down slows the movement by a factor of about 3 The motors are controlled with the keys 1 6 Q Y The keys operate in pairs each pair moving a motor forwards and backwards Any combination of the six motors may be moved together or of course separately but pressing both keys of a pair simply cancels any movement on that motor The geometry of the arm is designed to give the maximum flexibility combined with maximum practicality A movement of one joint affects only that joint with some designs one movement involuntarily produces movement in other joints It is a feature of the ARMDROID that it has a so called parallelogram operation Starting with the upper arm vertical the forearm horizontal and the hand pointing directly downwards the shoulder joint can be rotated in either direction and the forearm and hand retain their orientation Equally the forearm can be raised and lowered while leaving the hand pointing downwards Moving the arm outwards and down by rotating both the shoulder
43. eduction gears motor Glue magnets 101 noting that the hand gear 25 needs no magnet Check that the adjusting ring 14 of the main bearing screws easily onto its base Clean both if necessary but taking care not to distort the if necessary using a vice sheet metal Construction Insert bushes into the arms Fit base bearing support 2 column inside base 1 M4 bolts nuts NB NUTS INSIDE BASE Bolt 1 motor shorter cable inside base Md hex bolts washers on motor side nuts on inside Fit pulley to spindle base of motor with the grub screw at the top 04b Fit base reduction gear spindle 07 to base Thick turned washer M4 hex bolt Fit reduction gear and belt Place a small drop of oil on the reduction gear spindle before fitting reduction gear When fitting belts they should be placed fully on the motor spindle and worked gently onto the reduction gear a small section of their width at a time see general hints on lubrication Fit base switch support Fit base switch and run wires through adjacent hole M3 x 10 cheesehead washer M3 hex bolt NB DRAWING FOR POSITION Fit bearing ring 12 long spigot down through shoulder base pan 11 from inside The base gear 13 fits on the lower face of the pan with the magnet at 20 clock as seen from inside the pan w
44. er bridges between the tracks FITTING THE PC BOARD TO THE BASE OF THE ROBOT The PCB should be fitted to the base plate using the nylon pillars provided MOTOR CONNECTION Connect the motors to the 5way sockets ensuring correct 15v polarity via the ribbon cable refering to the diagram provided to ensure correct connection POWER CONNECTION Connect the power to the modified 4way socket ensuring correct polarity as shown below Polarising pin Pin 1 on I P connector Ov 15v Brown Pin 2 on I P connector NOTE A number of diagrams are given explaining in detail the intern connections between the motors and the PCB if the motors are connected in the manner shown then the software provided will map the keys 1 6 and q w e r t y to the motors in the following way 1 GRIPPER 2 left wrist 3 e right wrist 4 forearm 5 t shoulder 6 y base as shown in the diagram the two middle pins of the stepper motors should be connected together and to 15v 3 4 Motor Connection And Designation Layouts ICi7 7805 Ov 2D1 BZX 13v 5v To rest of board Ribbon Cable To Stepper Motor Connections Oa Black or Green Red or Purple Qc Brown or Blue Od Orange or Grey 15v Yellow or white Assignments To Functions Motor Motor Motor Motor Motor Motor
45. es bevel gear carrier 35 between the wrist bevel gears 37 up holes in end of wrist pivot 38 bores with tapped hol Assemble the pulleys the large M bolts washers eys 36 hammer 37 from the outside Fit line e in carrier by peering down pivots f you do not have a screw gripping or magnetic driver use a little piece of masking tape or sellotape to fix M3 cheesehead screw to the a way that it will pull off after end of your screwdriver in such tightening check gears pivot n oilite freely on pivots and that the whole assemble can pivot i bushes drops of oil on faces of gears and pivots Screw the finger support flange 40 to the hand bevel 39 M3 x 6mm cheesehead screws Screw the hand pivot 41 to the bevel gear carrier 35 Tighten on a drop of locti gently by turning a pair of pliers inside it The bevel te if available gears should be positioned with their grub screws pointing towards the hand when the hand and the forearm are in line see drawing Assemble the fingertip 42 and cable clamp 43 with the small spring 44 on the pivot 45 and clip together wi circlips on the cable clamp The that the back of the spring is on the knuckleside of th large Spring should be positioned so fingertip thus tending to open the hand the Assemble the middle finger 46 and its pivot
46. fine which bits on the respective user ports are bits A binary one in any bit position defines bit position and a zero defines that bit as an used as output an output input bit x4 54 input and which are to be SIMPLE BASIC ARM DRIVER FOR PET VIC L 37136 37138 10 PRINT VIC ARMDROID TEST 20 PRINT 30 PRINT HALF STEP VALUES 40 T 8 C 2 5 10 M 1 1 AS 50 FOR I 1 TO T READ W I PRINT W I NEXT I 60 POKE Q 255 70 INPUT MOTOR NUMBER 1 6 M 80 IF M 1 OR M gt 8 THEN 70 90 INPUT FORWARD BACKWARD AS 100 IF AS F THEN D GOTO 130 10 IF AS B THEN D 1 GOTO 130 120 GOTO 90 130 INPUT STEPS S 140 IF S lt 1 THEN 130 150 O M M 1 160 FOR Y 1 TO S C 170 F W I O 180 POKE L F 190 POKE L F 1 200 IF D 0 THEN 230 210 Y Y 1 IF THEN Y 1 220 GOTO 240 290 Y Y 1 Y lt THEN Y T 240 NEXT Y 250 70 260 DATA 192 128 144 16 48 32 96 64 THE VALUES FOR L AND Q FOR THE PET ARE 59459 DATA DIRECTION L 59471 I O 9 MOTOR STEP RELATIONSHIP PER DEGREE NCREMENT Below are shown the calculations for each joint to enable the user to calculate the per motor step relationship to actual degree of movement
47. g the printer port it will not be possible to read the reed switches connected to the arm as this port is not bi directional port The TRS80 to ARMDROID connections are shown below TRS80 PRINTER PORT ARMDROID CONNECTION ON PIN CONNECTIONS NTERF ACE BOARD D8 D7 D6 D5 D4 D3 D2 Dl O W O1 I OO 0 volts The software driving the motors should output data to the robot arm in the following manner The following 280 code sequence assumes the correct driving and motor address is in the Z280 accumulator pattern In the 0 1H Set bit Dl PORTAD A Send data OFEH 1 Clear bit to port D HPHO zm PORTAD A Now latch data pulse to selected motor case of the TRS80 level 11 the printer port address is PORTAD equals 37E8H 14 ON CONNECTION OF ARMDROID TO PET VIC COMPUTERS PET VIC USER PORT CONNECTOR PIN NO PET VIC ARMDRO I I NOTATION Dl D PAIL D2 E PA2 D3 F PA3 D4 H PA4 5 J 5 D6 K PA6 D7 L PA7 D8 N GROUND GROUND O Register Addresses User Ports VIA Data Direction Control 37138 PET Data Directional Control Register 59459 VIC I O Register Address 37136 PET Data Register Address 59471 The data direction registers in the VIA de
48. gures correspond to the six motors and the order is the same as that of the 1 6 Q Y keys see M OVE The first row RELPOS shows the current position Each row represents a stage of the movement and the actual figures are the number of steps each motor is to make positive for forward negative for reverse The maximum number of steps stored in a row for one motor is 127 or 128 so if a movement consists of more than this number it is accomodated on several rows Movements of the arm can be fine tuned by editing see E DIT the figures on display until the arm is positioned exactly Scrolling of the display can be halted by pressing 0 zero continue scrolling press any other key To display the figures one after the other keep pressing 0 E DIT Allows the user to change the figures in the memorised sequence Truncate a sequence by pressing R 0W COUNT then ENTER then the number of the last row you want performed and finally ENTER This clears the memory from the next step onwards so you should only do this if you do not want the rest of the sequence kept in memory By pressing M OTOR STEP you can change any of the numbers in any row and column S ET ARM Sets the current position of the arm as the zero or starting position When pressed from the Menu it simply zeroes the first row of the display S ET ARM has anothe
49. han 1 5 turns will put strain on the stepping motor leads where they connect to the printed circuit boards To prevent any difficulty in the fitting of reed switches after the initial assembly the magnets will be inserted during manufacture This will save the dismantling of the Armdroid in the field Magnets will be included in all the kits There will be nominal charge of 15 for the inclusion of reed switches in both the assembled and unassembled Armdroids PART NUMBERS INVOLVED 09 10 15 16 18 16 18 12 2 3 TOOLS LIST INC Lubricants etc General and small circlip pliers 7mm spanner supplied 5 5mm spanner supplied Metric steel rule part identification Hypodermic syringe or small oilcan and 3 in 1 oil Superglue and if possible Loctite Cold vaseline or cycle bearing grease Tweezers Allen keys for M3 grub screws supplied grub screws supplied 4 bolts supplied Lightweight hammer fitting rollpins 2 3 2 4 ASSEMBLY Base Base Bearing suppo Base motor Description of ite m rt column Base motor short pulley 20 tooth Base reduction Turned thick wide Reduction gear Base belt medium Base switch suppor Base switch Shoulder pan Shoulder bearing r r spindle washer 16mm x 2mm length 94 teeth t 12mm x 11mm ing B
50. he arm if the sequence is to arm resets itself at Print a new lire Move arm to start Clear Forever Flag FORFG Print DO ONCE OR FOREVER Message Get answer and print it Print new line User typed an 0 Do sequence till end User typed an No then re try Set forever flag to 1 Printra 25 Using PUTCHR Execute the sequence Test FORFG if zero then we do not want to carry on so exit delay Move arm to start Delay approx 1 second Do next sequence Print sequence done and go to main loop ED EN THE DISPLAY COMMAND alter Ne se Ne Ne NOSTR SETBC DOROW NEXTE NUMPO EVAL DOSTF the mot D ALL ALL E UVU ZUUcGdu um ouuuug E E E E reo E te ET ee USH USH H E OPUPrUUUA U IU 2 CALL CP JR CALL POP POP HL DISPS PSTR POSDS HL ARST BC COUNT NZ SETBC HL NODIS PSTR QUES1 EC 000 BC HL H B L C E HL 1X NUMAR CBTAS HL NUMAR PSTR Ah PUTCHR HL B 6 A HL HL BC 7 A 7 EVAL 0 L A 1X NUMAR CBTAS PL NUMAR PSTR A 3810H 0 Z NOSTP GCER NZ NOSTP PNEW BC HL This command allows the user to display tor sequence
51. he pulse pattern for half stepping the motors FULL STEPPING SEQUENCE QA QB QC QD STEP P 0 HALF STEPPING PULSE SEQUENCE QA QB QC QD STEP 1 0 1 0 1 1 0 0 0 353 1 0 0 1 2 0 0 0 1 223 0 1 0 1 3 0 0 1 0 0 0 1 1 0 4 0 0 1 0 4 5 The documented program contains table FTABL which is shown below This table contains the step sequence for full stepping also shown below is the new table FTABLH which contains the sequence for half stepping To use this table FTABLH in the program it will be necessary to alter few lines of code in the DRAMT routine The comparison with 5 CPI 5 should be changed to a comparison with 9 and the program line LD A 4 should be changed to LD A 8 The table FTABL should now be changed so it appears as FTABLH FULL STEP TABLE Step number FTABL DEFB 192 1 DEFB 144 2 DEFB 48 3 DEFB 96 4 HALF STEP TABLE Step number FTABLH DEFB 192 1 DEFB 128 29 DEFB 144 2 DEFB 16 2 5 DEFB 48 3 DEFB 32 3D DEFB 96 4 DEFB 64 4 5 4 49 ao Metre tie Vitas E tie Previous Soa whi 20 14 because 02 ant ate ers Ethio dos to the 5 ROEN Gi em TREAT TUE DB AMD QC 212 50 TEST THE OQ po do 0 e T
52. he steps as they are sent out to the arm To drive each motor the DRAMT routine adds the motor s offset which is obtained from CTPOS and adds this to the FTABL start address 1 This will now enable the DRAMT routine to fetch the desired element from the FTABL array and this value is then sent to the motor via the output port No No Ne NO NO NO Ne Ce Ne 4 8 MK AL2 CONSTANTS AND ARRAYS STRINGS SIGON DEFM DEFW DEFB DEFM DEFW SIGOF DEFW DEFM DEFW ECOMS DEFM DEFW COUTS DEFM DEFB EDSTR DEFM DEFB BADMS DEFM DEFW MOTNS DEFM DEFB NVALS DEFM DEFB QUESS DEFM DEFW RORNM DEFM DEFB CASRD DEFM DEFB QMESS DEFM DEFW BOOTS DEFB DEFM DEFB RELNS DEFM DEFW DISPS DEFB DEFM DEFB DEFW NODIS DEFM DEFB DEFW OVFMS DEFM DEFW DONMS DEFB DEFM DEFW RDMSG DEFM DEFV TAPOK DEFM DEFW STRST DEFM DEFW NOTOR DEFM 000DH ODH 0 DODH YOU ARE OD EDIT DH REALLY QUIT NOW TRS80 SYST AKK COLNE ROBOTICS ARM CONTROLLER Y N EVEL EM L M OTOR STE OW COUNT R 00 NEW UPPER ROW ROW NUMB 00 000DH BAD INPUT VALUE CHANGE 5 T 00 EM E
53. in loop OTHER SHORT COMMANDS SETAM SETAM CALL JP TOSTM moves the arm back TCSTM CALL JP FREARM hand FREARM CALL JP RESET QUES1 MOVTO QUES1 frees all motors for user clears arm position array Clear Arm array POSAR Back to main loop to its start position Steps motors till POSAR elements are zero then back to main loop move arm CLRMT QUES1 Output all ones to motors and now to main loop 5 MANU allows the user to move the arm using the 1 6 keys and the Q 7 The movements made not stored MANU LD LD CALL JP OR D P MANUA 1 3 7 7 NZ MANUA QUES1 gt W keys Set in manual mode for the keyin routine Now get keys and move motors If non zero then move to be done Clear manual flag Back to main 1 4 20 THE GO COMMAN D follow the steps stored done forever then the se se Ne 4 GO ONECY NORET CALL CALL XOR LD the end of each cycle PNEWL MOVTO A FORFG A HL AORNM PSTR GCHRA PNEWL 0 7 ONECY UB NZ GO 1 FORFG A PUTCHR DOALL FORFC Z NORET DELT MOVTO DELLN ONECY HL DONMS PSTR 00 51 This command causes the computer to step through stored sequence and makes t
54. ing the STRFG where the TBUF array should be stored t ARST slot direction or mo if a situation in the This will occur if any motor changes tor exceeds the allowed slot Get manual flag Is it zero Yes then just step motors Clear the store flag B motor count 1X previous direction buffer 1Y current buffer HL step buffer move pointers Get current motor direction No work to do skip if so Reverse Yes then skip Get previous direction Direction change No then advance TBUF N Set the store flag Clear MOTBF element Do next motor Increment motor step in TBUF Get new value Check against upper board Limit reached then store flag Set previous direction Do next motor Step motors to be driven Examine store flag Zero No then do store operation Exit Get previous direction Direction reversed No then continue Else set store TBUF in ARST flag clear MOTBF element Do next motor Advance step count in TBUF Get element Compare with upper negative bound Limit reached so set store flag Set Direction Do next motor Save AF Set store flag STRFG to one Restore AF Continue 34 step N 4 SUBROUT NE KEY the keys and 0 se se Ne No Ne KEYIN L BI J 1 6 to the pressed sequence is stared CALL D T R CALL e IGDEL X Li TRYS
55. ion Finally after gears are fitted swing switches so that they clear gears by approximately one millimetre and finally tighten FITTING PULLEYS MOTORS You will find the motor shafts have end float with light spring action pulling the shaft in Do not pull shaft out against this spring when fitting pulley as this will cause friction and loss of effective motorpower 4 LUBRICATION Use light oil three in one or similar just a drop on all parts that slide or pivot DELRIN is a self lubricating material but the friction is a lot lower with a drop of oil We only have limited power from the motors so we want to make the most of it so work spent on eliminating friction will pay performance dividends Check all bores and bearings for free running any tightness is usually caused by burrs or stray bodies in bores Remove burrs from Delrin with sharp knife from metal with scraper Disposable hypodermic is ideal for lubricating scrounge one from your local friendly GP or Hospital 2 a 2 REED SWITCH POLICY Micro switches are included in the assembled and unassembled Armdroid packages as optional extras It must be stressed however that the machine will function perfectly well without the micro switches but check must be kept on the number of complete revolutions of the base Any more t
56. ith the flange at the top M4 countersunk x 16mm bolts nuts This step and the next are simpler with some help from an assistant Put shoulder base pan gear side up on to 3in supports books etc so that the bearing support column can be inserted Practise this movement to make sure all is well Smear vaseline from a fridge or grease on the bearing track of the flange and using tweezers to avoid melting the vaseline carefully place 24 ball embedding them into grease There will be a slight gap when all the balls are in place Invert the base and insert the threaded bearing support column inside the bearing ring taking care not to dislodge any of the balls so that the base pan meshes with the base gear same relationship by taping the parts together with a piece of wood or a spanner 5mm thick between the motor pulley and the shoulder bearings round the flange base pan 2 Keep the two parts level in the 9 Large rubber bands can be used instead of tape An assistant to hold the parts for you will be useful here Turn the assembly the other way up the base is now on the bench with the shoulder base pan above it Put more grease round the bearing track and embed 24 more ball bearings in it Gently lower the adjusting ring 14 on to the threaded base and then Screw the finger tight remove with tape adjust the ring until the base pan moves freely without play
57. ly pulled high thus if the u ser inputs from the port at any time the data presented will mirror the state of the reed switches To output data to the arm using this port the user s hould send the data to the port with the bottom bit cleared The data will then be latched through to the addressed arm motor latch The components for the described port should be easi available from most sources 4 51 ly TRS80 8 BIT INTERFACE NON LATCHED BI DIRECTTONAL READ OR WRITE FROM PORT 4 s 18580 BUS SEE BUS DESCRIPTION A7 A6 A5 1 2 0 OUT GND 5 VOLTS SUPPLY FROM ROBOT CONNECTOR GND 1 IC la Colne Robotics 2 gt l DIRECTION 1 2 3 m 5 IC 4 6 7 8 9 ela 1 IC 1 74152 Pin 14 5 Volts Pin 7 GND IC 2 74LS20 Pin 14 5 Volts Pin 7 GND IC 3 74LS00 Pin 14 5 Volts Pin 7 GND IC 4 745245 Pin 20 5 Volts Pin 10 GND 52 IC 2 18 17 16 15 14 13 12 11 ENABLE A J LENNARD 20 6 1981 0 VOLTS 08 07 6 05 D D3 02 1 I ROBOT 8 BIT I INTERFACE L 3 3 INPUT NOR 2 INPUT NAND 1452 INPUT OCTAL BUS TRANSCEIVER Tri state CONNECTION OF THE ARMDROID TO THE TRS80 PRINTER PORT The TRS80 printer port can be used to drive the robot arm but when usin
58. m bore short with flange elbow 8mm bore long with flange wrist 8mm bore no flange main gear inserts Gear to sheet metal screws M3 x 6 slot hd CSK Spring pillar and base switch M3 x 10 cheese head Base bearing to shoulder pan M4 x 16 CSK socket head 2 Part No 018 41 54 058 059 060 061 Item No 101 103 104 105 106 107 108 108a 109 DESCRIPTION TEM Motor bolts Base bearing to base M4 x 10 Elbow spindle hex hd Hand to finger hand to bevel gear M3 6 cheese hd Shoulder spindle M5 x 10 hex hd General sheet metal fixing M3 x 6 hex hd MA Nuts MA Washers 4 Shakeproofs elbow spindle M5 shakeproofs shoulder spindle M3 Nuts M3 washers switches 6mm steel balls base bearing Magnetic reed switches Driver board Interface board Edge connector 6mm Washers Roll pins 4 5mm circlips 3mm circlips Elbow spacer 120 121 122 123 124 125 010 126 127 128 129 130 134 132 13 3 Item No 101 25 ASSEMBLY Preparation Study the parts list drawings and the parts themselves until you are sure you have identified them all Assemble the tools 2 3 Read carefully suggested in the list of t ools technical hints section Solder 12inchesof ribbon cable to each into the slots in the r
59. n metal M6 washers at either end see drawing Slide gently into position and bolt in the support bolts 4 10mm Fit the belts round the motor pulleys Put upper arm drive gear on the outside of the upper arm side plate The magnet should be at 1 o clock viewed from the gear side of the arm M3 CSK screws x 6mm Fit a brace to one upper arm side piece 22 then fit the other side piece to the brace Fit all bolts and nuts before tightening any of them Check 8mm shoulder spindle 29 slides freely through accute bushes in upper arm side pieces and through bores of drive gears pulleys and spacers Assemble by sliding shaft from one side and threading gears pulleys and spacers on in the correct order of orientation use drawing c grs Fit pulley 32 to the outside of the forearm side plate 30 M3x6mm countersunk screws Fit a brace to one forearm side plate then fit the other side plate to the brace Check for squareness before finally tightening bolts Put elbow pivot through bushes and an 8mm bar through wrist bushes M3 bolts nuts Check fit before assembly 33 on the elbow spindle 34 lubricate and fit it to arm and bolt through into spindle Assemble the wrist bevel gear carrier 35 and wrist pull and then tap the roll pins gently home with a small supporting aluminium gear carrier to prevent distortion Fit the wrist gears on the bush
60. new step value Get response Bad answer We have positive response New negative step value too large Step value OK New positive step value too large So exit else ok Get step value Restore memory pointer Place step value in store Go do next operation Print error message and return to main loop ES 15 REA D ROUTINE Reads stored sequence from into memory READ LD HL CASRD CALL PSTR CALL GCHRA CALL PNEWL 7 T 2 JP 7 00 51 CP SPAC JR NZ READ XOR CALL CASON CALL DELS CALL RDHDR gt CALL READC LD CALL READC LD C A OR B 5 JP Z NOSTR LD COUNT BC LD HL ARST ROWNR PUSH BC E E 0 LD B 6 RDBYT CALL READC LD HL A ADD LD INC HL RDBYT POP BC CALL READC CP E JR NZ RDERR DEC BC LD A B OR JR NZ ROWNR CALL CASOF JP TAPEF RDERR LD HL RDMSG CALL PSTR JP QUES1 4 cassette Point to wait message Print it Get response Print new line Is response a dot Yes then exit Is it a space No then try again Clear A Drive zero Switch on drive zero Short delay Read header from tape Read first character Put in B Read second character Place in C BC now equals count Count zero so exit Set count read count Point to start of store Same co
61. o nuts as a cable pillar Single finger cable fix to the hand sheave pulley using M3 x 6mm cheesehead and crimped cable clamp Doub I e finger cable loop over small hand sheave pulley on grip action pulley and adjust so that G P is even when evenlypositioned it Grip action cable fixed in cable drum ther end to arm whi ulleys are tart at end and stick le fitting 5 to the shoulder then tension with the spring to base pan Ends using the shoulder So not 2 14 1 47m T the crimped cable eyelets should be eyelet and a small thumb knot tied the bracket crimp too though KEVLAR 15 95m 18m 36m 3m TO each threaded prevent using tight very tough Parle Chr 2 eal procss or FRATA 4 2 31 bl par Jf tn EL the ipti itput gate r r atoro ha wert Bre ni 2257 deed o Ms 952 way bit th part fonr 8998 7 ssttoi rhe tdfphE Wear coils 4 at titi Gre Brasne the moles bots lt M 6 ea hera t6 elect ons cf iocait gt p tbi S di pat 3541 vhi
62. o provide a latch motor control that the line Rl so The uffered output of bit buffer is always inputs are buffered by by the complemented output of bitl IC5 is enabled input to the microprocessor SO and the contents of the arm under bit its enable IC5 which is enabled This allows that when bitl is high the microswitches will be the ins user to operate microswitch change and avoiding having to poll inputs are pulled up switches can be connected via only one lead per switch switches The s interupt control ix microswitch the arm chassis acting as ground THE MOTOR DR the motor drivers are designed so IVERS from the o The six motor driver stages need two power supplies about 3A and 5v at 150 The fo are 7 curren current X ur waveforms QA Q Darlington Transistor needed to drive the stepper motor coils being about 300 MA at 15 MA LE Se 3 2 giving D are then fed into tant response to the micro thus the with that the arm can be driven utput of the computer interface circuitry 15v at IC s 13 16 which These provide the high the driving INTERFACE DRIVER BOARD ITEM VALUE Resistors 1 0 R2 10K R3 8 2K2 resitor network R9 1K8
63. or modification although of course the machine may also be purchased ready assembled This manual has been compiled as a guide to the construction and Operation of your Armdroid micro robotic arm and should be followed carefully There are separate sections covering both the mechanical and electronic aspects of the robot as well as the specially written software 1 1 Ab ic i sipo bousen tha a J Wien the haan Sie five Movers 3 thei bors the ape rhe 84011825 about Frigor at d A FAREN xh a y sn g T wi Aa 4 Ba 3 4 71 Sta he dents GRANTS 0 720 Turski with dex subber mrd ers and ahut MECHANICS 2 1 Description The ARMDROID consists of five main parts The base The base performs not just its obvious function of supporting the rest of the arm It also houses the printed circuit boards and the motor that provides the rotation The Shoulder The shoulder which rotates on the base by way of the main bearing carries five motors and their reduction gears which mesh with the reduction gears on the upper arm The Upper Arm The lower end of the upper
64. r function During a L EARN pressing S ET ARM at any moment when the arm is at rest will ensure that the movements before and after are separated from each other instead of being merged This is the way to make quite sure that the arm passes through a particular point during a sequence Try the same two movements without pressing S ET ARM and note the difference in the display 4 2 It is important to realise that if sequence has been memorised and S ET ARM is pressed from the Menu when the arm is not in its original starting position pressing G 0 will take the arm through the sequence but from the new starting point This can be useful for adjusting the whole of sequence perhaps slightly to right or left but it can lead to the arm running into objects if the new starting point is not selected with care W RITE Writes a memorised sequence to cassette tape R EAD Reads previously written sequence from cassette tape into memory Compares sequence written to cassette tape with the same sequence still in memory to verify the tape G 0 Moves the arm through a memorised sequence either once or repeatedly It is important to make sure that the starting point in memory is the right one or the sequence may try to take the arm into impossible positions see S ET ARM T 0 START Takes the arm back to th
65. ro No then skip Reset CTPOS N to position 1 in FTABL Get motor address in A Shift it left for interface defn or in FTABL pulse Output it to selected motor Advance points to next motors Do next motor Exit with register restoration clear all motors torque Save Registers Print NO TORQUE message Pattern for motors off B Motor count Get motor address in A Shift into correct bit position Combine with coils off pattern Output to selected motor Do next motor Clear CTPOS array to value of 1 Restore Registers Done exit 29 SETDT NSET1 USH USH USH E ee tU UU DJNZ POP POP POP RET B 6 HL CTPOS HL 1 HL HL DE BC 4 Set CTPOS elements to start Save used registers Motor count to B HL points to CTPOS array Set CTPOS N to start position Do 30 Increment HL set up next CTPOS element Restore used registers 1 SUBROUTI se se Ne Se DRAMT NMTDT NORST IGMTN REVMT OUTAM NE DRAMT PUSH USH USH USH D H 2 2 IG OD G O E H E E tJ tU tJ DI lt 2 O oyy Q E ou O O m HE i p Hi H E UY DRAMT BC DE HL B 6 i DE MOTBF 5 HL CTPOS A DE A Z IGMTN
66. rubber to finger tips pulley using superglue you will need to align the reduction between the main drive gears as you lower the arm into and assemble using 5 hex head bolts and shakeproof correctly ulder base pan via the spring ension using the normal method The driver and interface board should be bolted to the base pan using th base Hints Useful a 2 or 3 e spacer bars bulldog clips 58 and spacers Bolt base pan M3 hex head tools are over compil is threaded b a drop of cut The NB 57 tO to maintain the tension in the cable leted sections of each cable while the remainder Masking tape can also be used for Ends of the cable can be prevented from fraying superglue excess should be wiped off on a piece o This process also stiffens the end which is useful threading the cable through the pulleys Ensure al the cable from machi c l grub screws are in holes Also check ning blocking the holes The cable shoulder which The grip and back applied by pullin grub screw quite possible without The correct judged as when completed the coils of the spring sho just separated though this is not critical When tensioning t S can be threaded before the action to the shoulder he cable if it then c and arm is bolted for eases the problems of access considerably cable tail can be taped or
67. sing the 1 6 Q Y keys as explained in the manual section Try just one movement alone at first Now press O zero to exit from L EARN The arm will return to the starting position and the Menu appears on the screen 5 Screen Menu Press for ISPLAY 6 Screen Display and Menu The numbers of steps you applied to each motor have been memorised by the computer and these steps are now displayed see D ISPLAY section for explanation Press G for G 0 Ts Screen DO F OREVER OR 0 NCE Press letter and the arm will repeat the movement it has learnt 5 SEQUENCE COMPLETE and Menu Press 1 9 Screen 2 above This time press Now you can continue the movement from this position using the 1 6 Q Y keys as before Now press 0 zero Again the arm returns to its original position 10 Screen Menu Press D Tl Screen Display and menu Your new movement has been added to your first Press T2 Screen 7 above This time press F Each time a sequence is started a full point is added to the row on the Screen To stop press full point This is a very simple demonstration of how complex movements can be built up learnt as a sequence and then repeated endlessly and with great accuracy SYSTEM EQUATES PORT EQU 04 FINAD EQU 0282 PCHR EQU 0033H GCHR EQU
68. sion Routine CTBAS Each two bytes of this six element array contain one value which is used to keep track of each motor s motion hence the array can be used to reset the arm moving it into a defined start position Each 16 bit value stores a motor s steps in two s complement arithmetic 6 Bytes each relating to a motor A number from 1 4 is stored in each byte and this is used to index the FTABL see constant definition When learning a move sequence the six motors motions are stored in this Six byte array Each byte relates to a motor and holds a motor step count in the range 128 to 127 If the motor changes direction or a count exceeds the specified range then the whole TBUF array is stored in the ARST array and the TBUF array is cleared TBUF means temporary buffer Each byte relates to the previous direction of a motor A six byte array used by DRAMT to tell which motors are being driven and in which direction Bit zero set if motor to be driven Bit one set if motor in reverse Byte zero if motor should not be driven This array holds the sequence that the user teaches the system The array consists of N 6 bytes where N is the number of rows needed to store the sequence 4 23 CONSTANTS USED FTABL DEFB 192 DEFB 144 DEFB 48 DEFB 96 FTABL is small table which defines the order of t
69. so tha t the from computer the states states while the motors when when DI is to low generates a pulse to if installed tern to be latched into the addressed are used to read the six microswitches Zero which can be used as reference points for resetting the arm in any position before a learning sequ D2 is spare home brew The interface decode the da logic latches IC6 eight select a ence begins circuitry consists of It is an input bit which can be buffered and used for an extra input sensor allowing the user to connect a transducer to the system twelve TTL components which ta and route nd IC2 buffer the da to the selected motor driven ta out to the decoder and it out decodes the lines Six of which are for the three input address bits to provide latches IC7 IC12 3 1 INTERFACE ONLY a clock pulse pulse for approx 01 is buffered and fed into a monostable decoder imately 500ns to the addresses This causes the latch buffers ICl and so that da low The bit 1 is tied low The microswitch Dl is tied is high except when are output from the microprocessor IC2 are enabled by the b ta are fed to the latch inputs only when bit 1 is enabled because to pull up resister ICA to generate t
70. then tighten the grub screw inserting a small wood plug to protect the bearing thread 4 grub screws 102 The bearing may need adjusting after some use as it beds in Fit hand motor bracket 15 to shoulder base pan M3 bolts then the hand motor O3h M4 and the hand motor pulley Then fit the hand reed switch bracket M3 and the switch M3 x 10 cheesehead bolts Fit motors to the shoulder side plates 17 and feed the cables through the holes towards the inside The bolts which are next to the reduction gears should be placed nut out to prevent the reduction gears catching on the end of the bolts Fit correct pulleys 04u f w to the motor spindles noting which pulleys from the drawing tighten the grub screws Fit the shoulder plates This is simplified by loosely tightening the end bolts to support the weight Feed the motor cables down through the main bearing M3 Slide switch support 19 bar through spacers 18 switches 101 and motor support bracket see drawing for correct order of spacers You will need to be able to adjust the position of the reed switches after the arm is fitted so that they clear the gear wheels ie tangential to shoulder pivot Fit the motor support stiffener bar and spacers Leave nuts finger tight M3 nuts Assemble reduction gear support bar 21 assemble with the correct length drive belts 08s m 1 over each gear reduction gears facing in correct direction and the thi
71. turn SUBROUT NE STEPM This rou 7 stepped STEPM TRYO CONT CONTA USH USH USH D D D PEPPER tg tU tg to be so and positions from their s AF HL BC HL MOTBF B 6 A HL A NZ CONTA HL TRYO BC HL AF BC HL DRAMT POSIC AF e Ne No Ne Ne Ne Ne 4 tine causes all motors that should be updates the motors relative tart positions Save Register HL points to motor buffer B Count Get motor value 3 or 1 Zero No then continue Point to next motor Do next motor Restore Registers Exit Restore registers Drive motors Increment relative position Restore AF Exit 32 SUBROUTINE DNEWD This subroutine checks to see if any motors are changing direction if so a delay is inserteq 2 into the sequence DNEWD PUSH AF ar us PUSH BC C PUSH DE save used registers PUSH HL 10 BC 6 Load BC with count OR 1 SBC HL BC HC points to previous motor slice LD D H LD E L Move HL to DE POP HL Restore current row pointer PUSH HL Save again LD BC LD A HL Get contents of this row CP 0 See if positive or negative LD A DE Get identical previous motor slot JP P PDIR if positive do
72. uch about understanding all the details Then go to Section 4 5 and follow the Sequence for Newcomers This will give you a good idea of what the program does After that you can begin to discover some of the subtleties of planning and fine tuning sequences of movements 4 4 Explanation L EARN Stores a sequence of manual movements in memory The arm is moved using the commands explained under M ANUAL You can exit the command by pressing 0 zero press G 0 and the arm will repeat the movement you have taught it On pressing L EARN you will be asked whether you want to S TART again or C ONTINUE from the current position The first time press S TART The arm is then free to be moved by hand without the motors torque preventing you Move it to a suitable starting position then press the space bar You will find that you cannot now move the arm by hand 4 1 sequence already in memory press C ONTINUE instead of S TART Using the manual commands move the arm to another position it goes the computer is adding up the steps each motor is making either forward or back and storing the data in memory holding the space bar down during manual control slows the movement Exit by pressing 0 zero D ISPLAY Displays the sequence stored in memory The sequence can be edited with the E DIT command The six columns of fi
73. unt E Check sum for a row B Column Count Read a row element Store it Add it to check sum Store in check sum Inc memory pointer Do next element Restore row count Read check digit Same as calculated No then error Decrement row count See if row count is zero No then read next row Switch cassette off exit Error message for Print it Go to main loop tape 16 WRITE ROUTI NE Writes a stored sequence to tape WRITE BADWI ROWNW WRBYT CALL CALL D G H lt E E Hd PPro CALL ADD INC DJNZ CALL POP DEC OR CALL BC COUNT A B C Z NOSTR HL CASRD PSTR GCHRA PNEWL Z QUES1 SPAC NZ BADWI CASON DELT WRLDR DELT BC COUNT A B WRBYA DELT WRBYA HL ARST BC E 0 B 6 A HL DELS WRBYA DELS A E E A HL WRBYT WRBYA BC BC A B NZ ROWNW CASOF QUES1 4 se Ne No No No Ne Ne 5 5 74 Ne se se se Ne Ne NO NO Ne Ne 7 4 Ne Ne Ne se Get Lf row count zero exit print message Get answer Print new line Is Yes Is No answer a dot then exit answer a space then try again Clear drive number Switch on drive zero delay Write Leader delay

Download Pdf Manuals

image

Related Search

Related Contents

RM Tablet PC User Guide RTAB910    SillaCocheBebe.com  Manual - National Instruments  Graco Inc. 309291 Paint Sprayer User Manual  IAN 72316 - Lidl Service Website  PentaLED30 User Manual  Philips InStyle Ceiling light 33251/11/16  Page 1 Page 2 Page 3 カラーバリエーション ロホワイト スタイリッシュ  

Copyright © All rights reserved.
Failed to retrieve file