This video shows how the robot operates acting as a pick and place Machine.
In this tutorial we will be making a pick and place Machine as this is the most common use for a delta Robot in the industry besides 3d printing. This project took me a bit of time to perfect and was very challenging, it involves:
Mechanical design and feasibility check
Prototyping and making of the mechanical structure
Electrical wiring
Software and graphical user interface development
Implementing of computer vision for an automated robot (still need your help in this part)
The Mechanical Design :
Before I started making the final robot (third version)I designed it on fusion 360 and here’s the 3d Model, Plans and overview:
3d Model View 1
Plans
Real Model
3d Model View 2
3d Model View 3
For the plans it would be more accurate to get the dimensions from the 3D Model Downloadable Here from my fusion HUB.
you also can download all the needed plans in PDF :
these are the stl file for the End effector and the rod supports downloadable on my thingiverse : Link
Start by 3d printing the rod connection and the end effector. After that use wood or steel for the base I recommend its CNC cut for the precision as well as you should for the arms I made them from alucobond the material used for store fronts it’s made from rubber sandwiched between two thin aluminum sheet 3mm thick.
Next we have to work on the L shaped steel to mount the steppers, cut to 100mm and holes drilled to mount the steppers(hint: you can make the holes wider to be able to tension the belt )
Then the threaded 6 mm Ø rods ,for the forearms connection 400mm length should be cut then threaded or hot glued to the ball joint I used this jig to ensure they all have the same length it is crucial for the robot to be parallel.
Finally the 12 mm Ø rods should be cut to about 130mm in length to be used for the pivot point of the robot connecting the 50mm Ø pulley.
Now that all the parts are ready you can start assembling everything which is straightforward as shown in the pictures keep in mind you need some sort of support like the pink one I used to be able to hold everything, better than what I did in the part2 video =D.
Electrical:
from minute 5 i talk about the electronics
The main thing we need to do is set up GRBL by downloading/cloning it from its Github repository I used the 0.9 version but you can update to 1.1 (Link: https://github.com/grbl/grbl). Add the library to arduino libraries folder and upload it to your arduino.
Now that GRBL is on our arduino connect it, open the serial monitor and change the default values as shown in the picture to match your robot configuration:
I used 50mm and 25mm pulley => 50/25 =1/2 reduction and 1/16th step resolution so 1° angle is 18 steps/°
Now the robot is ready to receive gcode commands:
M3 & M4 ⇒ activate / deactivate Vacuum
X10 ⇒ move stepper X to 10°
X10Y20Z-30.6 ⇒ move stepper X to 10° & Y to 20° and Z to -30.6°
G4P2 ⇒ Wait for two seconds (delay)
At this point with any gcode sender you can make it repeat preconfigured tasks like picking & placing.
download demo gcodedemo.txt that you can stream to the robot.
GUI and Image Processing:
To be able to follow me on this you need to watch my video explaining the GUI, going through bits of the code & the interface starting from minute 8:30 :
The GUI is made with Visual Studio 2017 free Community version, I tweaked the code from http://forums.trossenrobotics.com/tutorials/introduction-129/delta-robot-kinematics-3276/ for the kinematics calculations to determine its position. The EmguCV library for image processing and simple math to move the end effector to the position of bottle caps to pick them and place them is predefined position.
You can download the windows application to test with the robot frommy github repository or all of the source code and help me build up on it as it needs more work and debugging. Visit it and try to solve the problems with me or give new ideas recommend it to people that can help. I ask for your contribution on the code and to support me in any way you can.
Now I thank you for checking this awesome project and stay tuned for more.
Late this year I bought a delta 3d printer. I was fascinated by the design and mechanism, how it moves so dynamically by actuating its three arms.it accelerates and decelerates quickly maintaining the accuracy of the printing head position.
It made me think to study it and why not make my own delta robot. The occasion came up in this year’s project, I proposed the idea to my team and they liked it.
So we intend to make a deltabot with a different purpose than 3d printing, a pick and place machine sorting items according to different characteristics (color, weight…..)
2. The Delta Mechanism :
A delta mechanism is composed of three parts:
The BASE:
A triangular shaped platform which houses the actuators in our case we chose stepper motors for their accuracy and repeatability, because all the weight resides in the base the arms of the robot can be very light reducing there inertia so they can accelerate very fast in an accurate way.
The End-Effector:
A smaller triangular shaped platform which translates in the XYZ axis but stays parallel to the base platform, it also houses a suction device or a smell actuated arm to pick and drop the sorted items.
The Arms:
Three symmetrical arms that move independently, Composed of an arm that is actuated from the base, a parallelogram acting as the forearm which is the connected to the end effector all its joints are ball joints. The parallelogram locks the end effector platform parallel to the base which is the difference between a delta bot and a Stewart platform and the ball joints give the end-effector the 3 Degrees of freedom DOF to move in the XYZ planes.
Actuation Type Choice:
There is two types of actuation for these three arms either linear or revolute, common 3D printers use linear actuation, and industrial deltabot used for pick & place use revolute actuation. I chose the revolute actuation because it’s easier to make with minimal mechanical items and also cheaper as linear rods or wheels on aluminum profiles tend to be more expensive to buy than to directly drive the arms from the actuator.
3. Motion Study:
Only by rotating first part of the arms we are able to change the position of the end effector platform as shown in the figure below,
Inverse kinematics was applied to determine the output angle of each servo for a desired position of the effector (xg,yg,zg). Each leg was solved individually. Cylindrical polar coordinates are used to take advantage of the circular symmetry. Each leg is projected into a 2D plane then basic geometry was used to determine the final servo output angle.
4. Design and Parts List
1. Mechanical Parts:
We will be needing a strong frame to support the weight of the motors and the base it needs to rigid and heavy to eliminate all the vibration when the arms are moving quickly so we can either use steel or aluminum profiles to make it.
For the Base and the end effector an acrylic (plastic) or a wooden board can be used
For the upper arm 3d printing the part can be easier as it’ll have many mounting points one side for the motor and the other side to connect the ball joint, if we don’t have access to a 3d printer we will be using acrylic.
For the parallelogram we need small rods need to be very light and 4 ball joints each.
The ball joint problem:
It may be difficult to find small ball joints (embout a rotule) on the market so we are not lucky we can make our own in a very clever way by combining two perpendicular pivot axes on the X and Y using 4 ball bearings.
The end effector will be equipped with an actuator to hold the items were picking preferably it’s a suction module but we can use a servo actuated gripper.
2. Electronics Components:
• As actuators we can use either servo motors or steppers I prefer steppers as they are more accurate in both position and acceleration, we need three in total
• If we are using steppers drivers are needed (DRV8825 or A4988)
• A microcontroller (an arduino Uno or Mega)
• Wires
• A color sensor
• Weight sensor
Essential parts List Proposal:
3 Stepper Motors NEMA17 Arm Actuator
3 A4988 3 Stepper Motor Driver
1 Arduino UNO Microcontroller board
12 Ball Joints Mechanical joint linkage
1 TCS34725 Color sensor 1 Color sensor
I modeled the design on Fusion 360 and exported these renderings :
First of all i need to thank SOMEF for this opportunity and special thanks to my Supervisor Med Amine Chibani,Also all the members of the development & test team
Introduction
As a student engineer in Electro-Mechanics I had the opportunity for an internship at SOMEF which is the leader company in its field of business here in Tunisia, with products that varies from simple home switches to home automation and smart house implementation it presented for me a company that I need to visit and a chance to widen my professional experience.
So I applied and they accepted me in the department of development and testing, not going to go in all the details I just want to tell you about my project so here we go.
The Internship
Main task: Design and manufacture of an instantaneous current measurement module, able to visualize the values on the computer in real time
With my supervisor we detailed what the project was and its functionalities :
The module needs to be able to measure the current up to 5 A we chose the IC ACS712 for that,an LCD-1602 to display the values everything will be controlled by an ARDUINO-UNO, using its serial port we will relay the values and print them in real time on an excel-sheet.
My first challenge was to read the Data Sheet of the ACS712 to interpret the output signal according to the passing current, after finding the formula I had to write and test the program on the arduino and display it on LCD. The Second Challenge was to find a reliable solution to visualize and save these values on Microsoft-Excel in order to draw the curve. For that I found PLX-DAQ which is a software add-in of the Parallax Data Acquisition Tool (PLX-DAQ) for Microsoft Excel Acquires up to 26 channels of data from a microcontroller and places them in the columns as soon as they arrive. PLX-DAQ provides easy analysis of spreadsheets of collected data.
After testing the features separately from reading , displaying on an LCD and the real-time acquisition of the values. All that remains was writing the program.
For the circuits he asked me to make a shield housing the LCD screen for the arduino and input for the measuring circuit. The second circuit had one power input and three USB outputs with the ACS712 in the middle of it to measure the passing current.
To make the circuits I used Autodesk EAGLE here’s some pictures:
And I used my CNC to make the PCB’s and I had an acceptable result.
tunmakertunmaker
Now that circuits are made I needed a box for them so I made one using Autodesk fusion 360 for modelling and 3D printed them on my KOSSEL DELTA
Making an arduino based IR remote is fairly simple thanks to the IR library.it enables us to :
Detect and Read IR Signal
Decode It
Send Ir Signal
which is all we need for an infrared remote as we will be sending a coded message to be able to identify each button.
this project has many applications other than duplicating a TV or radio IR remote but can be used to activate or trigger anything with an IR receiver up to 10 meters away.
Principle :
the IR light that an IR led cant be seeing with a human eye ( you can use a camera to see it) but IR receivers can.the arduino using the PWM function will blink the led at a certain frequency which is picked up by the TSOP Ir receiver which can interpret those bursts of IR light into data.
Code:
IR Library Download Link :
the first code i used is the IRrecdemo and IRrecvDumpv2 included in the arduino IR library.how can read the IR signal of remotes and decode it .
IR Emitter code :
#include <IRremote.h>
IRsend irsend;
const int switch1 = 4;
const int switch2 = 5;
const int switch3 = 6;
void setup() {
pinMode(switch1, INPUT_PULLUP);
pinMode(switch2, INPUT_PULLUP);
pinMode(switch3, INPUT_PULLUP);
}
void loop() {
if (digitalRead(switch1) == LOW){
delay(50);
irsend.sendNEC(0xE0E020DF, 32);}
if (digitalRead(switch2) == LOW){
delay(50);
irsend.sendNEC(0xE0E0A05F, 32);}
if (digitalRead(switch3) == LOW){
delay(50);
irsend.sendNEC(0xE0E0609F, 32);}
}
IR Receiver code :
#include <IRremote.h> // IR library
const int RECV_PIN = 11; // TSOP IR Receiver Data PIN
const int switch1 = 2; //Switch or led's to be activated OUTPUTS
const int switch2 = 3;
const int switch3 = 4;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
irrecv.enableIRIn();
pinMode(switch1, OUTPUT);
pinMode(switch2, OUTPUT);
pinMode(switch3, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) { // Receiving IR Signal and decoding it
irrecv.resume();
}
if (results.value == 0xE0E020DF) {
digitalWrite(switch1, HIGH);
delay(200);
digitalWrite(switch1, LOW);
results.value = 0x00000000;
}
if (results.value == 0xE0E0A05F) {
digitalWrite(switch2, HIGH);
delay(200);
digitalWrite(switch2, LOW);
results.value = 0x00000000;
}
if (results.value == 0xE0E0609F) {
digitalWrite(switch3, HIGH);
delay(200);
digitalWrite(switch3, LOW);
results.value = 0x00000000;
}
}
Salvaging parts from computers can be very useful especially the ATX power supply as it can be converted to a lab bench power supply giving us +3.3V +5V +12V -12V -5V outputs with lots of power ,mine a 300W unit gives up to 30A on the 5V output which can be very handy when powering big DC motors and other stuff so let’s gather the parts and start making our power supply , forgetting about batteries and cellphone chargers to power our circuits :
The video explains it all about the making watch it :
About The Circuit
What we need?
5x Binding posts (red)
1x Binding post (black)
1x Toggle Switch
1x 3mm Green LED
1x 3mm Red LED
2x 220Ω Resistor for the led’s
Dummy Load
Hers an image explaining the color code of the wires of a power supply :
We have to put a dummy load on the supply to keep it stable even when we only draw small amounts of current. Old power supply’s use the most amount of power on the 5v rail so we am going to be connecting the dummy load on the 5v if you have a newer power supply you’ll need to put them on the 12v rail
Assuming the dummy load should draw at least 0.5A.
Here is the calculation if you have most of your power on 5V/3,3V rail:
R=U/I=5V/0,5A=10Ω
P=U*I=5V*0,5A=2,5W
2. Here is the calculation if you have most of your power on 12V rail:
R=U/I=12V/0,5A=24Ω
P=U*I=12V*0,5A=6W
Conclusion :
5v 10Ω 2.5W
12V 24 6W
The Connections image assuming you have an old Power Supply :
If you have most of your power on the 12V rail then you need to connect a 24Ω resistor to 12V instead of 10Ω to 5V.
SBC or Single Board Computers are Becoming very popular around Makers and developers giving them more flexibility and access to complex projects making here’s a list of top 10 SBC for 2016 :
SBC
BeagleBone Green
SBC BeagleBone Green
What is SeeedStudio BeagleBone Green?
SeeedStudio BeagleBone Green (BBG) is a joint effort by BeagleBoard.org and Seeed Studio. It is based on the open-source hardware design of BeagleBone Black and developed into this differentiated version. The BBG has included two Grove connectors, making it easier to connect to the large family of Grove sensors. The on-board HDMI is removed to make room for these Grove connectors.
is the first development board based on a Qualcomm® Snapdragon™ 400 series processor. It features advanced processing power, Wi-Fi, Bluetooth connectivity, and GPS, all packed into a board the size of a credit card. Based on the 64-bit capable Snapdragon 410 processor, the DragonBoard 410c is designed to support rapid software development, education and prototyping, and is compliant with the 96Boards Consumer Edition specification. All this makes it ideal for enabling embedded computing and Internet of Things (IoT) products, including the next generation of robotics, cameras, medical devices, vending machines, smart buildings, digital signage, casino gaming consoles, and much more.
Feature Highlights
OS Support:Android 5.1 (Lollipop) on Linux Kernel 3.10, Linux based on Debian 8.0, and Windows 10 IoT Core
CPU:Quad-core ARM® Cortex® A53 at up to 1.2 GHz per core with both 32-bit and 64-bit support
Graphics:Qualcomm Adreno 306 GPU with support for advanced APIs, including OpenGL ES 3.0, OpenCL, DirectX, and content security
Video: 1080p@30fps HD video playback and capture with H.264 (AVC), and 720p playback with H.265 (HEVC)
Camera Support:Integrated ISP with support for image sensors up to 13MP
Connectivity and Location:
Wi-Fi 802.11 b/g/n 2.4GHz, integrated digital core
Bluetooth 4.1, integrated digital core
Qualcomm® IZat™ location technology Gen8C
On-board Wi-Fi, BT and GPS antenna
I/O Interfaces:HDMI Full-size Type A connector, one micro USB (device mode only), two USB 2.0 (host mode only), micro SD card slot
Note: Micro USB (device mode) and USB 2.0 (host mode) are mutually exclusive and cannot be operated at the same time
Expansion:
One 40-pin low speed expansion connector: UART, SPI, I2S, I2C x2, GPIO x12, DC power
One 60-pin high speed expansion connector: 4L MIPI-DSI, USB, I2C x2, 2L+4L MIPI-CSI
Footprint for one optional 16-pin analog expansion connector for stereo headset/line-out, speaker and analog line-in.
The board can be made compatible with Arduino using an add-on mezzanine board
Raspberry Pi 3
SBC Raspberry Pi 3 Model B
The Raspberry Pi 3
is the third generation Raspberry Pi. It replaced the Raspberry Pi 2 Model B in February 2016. Compared to the Raspberry Pi 2 it has:
A 1.2GHz 64-bit quad-core ARMv8 CPU
802.11n Wireless LAN
Bluetooth 4.1
Bluetooth Low Energy (BLE)
Like the Pi 2, it also has:
1GB RAM
4 USB ports
40 GPIO pins
Full HDMI port
Ethernet port
Combined 3.5mm audio jack and composite video
Camera interface (CSI)
Display interface (DSI)
Micro SD card slot (now push-pull rather than push-push)
VideoCore IV 3D graphics core
The Raspberry Pi 3 has an identical form factor to the previous Pi 2 (and Pi 1 Model B+) and has complete compatibility with Raspberry Pi 1 and 2.
We recommend the Raspberry Pi 3 Model B for use in schools, or for any general use. Those wishing to embed their Pi in a project may prefer the Pi Zero or Model A+, which are more useful for embedded projects, and projects which require very low power.
Banana Pi
SBC Banana Pi M64
What is Banana Pi M64?
Banana Pi BPI-M64 is a 64-bit quad-core mini single board computer. It features 2GB of RAM and 8GB eMMC. It also has onboard WiFi and BT. On the ports side, the BPI-M64 has 2 USB A 2.0 ports, 1 USB OTG port, 1 HDMI port, 1 audio jack, and lastly a DC power port.
Also being a member of the Banana Pi family, the M64 is a big jump from the octa-core BPI-M3. This is because this Banana Pi BPI is named after its 64-bit SoC. BPI-M4 will be reserved for an upcoming board:p
Banana Pi is an open platform device, it is for anyone who wants to play and build with developer technology instead of simply using consumer technology. Backed by our community, starting a project and building servers is fun and rewarding. We welcome all companies, DIYers, and tech loving people within our community! Together, we can make a difference, we can discover our passions, inspire others, and build a practical project.
Key Features
1.2 Ghz Quad-Core ARM Cortex A53 64-Bit Processor.
2GB DDR3 SDRAM with 733MHz.
8 GB eMMC storage (16,32,64 options available).
WiFi (AP6212) & Bluetooth onboard.
RASPBERRY PI ZERO
SBC Pi Zero
The Raspberry Pi Zero
is half the size of a Model A+, with twice the utility. A tiny Raspberry Pi that’s affordable enough for any project!
1Ghz, Single-core CPU
512MB RAM
Mini HDMI and USB On-The-Go ports
Micro USB power
HAT-compatible 40-pin header
Composite video and reset headers
Nano-Pi 2
SBC NanoPi 2
The NanoPi2
is a newly released ARM board by FriendlyARM which advances the NanoPi by featuring Samsung’s S5P4418 Quad Core A9@1.4GHz processor, 1G 32bit DDR3 RAM, rich video and display interfaces and two MicroSD slots. Its Quad Core A9@1.4GHz processor and 1G RAM make Linux and Android booted from a TF card fast and smoothly. Its adoption of the Raspberry Pi’s GPIO pin header makes it compatible with both Raspberry Pi’s external GPIO modules and Arduino’s shield boards. Its two MicroSD slots make it support up to two external TF cards’ storage. Its video and display interfaces include a DVP camera interface, an HDMI interface and an LCD interface which make it work with various popular display devices. The NanoPi2’s on-board AP6212 Wireless and Bluetooth chip supports 802.11 b/g/n, AP mode, BLE 4.0 and HS mode.
On the NanoPi2’s wiki FriendlyARM open sources its schematics, PCB, bootloader, kernel and file systems, and provides plenty of tutorials and code samples.
Debug Serial Port/UART0: 2.5 mm spacing 4pin interface
USB: 1 x USB 2.0 host Type-A; 1 x Micro USB for data transmission and power input
OS: Android and Debian
PCB: Six-layer
Dimension: 75 x 40 mm
Weight: 22 g
ODROID-XU4
SBC Ordroid
ODROID-XU4
is a new generation of computing device with more powerful, more energy-efficient hardware and a smaller form factor.
Offering open source support, the board can run various flavors of Linux, including the latest Ubuntu 15.04 and Android 4.4 KitKat and 5.0 Lollipop.
By implementing the eMMC 5.0, USB 3.0 and Gigabit Ethernet interfaces, the ODROID-XU4 boasts amazing data transfer speeds, a feature that is increasingly required to support advanced processing power on ARM devices.
This allows users to truly experience an upgrade in computing, especially with faster booting, web browsing, networking, and 3D games.
Features
* Samsung Exynos5422 Cortex™-A15 2Ghz and Cortex™-A7 Octa core CPUs
* Mali-T628 MP6(OpenGL ES 3.0/2.0/1.1 and OpenCL 1.1 Full profile)
* 2Gbyte LPDDR3 RAM PoP stacked
* eMMC5.0 HS400 Flash Storage
* 2 x USB 3.0 Host, 1 x USB 2.0 Host
* Gigabit Ethernet port
* HDMI 1.4a for display
* Size : 82 x 58 x 22 mm approx.(including cooling fan)
SBC OrDroid Included Fan
Firefly
SBC FireFly
FireFly
There are two versions of this SBC. The $159 standard and the plus version, which runs at $259.
Both boards run on a 1.8Ghz quad-core RK3288 Cortex-A17 and feature the usual on-board peripherals, like Bluetooth, Wi-Fi, HDMI, Ethernet and so forth. However, the standard board comes with 2GB of DDR3 RAM and 16GB of eMMC flash. The extra $100 you will pay for the plus model will bump the RAM up to 4GB and the on-board flash up to 32GB. I am not sure if the expense is worth it. I think you would have to have a very specific need for that extra memory. Also, at these prices, I would really expect to see USB 3.0 ports. Also, after skimming through the firefly forums, it seems that anybody looking to get up and running with an SBC immediately might want to go for something with a better developed community.
Orange Pi
SBC OrangePi
OrangePi
It’s an open-source single-board computer. It can run Android 4.4 , Ubuntu, Debian, Rasberry Pi Image, it uses the AllWinner H3 SoC, and has 1GB DDR3 SDRAM
This was the perfect summer project for me affordable and with much use. I never owned a speed bag or trained with it in the gym but it is fun and awesome.
Anyway materials used:
– Cheap industrial leather if you can afford quality go for it =)
– Glue
– Heavy string for leather
– Normal string
– One shoe string
– Scissors and needles big and small ones
NB:
-As the leather wasn’t thick I didn’t need to put holes in it before stitching
-Choose your colors nicely I went with my theme black and red =)
Let’s Start
DIY Speed Bag Template
Use the template or draw one yourself to mark the pieces were going to cut. We will need 6 of them and for the bottom draw a regular hexagon (six equal sides with six equal angles of 120 degrees between each side).and a rectangle of 8*40 cm which will be the attachment.
Now that all our pieces are ready use scissors to cut them leaving us with 8 pieces in total.
Next thing glue the sides by pairs it’s better to use wood glue but you’ll have to wait longer that’s why I used this type but it is messy and hard to clean.
Next we will start sewing the pieces with a typical two needles saddle stitches leaving a bit on less than 1cm free to join the bottom piece and more on the top for tightening string.
Now we glue the 3 pairs together and we start sewing like before with one left half open leaving enough room so we can put the ball later.
Almost done looks complete but we still have to do a little more touches.
Holding the pieces for stitching like that makes it easier and faster and use those laundry things to attach the pieces while they dry works like a charm
Use normal string to make the loops for the string and I added 3 washers on each side of the opening to protect the leather from the string as I couldn’t find proper ones for leather when I find them I ll change them for the looks and professionalism .
The only thing left now is the piece that will attach the ball to the swivel. I made it a little bit far from the swivel so don’t make the gap too big also the rectangular piece is folded in half making it 4*40 and it is sewed with saddle stitches drawing a rectangle for a strong bond from both sides.
We Are DONE put the ball inside pump air and it looks alive. This is not obligatory but I added bits of fabric in the upper gap to shape the looks.
Have fun boxing this summer and share the knowledge
Reading a resistor value is an essential basic for electronics work and a very easy one. first of all the most common used color code is 4 bands as the value of a resistor is in the 4 colors around it.
4 Colors Resistor Type:
the first two bands or colors represent the resistance value in digits, the third color or band represent the multiplier which means how many zeros after the two digits,at last the fourth represents the tolerance or accuracy of the resistor the most common is gold which means ±5%.
Resistor Color Code Table
5 Colors Resistor Type:
In addition the 5 bands type its the same except the first three are the digits and the forth is the multiplier leaving the fifth color band of the resistor to be the tolerance and that’s it for understanding the colors. now the color code is this one
In this project I will show you how to turn two old DVD-drives into a mini plotter. This project is simple and easy also presents a good cheap practice if one day you want to make your own CNC machine as this plotter works with the same principle just way more tiny.to lower the cost and using as much scrap parts as we can we will use the CD tray mechanism instead of a servo motor for the z axis
We will begin by disassembling the DVD-drives to get the stepper motors and the moving carriages grab a screwdriver open the metal case. The electronics inside we won’t be using them. I used the metal casing as the main body the front part of the CD tray is our Z axis SO Don’t BRAKE IT watch Part 1 for detailed instructions.
Preparing The Stepper Motors
After salvaging the parts we need it’s time to prepare the steppers.as you can see in the video below they are connected with a yellow ribbon cable we cannot use that so we will need to wire new ones to be able to connect them THIS Part is TRICKY do it Carefully and don’t remove the ribbon cable solder the new ones on top of it or you’ll end up braking the motor so be careful not to damage it. Each one of the steppers needs 4 wires, Prepare and cut them to the same length put a tip of solder on top then solder them to the stepper motor.
The Electrical Circuit
As our Steppers are ready we will jump to wiring the circuit but first lets assemble the plotter. I mentioned earlier that we will be using the metal casings as our main body I used screws to attach them perpendicularly to each other then hot glued the two carriages one as X axis and one as Y axis.
Now the Z axis is glued with a piece of plastic to its back to the carriage of the Y axis and like that our plotter is 70% done.
Now Let’s Continue our Wiring use these diagrams to wire the steppers with h-bridges and the Arduino but keep in mind THAT YOU NEED TO IDENTIFY THE STEPPER SEPARATE COILS FIRST OR THEY WONT MOVE like in the video with a multi-meter set on the connection test as each coil goes to a side of the IC L293D. The z axis has a built in DC motor which connects on a side of the third and last IC.
Connection to the Arduino:
X axis 2, 3, 4, 5
Y axis 6, 7, 8, 9
Z axis 10 11
And of course you can change this in the .ino code if you want
Initial Testing
Before trying our plotter let’s do some testing first to identify problems if there is any hopefully not.
To test the Z axis use this code upload it to arduino and it will make the pen go up and then go down:
— For the X and Y axis it’s the same test code just change the numbers to 6 7 8 9
#include <Stepper.h>
const int stepsPerRevolution = 20;
Stepper myStepper(stepsPerRevolution, 2, 3, 4, 5);
void setup() {
// set the speed at 60 rpm:
myStepper.setSpeed(60);
// initialize the serial port:
Serial.begin(9600);
}
void loop() {
// step one revolution in one direction:
Serial.println("clockwise");
myStepper.step(stepsPerRevolution);
delay(500);
// step one revolution in the other direction:
Serial.println("counterclockwise");
myStepper.step(-stepsPerRevolution);
delay(500);
}
Hopefully everything goes as expected and let’s move to making gcode and preparing the software to start plotting this video includes all the steps USE THE links to download the needed software and follow along. It IS Important to use Inkscape version 0.48.5 or the plugin that saves the files as gcode wont work.