15 May 2016

2.77 PUPS 11: Documentation

Thanks a lot, Professor Slocum, for teaching this great class! I've learned a lot and I can't wait to apply my new skills to my future designs. 

Here is a link to my final report: Dropbox Link

Owner's Manual: 

Home configuration:

  • Clamp (Y) axes both fully disengaged, back clamp screw touching the rear top plate. 
  • X axis against wall near its stepper motor
  • Z axis all the way up.

Electronics and turning on your FASBot: 

  • The FASBot uses a 22.2 LiPo battery, which can last it a long time. Place the battery inside the FASBot's electronics compartment on the hook-and-loop fastener patch. The power connectors should be facing AWAY from the wall.
  • To turn the FASBot on, flip the switch on the backside UP. 
  • A digital display shows the battery's voltage. This battery will charge up to 25V and should be disconnected and charged before it reaches 18V.

Software and communicating with your FASBot: 

  • The FASBot uses an Arduino Uno with grbl CNC firmware.  
  • The Arduino Uno is fitted with an XBee wireless communication device on a shield. An identical Xbee attached to a USB dongle is required to communicate with the FASBot. This XBee will show up as a serial port on your computer. In order to allow for reliable wireless communication, a serial baud rate of 19200 must be used. 
  • The FASBot can be controlled using GCode from the CNC GCode Interpreter. 
  • For its intended purpose in aircraft manufacturing, a Python program was written in order to allow the FASBot to be integrated with the Triple Scissor Extender and allow the pair to work together autonomously. The FASBot must be turned ON before running the Python program. 
FASBotTest.py
 """  
 FASBot control software  
 by Daniel J. Gonzalez - dgonz@mit.edu  
 Spring 2016  
 """  
 import serial  
 import time  
 # Open grbl serial port  
 s = serial.Serial('COM13',19200)  
 def setupFASBot():  
   # Wake up grbl  
   s.write("\r\n\r\n")  
   time.sleep(2)  # Wait for grbl to initialize  
   s.flushInput() # Flush startup text in serial input  
   sendG('G20')  
 def sendG(msg):  
   print 'Sending: ' + msg  
   s.write(msg+'\n')  
   grbl_out = s.readline()  
   print ' : ' + grbl_out.strip()  
 def exitFASBot():  
   # Close file and serial port  
   s.close()  
 def sendFasten():  
   #Drive Spindle  
   sendG('S100 M3')  
   #Move Spindle Down  
   sendG('G90 G0 Z-1.25')  
   #Turn OFf Spindle  
   sendG('M5')  
   #Move Spindle Back up  
   sendG('G90 G0 Z-0.5')  
 def test():  
   setupFASBot()  
   """  
   for i in range(0,25):  
     sendG('G90 G0 X3')  
     sendG('G90 G0 X4')  
     raw_input(" Press <Enter> to Move to rest location.")  
   """  
   #raw_input(" Press <Enter> to Start up FASBot.")  
   #Move Spindle To Side  
   sendG('G90 G0 X4.5 Z-0.5') #(1.783/2) #(1*(1.75))  
   #raw_input(" Press <Enter> to Close Clamp.")  
   #Close Clamp  
   sendG('G90 G0 Y1.6')  
   #raw_input(" Press <Enter> to Start Fastening Job.")  
   for i in range(0,6):  
     sendG('G90 G0 X'+str(i*1.75))  
     sendFasten()  
   #raw_input(" Press <Enter> to Move to pickup position.")  
   #Move Spindle Home  
   sendG('G90 G0 X4.5 Z0')  
   #raw_input(" Press <Enter> to Open Clamp.")  
   #Open Clamp  
   sendG('G90 G0 Y0')  
   #raw_input(" Press <Enter> after FASBot is removed from TSE.")  
   #Move Spindle To Side  
   sendG('G90 G0 X0') #(1.783/2) #(1*(1.75))  
   exitFASBot()  
 test()  

This test program requires the user to press ENTER in order for the FASBot to perform the next move. By putting this code into the code running the Triple Scissor Extender, they can both be used together autonomously. For the demonstration, two computers were used, each running its own program that required the user to press Enter

Once the Python program exits, the FASBot may be turned off.

Aaaaaaaaaaaand that's a wrap! 

No comments:

Post a Comment