dacb scara arm - customizer version

dacb scara arm - customizer version

thingiverse

Forked @dacb's scara arm & refactored .scad files for thingiverse customizer. Use the customizer button on the right to customize the parts for your own scara arm! from http://www.thingiverse.com/thing:948061: "Simple 2D SCARA like robot arm using inexpensive 28BYJ-48 servo motors ($5 each w/ driver board), 6807-2RS bearings ($5 each) and inexpensive contact switches ($5 for 10 switches)." And a raspberry pi program for control - get the source from dcab's github repo. Pi GPIO pins are defined in the header files in the source code: steppers, limit switches, optional laser. The attached .stl files were generated with the customizer using arm forearmLength = 150 & armLength = 150. The defaults are 100 and 75 - be sure to change the source code for the kinematics function if you use the customizer to change the arm lengths. Print Settings Rafts: No Supports: Yes Notes: "I printed the shoulder to elbow lengths upside down from the orientation of the STL uploaded to thingiverse, with very light support (~ 7%). Then, I cut the support out with an exactoknife and patience to make a clean fitting for the bearing." dcab's original instructions The full up-to-date source for the hardware and software are available here: https://github.com/beckdac/SCARA Please use the github sources. The files uploaded here may not be up to date. I definitely recommend using the Makefile which is setup for running openscad from the command line on a Mac. Definitely check the adjustable parameters in SCARA.scad. The arm lengths can be adjusted in this file but need to be matched in the mcp program's kinematics.h that is part of the github repo. The current inverse kinetics code is complete, but the command line drawing program doesn't support much else from drawing simple lines. Run with mcp core run A montage of assembly photographs including which M3 screw lengths to use is available in the assembly.pdf file: https://thingiverse-production-new.s3.amazonaws.com/assets/f1/b3/03/a4/0d/assembly.pdf The hardware is M3. Two 6807-2RS bearings per joint (4 total). Two 28BYJ-48 steppers are required. You can mount them on the top or bottom of each joint. If you change the arm lengths and find the steppers lack power, you can mount two on each joint (total = 4) and run the top and bottom for a joint in opposite wiring patterns so that they run in opposite direction from the same pulse train. Two cheap contact switches for limit detection per joint. The laser used in the demos: https://www.amazon.com/gp/product/B00R73MC1S/ref=cm_cr_ryp_prd_ttl_sol_2 The arm can easily support double the version I printed here (which was for testing) and will realize quite a large envelope. I printed the shoulder to elbow lengths upside down from the orientation of the STL uploaded to thingiverse, with very light support (~ 7%). Then, I cut the support out with an exactoknife and patience to make a clean fitting for the bearing. Electronics Raspberry Pi GPIO pins The comprehensive Raspberry Pi GPIO Pinout guide now with Raspberry Pi Model B+, Raspberry Pi 2 and Pi Zero. Power pins on RPi 2 GPIO (elinux.org): The maximum permitted current draw from the 3.3 V pins is 50 mA. Maximum permitted current draw from the 5 V pin is the USB input current (usually 1 A) minus any current draw from the rest of the board.[18] Model A: 1000 mA - 500 mA -> max current draw: 500 mA Model B: 1000 mA - 700 mA -> max current draw: 300 mA Be very careful with the 5 V pins P1-02 and P1-04, because if you short 5 V to any other P1 pin you may permanently damage your RasPi. Before probing P1, it is a good idea to strip short pieces of insulation off a wire and push them over the 5 V pins are not accidentally shorted with a probe. 28BYJ-48 Stepper datasheet datasheet 28BYJ-48 datasheet. Details: Rated voltage: 5VDC Number of Phase: 4 Speed Variation Ratio: 1/64 Stride Angle: 5.625° /64 Frequency: 100Hz DC resistance: 50Ω±7%(25℃) Idle In-traction Frequency: > 600Hz Idle Out-traction Frequency: > 1000Hz In-traction Torque: > 34.3mN.m(120Hz) Self-positioning Torque: > 34.3mN.m Friction torque: 600-1200 gf.cm Pull in torque: 300 gf.cm Insulation: grade A [but probably not really - other sources indicate "E"] Powering the 28BYJ-48 The motor has 4 coils of wire that are powered in a sequence to make the magnetic motor shaft spin. When using the full-step method, 2 of the 4 coils are powered at each step. The default stepper library that comes pre-installed with the Arduino IDE uses this method. The 28BYH-48 datasheet specifies that the preferred method for driving this stepper is using the half-step method, where we first power coil 1 only, then coil 1 and 2 together, then coil 2 only and so on…With 4 coils, this means 8 different signals, like in the table below. - 42bots.com According to Graham Wideman, the stepper will use 360 mA, "assuming that two half-windings driven at all time. Ie: Four-phase stepping pattern." (so for steps 1,3,5,7 in the diagram below, the motor will pull half that current, 165 mA, and all of it for the other steps). Conclusion: provide at least 400mA for each stepper. According to the elinix RPI wiki documentation on GPIO power pins (see above), it sounds as if the RPi 2 Model B consumes 700 mA from the connected microUSB power supply. So with a normal 1-amp power supply (1000 mA - 700 mA), the max current that can be sourced from the GPIO 5V pins is 300 mA. But what about with a 2-amp usb power supply? It's not as clear. The RPi B2+ apparently has a 2-amp polyfuse (archive), so if we connect a 2-amp usb power supply, the Pi will take 700 mA and provide up to ~1300 mA to the USB and GPIO 5v pins. (note: GPIO pins themselves can only supply 30-50 mA. note 2: don't try to actually draw 2 amps or the polyfuse will reset the board. note 3: there may be a voltage drop as more current is consumed. note 4: apparently some there is a boot setting in the rpi config.txt - "max_usb_current=1" - that may be important ). Conclusion: with a 2-amp usb power supply, the 5V GPIO pin should be able to safely supply 1000 mA, enough to power two 28BYJ-48 stepper motors (~400 mA each)." Note that usb peripherals, especially wifi adaptors, will consume some of the extra current. Final conclusion: possibly use a single 2-amp power supply and connect steppers to GPIO +5V. Better would be separate power supplies and connecting the ground of the steppers to the ground on the GPIO. RPi + Stepper guides & tutorials guides Background reading on controlling the 28BYJ-48 Stepper Motor (note that the board that comes with the stepper has a ULN2003APG chip): Graham Wideman's J8BYJ-48 overview - retail variants, teardown, gearing, power usage, control. start here (webarchive) Adafruit's Raspberry Pi Lesson 10. Stepper Motors - controlling a ULN2803 with your own DIY driver circuit (using darlington array chips ULN2803 or L293D) and a raspberry pi. ScrapToPower's How to connect Stepper motors to a Raspberry Pi w/ code example (archive) Other handy guides: 28BYJ-48 Stepper Motor with ULN2003 driver and Arduino Uno - 42bots.com (web archive) BYJ48 Stepper Motor arduino instructable Stepping Motors part 6: A Worked Stepping Motor Example by Douglas W. Jones. Background on using darlington array chips (like ULN2003, the one on the included driver board) to control steppers. Webarchive. general purpose info - Complete Motor guide for Robotics by Md. Khairul Alam via hackster.io - archives #1 #2 half-stepping switching sequence 28BYJ-48 Stepper & driver board - $5 on ebay 28ByJ-48 Stepper driver board RPi Software Software If you want to use @dacb's software, you need to configure the GPIO pins in the source code. Pi GPIO pins are defined in the header files in the source code: steppers, limit switches, optional laser. Other software:

Download Model from thingiverse

With this file you will be able to print dacb scara arm - customizer version with your 3D printer. Click on the button and save the file on your computer to work, edit or customize your design. You can also find more 3D designs for printers on dacb scara arm - customizer version.