Orodha ya maudhui:
- Hatua ya 1: Mahitaji ya Vipengele
- Hatua ya 2: Pakua Gui
- Hatua ya 3: Uunganisho
- Hatua ya 4: Pakia Firmware na Angalia Matokeo ya Msimbo katika Dashibodi ya Arduino
- Hatua ya 5: Tengeneza na Uchapishe Sehemu Yote kwenye Karatasi ya Plywood
- Hatua ya 6: Mkutano
- Hatua ya 7: Sanidi Mipangilio ya GBRL
- Hatua ya 8: Pakia Nambari ya Mwisho na Angalia Matokeo ya Virtual katika Dashibodi ya Programu ya Arduino Uno
Video: Chagua na Kuweka Roboti ya Msingi ya Arduino: Hatua 8
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:51
Nimetengeneza mkono wa roboti ya viwandani yenye bei rahisi (chini ya dola 1000) kuwezesha wanafunzi kudanganya roboti kubwa na kuwezesha uzalishaji mdogo wa ndani kutumia roboti katika michakato yao bila kuvunja benki. Eassy yake kujenga na kufanya kikundi cha watu wa miaka 15 hadi 50.
Hatua ya 1: Mahitaji ya Vipengele
1. Arduino + Shield + Pini + Cables
2. Mdhibiti wa Pikipiki: dm860A (Ebay)
3. Msaidizi wa kambo: 34hs5435c-37b2 (Ebay)
4. M8x45 + 60 + 70 bolts na M8 bolts.
5. Plywood ya 12mm.
6. 5mm Nylon.
7. Washers vipofu 8mm.
8. Screws za kuni 4.5x40mm.
9. Kaunta ya M3 imezama, Ugavi wa umeme wa 12v
11. dereva wa servo arduino
Hatua ya 2: Pakua Gui
zapmaker.org/projects/grbl-controller-3-0/
github.com/grbl/grbl/wiki/Using-Grbl
Hatua ya 3: Uunganisho
Unganisha waya ambazo zimetolewa kwenye picha ni uelewa zaidi kwako.
tunahitaji kuunganisha dereva wa gari kwa Arduino na viunganisho vingine ambavyo vinahitajika kulingana na roboti yako.
Hatua ya 4: Pakia Firmware na Angalia Matokeo ya Msimbo katika Dashibodi ya Arduino
Kuweka firmware kwenye Arduino - GRBL:
github.com/grbl/grbl/wiki/Compiling-Grbl
Kumbuka: Unaweza kupata mzozo wakati wa kukusanya katika Arduino. Ondoa maktaba mengine yote kutoka kwa folda yako ya maktaba (../documents/Arduino/libraries).
Usanidi wa firmware
Weka kuwezesha muda mpya zaidi. Tumia unganisho la serial na andika:
$1=255
Weka nyumba:
$22=1
Kumbuka kuweka serial kwa baud: 115200
Nambari muhimu za G
Weka sifuri kwa roboti:
G10 L2 Xnnn Ynnn Znnn
Tumia nukta sifuri:
G54
Uanzishaji wa kawaida kwa kituo cha robot:
G10 L2 X1.5 Y1.2 Z1.1
G54
Sogeza roboti ili kusimama haraka:
G0 Xnnn Ynnn Znnn
Mfano:
G0 X10.0 Y3.1 Z4.2 (kurudi)
Sogeza roboti kwenye nafasi kwa kasi maalum:
G1 Xnnn Ynnn Znnn Fnnn
G1 X11 Y3 Z4 F300 (kurudi)
F inapaswa kuwa kati ya 10 (slooooow) na 600 (haraka)
Vitengo chaguo-msingi vya X, Y na Z
Unapotumia mipangilio chaguomsingi ya hatua / vitengo (hatua 250 / kitengo) cha GRBL na
stepper drive iliyowekwa kwa hatua ya 800 / rev vitengo vifuatavyo vinatumika kwa mhimili wote:
+ - vitengo 32 = + - digrii 180
Inasindika mfano wa nambari:
Nambari hii inaweza kuwasiliana moja kwa moja na Arduino GRBL.
github.com/damellis/gctrl
Kumbuka kuweka serial kwa baud: 115200
Kanuni za uoload katika ardunio
kuagiza java.awt.event. KeyEvent;
kuagiza javax.swing. JOptionPane;
usindikaji wa kuagiza.serial. *;
Bandari ya serial = batili;
// chagua na urekebishe laini inayofaa kwa mfumo wako wa uendeshaji
// kuondoka kama batili kutumia bandari inayoingiliana (bonyeza 'p' katika programu)
Jina la bandari ya kamba = batili;
// Jina la bandari ya kamba = Serial.list () [0]; // Mac OS X.
// Jina la bandari ya kamba = "/ dev / ttyUSB0"; // Linux
// Jina la bandari ya kamba = "COM6"; // Windows
utiririshaji wa boolean = uwongo;
kasi ya kuelea = 0.001;
Kamba gcode;
int i = 0;
batili openSerialPort ()
{
ikiwa (portname == null) kurudi;
ikiwa (bandari! = batili) bandari.acha ();
bandari = mpya Serial (hii, jina la bandari, 115200);
bandari. BufferUntil ('\ n');
}
chagua batiliSerialPort ()
{
Matokeo ya kamba = (Kamba) JOptionPane.showInputDialog (hii, "Chagua bandari ya serial ambayo inalingana na bodi yako ya Arduino.", "Chagua bandari ya serial", JOptionPane. PLAIN_MESSAGE, batili, Orodha ya serial (), 0);
ikiwa (matokeo! = batili) {
jina la bandari = matokeo;
openSerialPort ();
}
}
kuanzisha batili ()
{
saizi (500, 250);
openSerialPort ();
}
chora batili ()
{
msingi (0);
jaza (255);
int y = 24, dy = 12;
maandishi ("MAELEKEZO", 12, y); y + = rangi;
maandishi ("p: chagua bandari ya serial", 12, y); y + = rangi;
maandishi ("1: weka kasi hadi inchi 0.001 (mil 1) kwa kila jog", 12, y); y + = rangi;
maandishi ("2: weka kasi hadi inchi 0.010 (mil 10) kwa kila jog", 12, y); y + = rangi;
maandishi ("3: weka kasi hadi inchi 0.100 (mil 100) kwa kila jog", 12, y); y + = rangi;
maandishi ("funguo za mshale: jog katika ndege ya x-y", 12, y); y + = rangi;
maandishi ("ukurasa juu & ukurasa chini: jog katika z mhimili", 12, y); y + = rangi;
maandishi ("$: onyesha mipangilio ya grbl", 12, y); y + = rangi;
maandishi ("h: nenda nyumbani", 12, y); y + = rangi;
maandishi ("0: mashine sifuri (weka nyumbani kwa eneo la sasa)", 12, y); y + = rangi;
maandishi ("g: sambaza faili ya g-code", 12, y); y + = rangi;
maandishi ("x: acha kutiririsha g-kificho (hii SI ya haraka)", 12, y); y + = rangi;
y = urefu - dy;
maandishi ("kasi ya sasa ya jog:" + kasi + "inchi kwa kila hatua", 12, y); y - = rangi;
maandishi ("bandari ya sasa ya serial:" + jina la bandari, 12, y); y - = rangi;
}
kitufe cha utupuBonyeza ()
{
ikiwa (ufunguo == '1') kasi = 0.001;
ikiwa (ufunguo == '2') kasi = 0.01;
ikiwa (ufunguo == '3') kasi = 0.1;
ikiwa (! kutiririsha) {
ikiwa (keyCode == LEFT) bandari. andika ("G91 / nG20 / nG00 X-" + kasi + "Y0.000 Z0.000 / n");
ikiwa (keyCode == HAKI) bandari. andika ("G91 / nG20 / nG00 X" + kasi + "Y0.000 Z0.000 / n");
ikiwa (keyCode == UP) bandari. andika ("G91 / nG20 / nG00 X0.000 Y" + kasi + "Z0.000 / n");
ikiwa (keyCode == DOWN) bandari. andika ("G91 / nG20 / nG00 X0.000 Y-" + kasi + "Z0.000 / n");
ikiwa (keyCode == KeyEvent. VK_PAGE_UP) bandari. andika ("G91 / nG20 / nG00 X0.000 Y0.000 Z" + speed + "\ n");
ikiwa (keyCode == KeyEvent. VK_PAGE_DOWN) bandari.andika ("G91 / nG20 / nG00 X0.000 Y0.000 Z-" + kasi + "\ n");
// ikiwa (ufunguo == 'h') bandari. andika ("G90 / nG20 / nG00 X0.000 Y0.000 Z0.000 / n");
ikiwa (ufunguo == 'v') bandari. andika ("$ 0 = 75 / n $ 1 = 74 / n $ 2 = 75 / n");
// ikiwa (ufunguo == 'v') bandari. andika ("$ 0 = 100 / n $ 1 = 74 / n $ 2 = 75 / n");
ikiwa (key == 's') bandari.andika ("$ 3 = 10 / n");
ikiwa (ufunguo == 'e') bandari. andika ("$ 16 = 1 / n");
ikiwa (ufunguo == 'd') bandari.andika ("$ 16 = 0 / n");
ikiwa (ufunguo == '0') openSerialPort ();
ikiwa (ufunguo == 'p') chaguaSerialPort ();
ikiwa (ufunguo == '$') bandari.andika ("$$ / n");
ikiwa (ufunguo == 'h') bandari andika ("$ H / n");
}
ikiwa (! kutiririka && key == 'g') {
gcode = batili; i = 0;
Faili ya faili = batili;
println ("Inapakia faili…");
chagua Ingiza ("Chagua faili ya kuchakata:", "faili Imechaguliwa", faili);
}
ikiwa (ufunguo == 'x') utiririshaji = uwongo;
}
faili batili Imechaguliwa (Uteuzi wa faili) {
ikiwa (selection == null) {
println ("Dirisha lilifungwa au mtumiaji alighairi");
} mwingine {
println ("Mtumiaji aliyechaguliwa" + uteuzi.getAbsolutePath ());
gcode = mzigoStrings (uteuzi.getAbsolutePath ());
ikiwa (gcode == null) inarudi;
kutiririka = kweli;
mkondo ();
}
}
mtiririko batili ()
{
ikiwa (! kutiririsha) kurudi;
wakati (kweli) {
ikiwa (i == gcode.length) {
kutiririka = uwongo;
kurudi;
}
ikiwa (gcode .trim (). urefu () == 0) i ++;
pengine kuvunja;
}
println (gcode );
andika bandari (gcode + '\ n');
i ++;
}
tupu serialEvent (Serial p)
{
Kamba s = p.readStringUntil ('\ n');
println (s.trim ());
ikiwa (s.trim (). startsWith ("ok")) mkondo ();
ikiwa (s.trim (). startsWith ("kosa")) mkondo (); // XXX: kweli?
}
Hatua ya 5: Tengeneza na Uchapishe Sehemu Yote kwenye Karatasi ya Plywood
Pakua sehemu ya robot na muundo katika AutoCAD na uchapishe kwenye karatasi ya plywood ya 12mm na kumaliza na kubuni sehemu. Ikiwa mtu yeyote anahitaji faili ya cad plz acha maoni kwenye sanduku la sehemu ya maoni nitakutumia moja kwa moja.
Hatua ya 6: Mkutano
kukusanya sehemu yote na upange katika mlolongo kwenye picha ambayo imepewa na ufuate mchoro wa picha.
Hatua ya 7: Sanidi Mipangilio ya GBRL
Kuweka ambayo imethibitishwa kufanya kazi kwenye roboti zetu.
$ 0 = 10 (mapigo ya hatua, usec) $ 1 = 255 (ucheleweshaji wa hatua bila kuchelewa, msec) $ 2 = 7 (bandari ya kuingiza bandari ya hatua: 00000111) $ 3 = 7 (kinyago band ya kinyago: 00000111) $ 4 = 0 (hatua ya kuwezesha kugeuza, bool $ 5 = 0 (pini pindua pindua, bool) $ 6 = 1 (pindua ubadilishaji wa pini, bool) $ 10 = 3 (mask ya ripoti ya hali: 00000011) $ 11 = 0.020 (kupotoka kwa makutano, mm) $ 12 = 0.002 (uvumilivu wa arc, mm) $ 13 = 0 (ripoti inchi, bool) $ 20 = 0 (mipaka laini, bool) $ 21 = 0 (mipaka ngumu, bool) $ 22 = 1 (mzunguko wa homing, bool) $ 23 = 0 (homing dir invert mask: 00000000) $ 24 = 100.000 (kulisha homing, mm / min) $ 25 = 500.000 (homing tafuta, mm / min) $ 26 = 250 (homing debounce, msec) $ 27 = 1.000 (homing kuvuta, mm) $ 100 = 250.000 (x, hatua / mm) $ 101 = 250.000 (y, hatua / mm) $ 102 = 250.000 (z, hatua / mm) $ 110 = 500.000 (x kiwango cha juu, mm / min) $ 111 = 500.000 (y max rate, mm / min) $ 112 = 500.000 (z max rate, mm / min) $ 120 = 10.000 (x accel, mm / sec ^ 2) $ 121 = 10.000 (y accel, mm / sec ^ 2) $ 122 = 10.000 (z accel, mm / sec ^ 2) $ 130 = 200.000 (x max kusafiri, mm) $ 131 = 200.000 (y max kusafiri, mm) $ 132 = 200.000 (z max kusafiri, mm)
Hatua ya 8: Pakia Nambari ya Mwisho na Angalia Matokeo ya Virtual katika Dashibodi ya Programu ya Arduino Uno
// Vitengo: CM
kuelea b_height = 0;
kuelea a1 = 92;
kuelea a2 = 86;
kuelea snude_len = 20;
boolean doZ = uwongo;
msingi wa kuelea; // = 0;
kuelea mkono1_angle; // = 0;
kuelea arm2_angle; // = 0;
kuelea bx = 60; // = 25;
kuelea kwa = 60; // = 0;
kuelea bz = 60; // = 25;
kuelea x = 60;
kuelea y = 60;
kuelea z = 60;
kuelea q;
kuelea c;
kuelea V1;
kuelea V2;
kuelea V3;
kuelea V4;
kuelea V5;
usanidi batili () {
saizi (700, 700, P3D);
cam = PeasyCam mpya (hii, 300);
cam.setMinimumDistance (50);
seti ya upeo wa upeo (500);
}
chora batili () {
// ligninger:
y = (panyaX - upana / 2) * (- 1);
x = (panyaY - urefu / 2) * (- 1);
bz = z;
na = y;
bx = x;
kuelea y3 = sqrt (bx * bx + na * na);
c = sqrt (y3 * y3 + bz * bz);
V1 = acos ((a2 * a2 + a1 * a1-c * c) / (2 * a2 * a1));
V2 = acos ((c * c + a1 * a1-a2 * a2) / (2 * c * a1));
V3 = acos ((y3 * y3 + c * c-bz * bz) / (2 * y3 * c));
q = V2 + V3;
mkono1_angle = q;
V4 = radians (90.0) - q;
V5 = radians (180) - V4 - radians (90);
arm2_angle = radians (180.0) - (V5 + V1);
base_angle = digrii (atan2 (bx, na));
mkono1_angle = digrii (mkono1_angle);
arm2_angle = digrii (arm2_angle);
// println (na, bz);
// mkono1_angle = 90;
// mkono2_angle = 45;
/*
mkono2_angle = 23;
mkono1_angle = 23;
mkono2_angle = 23;
*/
// maingiliano:
// ikiwa (doZ)
//
// {
// base_angle = base_angle + panyaX-pmouseX;
//} mwingine
// {
// arm1_angle = arm1_angle + pmouseX-mouseX;
// }
//
// arm2_angle = arm2_angle + panyaY-nyumba ya jioniY;
kuteka_botot (msingi_mlalo, - (arm1_angle-90), arm2_angle + 90 - (- ((arm1_angle-90)));
// println (base_angle + "," + arm1_angle + "," + arm2_angle);
}
batili ya kuchora_joto (msingi wa kuelea, kuelea mkono1_angle, mkono wa kuelea2_angle)
{
zungushaX (1.2);
zungusha Z (-1.2);
msingi (0);
taa ();
PushMatrix ();
// Msingi
kujaza (150, 150, 150);
box_corner (50, 50, b_ urefu, 0);
zunguka (radians (base_angle), 0, 0, 1);
// SANAA 1
jaza (150, 0, 150);
box_corner (10, 10, a1, mkono1_angle);
// SANAA 2
jaza (255, 0, 0);
box_corner (10, 10, a2, arm2_angle);
// SNUDE
jaza (255, 150, 0);
box_corner (10, 10, snude_len, -arm1_angle-mkono2_angle + 90);
popMatrix ();
PushMatrix ();
kuelea action_box_size = 100;
kutafsiri (0, -action_box_size / 2, action_box_size / 2 + b_ urefu);
PushMatrix ();
kutafsiri (x, action_box_size- y-action_box_size / 2, z-action_box_size / 2);
jaza (255, 255, 0);
sanduku (20);
popMatrix ();
jaza (255, 255, 255, 50);
sanduku (action_box_size, action_box_size, action_box_size);
popMatrix ();
}
box_corner batili (kuelea w, kuelea h, kuelea d, kuelea zunguka)
{
zunguka (radians (zunguka), 1, 0, 0);
kutafsiri (0, 0, d / 2);
sanduku (w, h, d);
kutafsiri (0, 0, d / 2);
}
kitufe cha utupuBonyeza ()
{
ikiwa (ufunguo == 'z')
{
doZ =! doZ;
}
ikiwa (ufunguo == 'h')
{
// weka yote kwa sifuri
mkono2_angle = 0;
mkono1_angle = 90;
msingi_angle = 0;
}
ikiwa (ufunguo == 'g')
{
println (digrii (V1));
println (digrii (V5));
}
ikiwa (Msimbo wa Msimbo == UP)
{
z ++;
}
ikiwa (Msimbo wa Msimbo == CHINI)
{
z -;
}
ikiwa (ufunguo == 'o')
{
y = 50;
z = 50;
println (q);
println (c, "c");
println (V1, "V1");
println (V2);
println (V3);
println (mkono1_angle);
println (V4);
println (V5);
println (mkono2_angle);
}
}
Ilipendekeza:
Chagua Rangi ya Arduino RGB - Chagua Rangi Kutoka kwa Vitu vya Maisha Halisi: Hatua 7 (na Picha)
Chagua Rangi ya Arduino RGB - Chagua Rangi Kutoka kwa Vitu vya Maisha Halisi: Chagua kwa urahisi rangi kutoka kwa vitu vya mwili na kichujio hiki cha rangi ya RGB ya Arduino, inayokuwezesha kurudisha rangi unazoziona kwenye vitu vya maisha halisi kwenye pc yako au simu ya rununu. Bonyeza kitufe tu ili kuchanganua rangi ya kitu ukitumia TCS347 ya bei rahisi
Chagua na Kuweka Robot ya RFID: Hatua 4
Roboti ya Kuchukua na Kuweka ya RFID: Tangu miaka mingi watu wanajaribu kuchukua nafasi ya kazi ya binadamu na mashine. Mashine zinazoitwa roboti zina kasi na ufanisi zaidi kuliko watu. Neno roboti linafafanuliwa kama utafiti, muundo na matumizi ya mifumo ya roboti kwa utengenezaji. Roboti ni g
Kuweka Raspbian katika Raspberry Pi 3 B Bila HDMI - Kuanza na Raspberry Pi 3B - Kuweka Raspberry yako Pi 3: 6 Hatua
Kuweka Raspbian katika Raspberry Pi 3 B Bila HDMI | Kuanza na Raspberry Pi 3B | Kuweka Raspberry yako Pi 3: Kama wengine wenu mnajua Raspberry Pi kompyuta ni za kushangaza sana na unaweza kupata kompyuta nzima kwenye bodi moja ndogo. imefungwa saa 1.2 GHz. Hii inaweka Pi 3 takriban 50
Timer ya Arduino ikiwa na Sehemu ya Kuweka / ya Kuweka: Hatua 6 (na Picha)
Timer ya Arduino ikiwa na Sehemu ya Kuweka / ya Kuweka: Iliyorekebishwa 05-02-2018 Vipima vipya! masaa, dakika, sekunde, eeprom. Tafadhali tembelea: https: //www.instructables.com/id/Arduino-Ultra-Meg..Hi, na mradi huu utaweza kudhibiti kuwasha na kuzima kwa vifaa vyako kati ya wakati unaotaka. Wanaweza kuwa t
Kuweka Msingi X10 kwa Newbies: Hatua 7
Kuweka X10 ya Msingi kwa Newbies: Kuwasha na kuzima taa zako na kijijini kisicho cha kawaida ni rahisi na bei rahisi basi inaonekana na inasikika. Jinsi-ya kuonyesha jinsi ya kusanidi kijijini cha x10 kwa taa 2. Pia inaonyesha kutumia mashine ya kutengeneza studio kuweka lebo kijijini