Moja wersja to by chyba na Arduino już nie poszła
////////////////////////////////////////////////////////////////////////////////
// xyz_GeometryCalculateAxis()
////////////////////////////////////////////////////////////////////////////////
void xyz_GeometryCalculateAxis(
U32 PulsesPer1000mm,
VectorSpeedType * VS
)
{
// Calculates (for single axis) its acc/const/dcc motion profile
if(VS->Distance != 0)
{
if( (VS->Acc != 0) && (VS->Dcc != 0))
{
VS->LineAcc.T = (VS->V-VS->Vstart) / VS->Acc;
VS->LineDcc.T = (VS->V-VS->Vstop) / VS->Dcc;
VS->LineAcc.S = VS->LineAcc.T * VS->Vstart + VS->Acc * VS->LineAcc.T * VS->LineAcc.T /2;
VS->LineDcc.S = VS->LineDcc.T * VS->Vstop + VS->Dcc * VS->LineDcc.T * VS->LineDcc.T /2;
if(VS->LineAcc.S + VS->LineDcc.S < VS->Distance)
{
VS->LineConst.S = VS->Distance - VS->LineAcc.S - VS->LineDcc.S;
VS->LineConst.T = (VS->LineConst.S / VS->V);
VS->LineAcc.PulseCnt = xyz_GeometryDist2Pulse(VS->LineAcc.S,PulsesPer1000mm);
VS->LineDcc.PulseCnt = xyz_GeometryDist2Pulse(VS->LineDcc.S,PulsesPer1000mm);
VS->LineConst.PulseCnt = xyz_GeometryDist2Pulse(VS->Distance,PulsesPer1000mm) - VS->LineAcc.PulseCnt - VS->LineDcc.PulseCnt;
assert( fabs(VS->V -( VS->Vstart + VS->Acc*VS->LineAcc.T)) < 0.001);
}
else
{
double WA,WB,WC;
VS->LineConst.T = 0;
VS->LineConst.S = 0;
VS->LineConst.PulseCnt = 0;
WA = VS->Acc/2 + VS->Dcc/2 *(VS->Acc/VS->Dcc)*(VS->Acc/VS->Dcc);
WB = VS->Vstart + (VS->Acc/VS->Dcc)*VS->Vstop;
WC = -(double)VS->Distance;
VS->LineAcc.T = (-WB+sqrt(WB*WB-4*WA*WC))/(2*WA);
VS->LineAcc.S = VS->Acc*VS->LineAcc.T*VS->LineAcc.T/2 + VS->LineAcc.T*VS->Vstart;
VS->LineAcc.PulseCnt = xyz_GeometryDist2Pulse(VS->LineAcc.S,PulsesPer1000mm);
VS->LineDcc.T = (VS->LineAcc.T*VS->Acc)/VS->Dcc;
VS->LineDcc.S = VS->Dcc*VS->LineDcc.T*VS->LineDcc.T/2 + VS->LineDcc.T*VS->Vstop;
VS->LineDcc.PulseCnt = xyz_GeometryDist2Pulse(VS->Distance,PulsesPer1000mm) - VS->LineAcc.PulseCnt;
VS->V = VS->Vstart + VS->Acc*VS->LineAcc.T;
}
}
else
{
VS->LineAcc.T = 0;
VS->LineAcc.S = 0;
VS->LineAcc.PulseCnt = 0;
VS->LineConst.T = (double)VS->Distance/VS->V;
VS->LineConst.S = VS->Distance;
VS->LineConst.PulseCnt = xyz_GeometryDist2Pulse(VS->Distance,PulsesPer1000mm);
VS->LineDcc.T = 0;
VS->LineDcc.S = 0;
VS->LineDcc.PulseCnt = 0;
}
}
else
{
VS->LineAcc.T = 0;
VS->LineAcc.S = 0;
VS->LineAcc.PulseCnt = 0;
VS->LineConst.T = 0;
VS->LineConst.S = 0;
VS->LineConst.PulseCnt = 0;
VS->LineDcc.T = 0;
VS->LineDcc.S = 0;
VS->LineDcc.PulseCnt = 0;
}
}
Znaleziono 21 wyników
Znaleziono 21 wyników
- Poprzednia
- 1
- 2
- 3
- autor: jarekk
- 13 kwie 2012, 10:37
- Forum: Silniki Krokowe / Sterowniki Silników Krokowych
- Temat: RAMPA na ARDUINO
- Odpowiedzi: 182
- Odsłony: 32808
Znaleziono 21 wyników
- Poprzednia
- 1
- 2
- 3
Przejdź do
- AMATORSKIE MASZYNY CNC
- ↳ CNC podstawy
- ↳ Frezarka - konstrukcja metalowa
- ↳ Frezarka - konstrukcja drewniana
- ↳ Amatorska Tokarka CNC
- ↳ Wycinarka Styropianu (Styroduru)
- ↳ NASZE AMATORSKIE MASZYNY CNC
- ↳ INNE MASZYNY i URZĄDZENIA
- PRZEMYSŁOWE MASZYNY CNC
- ↳ Przecinarka Plazmowa CNC, Gazowa
- ↳ Wycinarka Laserowa / Grawerka Laserowa / Lasery
- ↳ Wycinarka Wodna / Water Jet
- ↳ Przecinarki drutowe / Elektrodrążarki / EDM
- ↳ Inne obrabiarki przemysłowe
- ↳ Plotery tnące
- ↳ Maszyny CNC do Obróbki Drewna
- ↳ Inne Maszyny CNC do Obróbki Drewna, Frezarki, Centra, Plotery
- ↳ Morbidelli
- ↳ Homag, Weeke
- ↳ Biesse Rover
- ↳ Bridgeport / Romi / Hardinge
- ↳ Cincinnati CNC
- ↳ Frezarki Deckel, Maho, Aciera, Abene
- ↳ Daewoo / Doosan
- ↳ Dyna Mechtronics
- ↳ Fadal
- ↳ HAAS
- ↳ HURCO
- ↳ Tokarki Mori Seiki
- ↳ Maszyny Okuma
- WARSZTAT i OBRÓBKA MATERIAŁÓW
- ↳ Rysunek techniczny
- ↳ Obróbka metali
- ↳ Toczenie / Tokarki Konwencjonalne
- ↳ Tokarka Nutool 550, Zuch, OUS, TSA, TSB, Mini Lathe i inne małe tokarki
- ↳ Frezowanie / Frezarki Konwencjonalne
- ↳ Spawalnictwo i obróbka cieplna
- ↳ Obróbka drewna
- ↳ Obróbka tworzyw sztucznych
- ↳ Obróbka plastyczna
- ↳ Obróbka kamienia
- ↳ Wytwarzanie Form
- ↳ Odlewnictwo / Topienie Metali
- ↳ WARSZTAT
- ↳ Narzędzia - frezy, noże, gwintowniki etc
- ↳ Pomiary, Kalibracja, Narzędzia Pomiarowe
- ELEMENTY MASZYN
- ↳ Obliczenia Mechaniczne / Projektowanie Maszyn / Podstawy Konstrukcji Maszyn (PKM)
- ↳ Mechanika
- ↳ Przeniesienie napędu, Przekładnie Pasowe, Przekładnie Zębate, Listwy zębate
- ↳ Prowadnice - Technika Przesuwu Liniowego
- ↳ Śruby Kulowe / Śruby Trapezowe
- ↳ Pneumatyka, Podciśnienie, Hydraulika Siłowa
- ELEKTRONIKA i AUTOMATYKA
- ↳ Elektronika CNC
- ↳ Silniki Krokowe / Sterowniki Silników Krokowych
- ↳ Serwomotory / Serwonapędy / Napędy Serwokrokowe
- ↳ Elektrowrzeciono
- ↳ Elektronika ogólna
- ↳ Automatyka przemysłowa
- ↳ Silniki Elektryczne / Falowniki
- ↳ Arduino, Raspberry pi i inne systemy mikroprocesorowe
- PROGRAMY STERUJĄCE i KONTROLERY CNC
- ↳ Ogólne Dyskusje na Temat Systemów Sterowania CNC
- ↳ G-CODE - programowanie
- ↳ Heidenhain
- ↳ Fanuc
- ↳ Siemens Sinumerik CNC
- ↳ Mazak, Mitsubishi, Mazatrol
- ↳ Fagor Automation
- ↳ Mach 2 / 3 / 4 (ArtSoft software)
- ↳ TurboCNC
- ↳ KCAM
- ↳ LinuxCNC (dawniej EMC2)
- ↳ STEP2CNC
- ↳ cncGraf
- ↳ CNConv
- ↳ PikoCNC
- ↳ Estlcam
- PROGRAMY CAD/CAM
- ↳ Post Procesory
- ↳ Ogólne dyskusje na temat oprogramowania CAD/CAM
- ↳ Autodesk Software (Autocad, Inventor etc)
- ↳ Solidworks
- ↳ NX CAM/Unigraphics
- ↳ EdgeCAM
- ↳ Mastercam
- ↳ Solid Edge
- ↳ ArtCAM
- ↳ eduCAD
- ↳ Alphacam
- ↳ CorelDraw
- ↳ Catia
- ↳ Rhino 3D
- ↳ LazyCam
- ↳ Sprut CAM
- ↳ featureCAM
- ↳ ZW3D / ZWCAD
- ↳ SolidCAM
- ↳ VISI
- ↳ CamBam
- ↳ Esprit
- ↳ SheetCam
- ↳ Surfcam
- Drukowanie i Skanowanie 3D
- ↳ Drukarki 3D, RepRap
- ↳ Skanery 3D
- Symulacja obróbki CNC
- ↳ Oprogramowanie symulacyjne
- ↳ Plugi-iny do programów Cad/Cam
- ↳ Materiały pomocnicze dla instruktorów CNC
- MASZYNY i OPROGRAMOWANIE POMIAROWE
- ↳ Oprogramowanie pomiarowe
- DOWNLOAD/UPLOAD
- ↳ DXF, NC, HPGL, itp
- ↳ Data Sheet i schematy elektroniki do CNC
- ↳ Teoria, arkusze kalkulacyjne, dokumenty
- ↳ Software
- ↳ Plany budowy maszyn
- HOBBY
- ↳ Ogólne Dyskusje o Hobby
- ↳ Modelarstwo
- ↳ Roboty
- ↳ Silniki Parowe / Styrlinga / Odrzutowe
- POSZUKUJE
- ↳ Schematu
- ↳ Informacji na temat...
- POZOSTAŁE
- ↳ Galeria maszyn i prac
- ↳ EBMiA.pl - Akcesoria CNC
- ↳ www.cnc.info.pl
- ↳ Artykuły - Oferty Firmowe
- ↳ Linki
- ↳ Na luzie
- ↳ Tylko dla zarejestrowanych
- ↳ Ankiety
- WIZYTÓWKI
- ↳ Usługi CNC
- ↳ Budowa i naprawa maszyn
- ↳ Obróbka metalu
- ↳ Szkolenia
- Ogłoszenia
- ↳ Giełda CNC
- ↳ Zlecenia
- ↳ Praca - Ogłoszenia (Oferty)