Satura rādītājs:
- 1. darbība: komponentu prasības
- 2. darbība: lejupielādējiet Gui
- 3. darbība. Savienojums
- 4. darbība: augšupielādējiet programmaparatūru un pārbaudiet koda rezultātu Arduino informācijas panelī
- 5. darbība: visas daļas noformēšana un drukāšana saplākšņa loksnē
- 6. darbība: montāža
- 7. darbība: iestatiet GBRL iestatījumus
- 8. darbība: augšupielādējiet gala kodu un pārbaudiet virtuālo rezultātu Arduino Uno programmatūras informācijas panelī
Video: Arduino bāzes izvēle un novietošanas robots: 8 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Esmu izgatavojis īpaši lētu (mazāk nekā 1000 dolāru) rūpniecisko robotu roku, lai studenti varētu uzlauzt lielāka mēroga robotiku un ļaut maziem vietējiem ražojumiem izmantot procesus savos procesos, nesalaužot banku. Tā Eassy veidot un padarīt vecuma grupu cilvēkus no 15 līdz 50 gadiem.
1. darbība: komponentu prasības
1. Arduino + vairogs + tapas + kabeļi
2. Motora kontrolieris: dm860A (ebay)
3. Stepermotors: 34hs5435c-37b2 (ebay)
4. M8x45+60+70 skrūves un M8 skrūves.
5. 12mm saplāksnis.
6. 5 mm neilons.
7. Aklās paplāksnes 8mm.
8. Koka skrūves 4,5x40mm.
9. M3 skaitītājs nogrimis, 10. 12v barošanas avots
11. servomotoru vadītājs arduino
2. darbība: lejupielādējiet Gui
zapmaker.org/projects/grbl-controller-3-0/
github.com/grbl/grbl/wiki/Using-Grbl
3. darbība. Savienojums
Pievienojiet vadus, kas parādīti attēlā, lai jūs labāk saprastu.
mums ir jāpievieno motora draiveris Arduino un citiem savienotājiem, kas nepieciešami atbilstoši jūsu robotam.
4. darbība: augšupielādējiet programmaparatūru un pārbaudiet koda rezultātu Arduino informācijas panelī
Programmatūras instalēšana Arduino - GRBL:
github.com/grbl/grbl/wiki/Compiling-Grbl
Piezīme: apkopojot Arduino, var rasties konflikts. Noņemiet visas pārējās bibliotēkas no savas bibliotēkas mapes (../documents/Arduino/libraries).
Programmaparatūras iestatīšana
Iestatiet iespējošanu uz jaunāku taimautu. Izmantojiet seriālo savienojumu un rakstiet:
$1=255
Iestatīt iestatīšanu:
$22=1
Neaizmirstiet iestatīt sērijas vērtību uz bodu: 115200
Noderīgi G kodi
Robotam iestatiet nulles punktu:
G10 L2 Xnnn Ynnn Znnn
Izmantojiet nulles punktu:
G54
Tipiska centrālā robota inicializācija:
G10 L2 X1.5 Y1.2 Z1.1
G54
Ātri pārvietojiet robotu uz pozīciju:
G0 Xnnn Ynnn Znnn
Piemērs:
G0 X10.0 Y3.1 Z4.2 (atgriešanās)
Pārvietojiet robotu noteiktā ātrumā:
G1 Xnnn Ynnn Znnn Fnnn
G1 X11 Y3 Z4 F300 (atgriešana)
F jābūt no 10 (slooooow) līdz 600 (ātri)
Noklusējuma vienības X, Y un Z
Izmantojot GRBL un
pakāpienu piedziņa, kas iestatīta 800 soļiem/apgriezieniem, uz visām asīm attiecas šādas vienības:
+- 32 vienības = +- 180 grādi
Apstrādes koda piemērs:
Šis kods var sazināties tieši ar Arduino GRBL.
github.com/damellis/gctrl
Neaizmirstiet iestatīt sērijas vērtību uz bodu: 115200
Kods ielādēts ardunio
importēt java.awt.event. KeyEvent;
importēt javax.swing. JOptionPane;
importa apstrāde.sērija.*;
Sērijas ports = null;
// atlasiet un mainiet operētājsistēmai atbilstošo rindu
// atstājiet kā nulli, lai izmantotu interaktīvo portu (programmā nospiediet “p”)
String portname = null;
// String portname = Serial.list () [0]; // Mac OS X
// String portname = "/dev/ttyUSB0"; // Linux
// String portname = "COM6"; // Windows
Būla straumēšana = nepatiesa;
pludiņa ātrums = 0,001;
String gcode;
int i = 0;
void openSerialPort ()
{
if (porta nosaukums == null) atgriezties;
ja (ports! = null) ports.stop ();
ports = jauns seriāls (šis, porta nosaukums, 115200);
port.bufferUntil ('\ n');
}
void selectSerialPort ()
{
String rezultāts = (String) JOptionPane.showInputDialog (šis, "Izvēlieties seriālo portu, kas atbilst jūsu Arduino platei.", "Atlasīt seriālo portu", JOptionPane. PLAIN_MESSAGE, nulle, Serial.list (), 0);
ja (rezultāts! = nulle) {
porta nosaukums = rezultāts;
openSerialPort ();
}
}
anulēts iestatījums ()
{
izmērs (500, 250);
openSerialPort ();
}
neizšķirts ()
{
fons (0);
aizpildīt (255);
int y = 24, dy = 12;
teksts ("INSTRUCTIONS", 12, y); y += dy;
teksts ("p: izvēlieties seriālo portu", 12, y); y += dy;
teksts ("1: iestatiet ātrumu uz 0,001 collas (1 mil) uz skriešanu", 12, y); y += dy;
teksts ("2: iestatiet ātrumu uz 0,010 collas (10 mil) uz skriešanu", 12, y); y += dy;
teksts ("3: iestatiet ātrumu uz 10000 collas (100 mil) uz skriešanu", 12, y); y += dy;
teksts ("bulttaustiņi: skrien x-y plaknē", 12, y); y += dy;
teksts ("lapa uz augšu un lapa uz leju: skriešana z asī", 12, y); y += dy;
teksts ("$: display grbl settings", 12, y); y+= dy;
teksts ("h: iet mājās", 12, y); y += dy;
teksts ("0: nulles mašīna (iestatiet mājas uz pašreizējo atrašanās vietu)", 12, y); y += dy;
teksts ("g: straumējiet g-koda failu", 12, y); y += dy;
text ("x: pārtraukt g-koda straumēšanu (tas NAV uzreiz)", 12, y); y += dy;
y = augstums - dy;
teksts ("pašreizējais skriešanas ātrums:" + ātrums + "collas solī", 12, y); y -= dy;
teksts ("pašreizējais seriālais ports:" + porta nosaukums, 12, y); y -= dy;
}
tukša atslēga Nospiests ()
{
ja (taustiņš == '1') ātrums = 0,001;
ja (taustiņš == '2') ātrums = 0,01;
ja (taustiņš == '3') ātrums = 0,1;
ja (! straumēšana) {
if (keyCode == LEFT) port.write ("G91 / nG20 / nG00 X-" + ātrums + "Y0.000 Z0.000 / n");
if (keyCode == RIGHT) port.write ("G91 / nG20 / nG00 X" + ātrums + "Y0.000 Z0.000 / n");
if (keyCode == UP) port.write ("G91 / nG20 / nG00 X0.000 Y" + ātrums + "Z0.000 / n");
if (keyCode == DOWN) port.write ("G91 / nG20 / nG00 X0.000 Y-" + ātrums + "Z0.000 / n");
if (keyCode == KeyEvent. VK_PAGE_UP) port.write ("G91 / nG20 / nG00 X0.000 Y0.000 Z" + ātrums + "\ n");
if (keyCode == KeyEvent. VK_PAGE_DOWN) port.write ("G91 / nG20 / nG00 X0.000 Y0.000 Z-" + ātrums + "\ n");
// if (key == 'h') port.write ("G90 / nG20 / nG00 X0.000 Y0.000 Z0.000 / n");
ja (atslēga == 'v') port.write ("$ 0 = 75 / n $ 1 = 74 / n $ 2 = 75 / n");
// if (key == 'v') port.write ("$ 0 = 100 / n $ 1 = 74 / n $ 2 = 75 / n");
ja (atslēga == 's') port.write ("$ 3 = 10 / n");
if (key == 'e') port.write ("$ 16 = 1 / n");
ja (atslēga == 'd') port.write ("$ 16 = 0 / n");
ja (atslēga == '0') openSerialPort ();
ja (taustiņš == 'p') selectSerialPort ();
if (key == '$') port.write ("$$ / n");
ja (atslēga == 'h') port.write ("$ H / n");
}
ja (! straumēšana && key == 'g') {
gcode = null; i = 0;
Faila fails = null;
println ("Notiek faila ielāde …");
selectInput ("Izvēlieties apstrādājamo failu:", "fileSelected", fails);
}
ja (atslēga == 'x') straumēšana = nepatiesa;
}
void fileSelected (faila atlase) {
ja (atlase == null) {
println ("Logs tika aizvērts vai lietotāja trāpījums Atcelt");
} vēl {
println ("Lietotājs izvēlēts" + selection.getAbsolutePath ());
gcode = loadStrings (selection.getAbsolutePath ());
if (gcode == null) atgriezties;
straumēšana = taisnība;
straume ();
}
}
tukša straume ()
{
ja (! straumēšana) atgriežas;
kamēr (taisnība) {
ja (i == gcode.length) {
straumēšana = nepatiesa;
atgriešanās;
}
ja (gcode .trim (). length () == 0) i ++;
cits pārtraukums;
}
println (gcode );
port.write (gcode + '\ n');
i ++;
}
void serialEvent (Sērijas p)
{
String s = p.readStringUntil ('\ n');
println (s.trim ());
ja (s.trim (). startsWith ("ok")) stream ();
ja (s.trim (). startsWith ("error")) stream (); // XXX: tiešām?
}
5. darbība: visas daļas noformēšana un drukāšana saplākšņa loksnē
Lejupielādējiet robota daļu un dizainu AutoCAD un izdrukājiet uz 12 mm saplākšņa loksnes un apdares un dizaina daļas. Ja kādam nepieciešams cad fails plz, atstājiet komentāru komentāru sadaļā, es nosūtīšu to tieši.
6. darbība: montāža
savāc visu daļu un sakārto dotajā secībā uz attēla un seko attēla diagrammai.
7. darbība: iestatiet GBRL iestatījumus
Iestatījums, kas ir pierādījis savu darbību mūsu robotiem.
$ 0 = 10 (solis impulss, usec) $ 1 = 255 (solis dīkstāves aizkave, msek) $ 2 = 7 (soļa porta apgriešanas maska: 00000111)) $ 5 = 0 (robežas tapas apgrieztas, bool) $ 6 = 1 (zondes tapas apgriezts, bool) $ 10 = 3 (statusa atskaites maska: 00000011) $ 11 = 0,020 (krustojuma novirze, mm) $ 12 = 0,002 (loka pielaide, mm) $ 13 = 0 (atskaites collas, bool) $ 20 = 0 (mīkstās robežas, bool) $ 21 = 0 (cietās robežas, bool) $ 22 = 1 (sākuma cikls, bool) $ 23 = 0 (homing dir invert mask: 00000000) $ 24 = 100.000 (sākuma padeve, mm/min) 25 USD = 500 000 (mājokļa meklēšana, mm/min) 26 USD = 250 (sākumpunkta debounce, ms) 27 USD = 1000 (atvilkšanas atvilkšana, mm) 100 USD = 250 000 (x, solis/mm) 101 USD = 250 000 (y, solis/mm) 102 USD = 250 000 (z, solis/mm) 110 USD = 500 000 (x maksimālais ātrums, mm/min) 111 USD = 500 000 (y maksimālā likme, mm/min) 112 USD = 500 000 (z maks. Likme, 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 maksimālais gājiens, mm) $ 131 = 200 000 (y maksimālais gājiens, mm) $ 132 = 200 000 (z max gājiens, mm)
8. darbība: augšupielādējiet gala kodu un pārbaudiet virtuālo rezultātu Arduino Uno programmatūras informācijas panelī
// Vienības: CM
pludiņš b_augstums = 0;
pludiņš a1 = 92;
pludiņš a2 = 86;
pludiņš snude_len = 20;
Būla doZ = nepatiess;
pludiņš base_angle; // = 0;
pludiņa roka1_stūris; // = 0;
pludiņš arm2_angle; // = 0;
pludiņš bx = 60; // = 25;
peldēt par = 60; // = 0;
pludiņš bz = 60; // = 25;
pludiņš x = 60;
pludiņš y = 60;
pludiņš z = 60;
pludiņš q;
pludiņš c;
pludiņš V1;
pludiņš V2;
pludiņš V3;
pludiņš V4;
pludiņš V5;
void setup () {
izmērs (700, 700, P3D);
cam = jauns PeasyCam (šis, 300);
cam.setMinimumDistance (50);
cam.setMaximumDistance (500);
}
void draw () {
// ligninger:
y = (peleX - platums/2)*(- 1);
x = (peleY - augstums/2)*(- 1);
bz = z;
līdz = y;
bx = x;
pludiņš y3 = sqrt (bx*bx+by*by);
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;
roka1_stūris = q;
V4 = radiāni (90,0) - q;
V5 = radiāni (180) - V4 - radiāni (90);
arm2_angle = radiāni (180,0) - (V5 + V1);
base_angle = grādi (atan2 (bx, by));
roka1_stūris = grādi (roka1_stūris);
arm2_angle = grādi (arm2_angle);
// println (by, bz);
// roka1_stūris = 90;
// arm2_angle = 45;
/*
roka2_stūris = 23;
roka1_stūris = 23;
roka2_stūris = 23;
*/
// interaktīvs:
// ja (doZ)
//
// {
// base_angle = base_angle+ mouseX-pmouseX;
//} cits
// {
// arm1_angle = arm1_angle+ pmouseX-mouseX;
// }
//
// arm2_angle = arm2_angle+ mouseY-pmouseY;
draw_robot (bāzes_stūris,-(roka1_stūris-90), rokas2_stūris+90-(-(rokas1_stūris-90)));
// println (base_angle + "," + arm1_angle + "," + arm2_angle);
}
void draw_robot (float base_angle, float arm1_angle, float arm2_angle)
{
rotateX (1.2);
rotateZ (-1,2);
fons (0);
gaismas ();
pushMatrix ();
// PAMATS
aizpildīt (150, 150, 150);
kastes_stūris (50, 50, b_augstums, 0);
pagriezt (radiāni (bāzes_stūris), 0, 0, 1);
// ARM 1
aizpildīt (150, 0, 150);
box_corner (10, 10, a1, roka1_stūris);
// ARM 2
aizpildīt (255, 0, 0);
box_corner (10, 10, a2, roka2_stūris);
// SNUDE
aizpildīt (255, 150, 0);
box_corner (10, 10, snude_len, -arm1_angle -arm2_angle+90);
popMatrix ();
pushMatrix ();
pludiņš action_box_size = 100;
tulkot (0, -action_box_size/2, action_box_size/2+b_height);
pushMatrix ();
tulkot (x, action_box_size- y-action_box_size/2, z-action_box_size/2);
aizpildīt (255, 255, 0);
aile (20);
popMatrix ();
aizpildīt (255, 255, 255, 50);
lodziņš (action_box_size, action_box_size, action_box_size);
popMatrix ();
}
void box_corner (pludiņš w, pludiņš h, pludiņš d, pludiņa pagriešana)
{
pagriezt (radiāni (pagriezt), 1, 0, 0);
tulkot (0, 0, d/2);
aile (w, h, d);
tulkot (0, 0, d/2);
}
tukša atslēga Nospiests ()
{
ja (atslēga == 'z')
{
doZ =! doZ;
}
ja (atslēga == 'h')
{
// iestatiet visu uz nulli
roka2_stūris = 0;
roka1_stūris = 90;
pamatnes_stūris = 0;
}
ja (atslēga == 'g')
{
println (grādi (V1));
println (grādi (V5));
}
ja (keyCode == UP)
{
z ++;
}
ja (keyCode == DOWN)
{
z -;
}
ja (atslēga == 'o')
{
y = 50;
z = 50;
println (q);
println (c, "c");
println (V1, "V1");
println (V2);
println (V3);
println (arm1_angle);
println (V4);
println (V5);
println (arm2_angle);
}
}
Ieteicams:
Uz RFID balstīts izvēles un novietošanas robots: 4 soļi
Uz RFID balstīts izvēles un novietošanas robots: kopš daudziem gadiem cilvēki mēģina aizstāt cilvēku darbu ar mašīnām. Mašīnas, ko sauc par robotiem, ir ātrākas un efektīvākas nekā cilvēki. Robotikas termins ir praktiski definēts kā robotu sistēmu izpēte, projektēšana un izmantošana ražošanā. Roboti ir g
Materiālu apstrādes robots uz GSM un Bluetooth bāzes: 7 soļi
Materiālu apstrādes robots uz GSM un Bluetooth bāzes: &gdquo; GSM (SMS) un Bluetooth vadāms bezvadu robots “ ir robots, kas spēj saņemt komandu/ instrukciju komplektu īsziņu pakalpojuma veidā un veic nepieciešamās darbības. Mēs izmantosim īpašu modemu/mobilo
Līdzsvarojošais robots / 3 riteņu robots / STEM robots: 8 soļi
Līdzsvarojošais robots / trīs riteņu robots / STEM robots: mēs esam izveidojuši kombinētu balansēšanas un trīsriteņu robotu, kas paredzēts lietošanai skolās un pēc skolas izglītības programmās. Robota pamatā ir Arduino Uno, pielāgots vairogs (visas konstrukcijas detaļas ir iekļautas), litija jonu akumulators (viss atbilst
Arduino bāzes humanoīda robots, izmantojot servo motorus: 7 soļi (ar attēliem)
Arduino bāzēts humanoīdu robots, izmantojot servo motorus: Sveiki visiem! Šis ir mans pirmais humanoīdu robots, kas izgatavots no PVC putu loksnes. Tas ir pieejams dažādos biezumos. Šeit es izmantoju 0,5 mm. Pašlaik šis robots var vienkārši staigāt, kad es ieslēdzu. Tagad es strādāju, lai savienotu Arduino un Mobile, izmantojot Bluetooth
Arduino bāzes automātiskās virziena robots: 8 soļi (ar attēliem)
Arduino bāzes automātiskais virziena robots: robots pārvietojas, izvairoties no šķēršļiem. tas uztver objektu un skatu apkārt un turpina kustēties, kur ir brīva vieta