Links
Sekcia so vsetkymi moznymi zozbieranymi linkami.
LINUX & GNU
Libraries
Manuals & references
Clanky
OMRON
Qt
CONRAD
Trajectory Planing
GIT
922ff15478cb47af8ca0923fa3
Open issues
Otvorene veci ktore treba este vymysliet (domysliet) ...
- open/true type font converter
- libfreetype (http://www.freetype.org/)
- fonttools - Konvertuje písma OpenType a TrueType na a z XML
- fontforge - font editor
- IO-doska ... definicia vstupov a vystupov dotiahnut ... a vyrobit prvy prototyp
- vnutorny/nativny format dat v ARM
- XML 1 ... priamo konvertovane z (PLT, SVG, DWG ...)
tu je problem s tym ze QT vie zobrazovat len SVG
- XML 2 ... optimalizovany ekvivalent XML1
- GIT/SVN repository ... ci a kde ju spravit
- WIKI ... asi na www.slavomir.com - MediaWiki
- este nieco dalsie ?
Use Cases
Ty su hlavne oblasti pouzitia/ nasadenia ...
- Popisovanie laserovou hlavou
- za jazdy
- zatial bez moznosti dynamicky menit projekt (maximalne seriove cislo)
- Gravirovanie mikrouderom
- pohyb v 2 osich
- ovladanie 1 ventilu / pripadne PWM
IO board requirements
Tu je popisane ake vsetky periferie by mala podporovat IO doska riadena z FPGA
Pokryva nasledovne aj GALVo hlavu (4 x FAST RS422 vystup + 1 x ANALOG 0-10V) ?
IO board - detailed table
| I / O | High Speed | X,Y,Z Servo only | Galvo + Z axis |
| I | HI, RS422 | Vstup A impulzov z enkodera Os X | - nc - |
| I | HI, RS422 | Vstup B impulzov z enkodera Os X | - nc - |
| I | HI, RS422 | Vstup Z impulzu z enkodera Os X | - nc - |
| I | HI, RS422 | Vstup A impulzov z enkodera Os Y | - nc - |
| I | HI, RS422 | Vstup B impulzov z enkodera Os Y | - nc - |
| I | HI, RS422 | Vstup Z impulzu z enkodera Os Y | - nc - |
| I | HI, RS422 | Vstup A impulzov z enkodera Os Z | - nc - |
| I | HI, RS422 | Vstup B impulzov z enkodera Os Z | - nc - |
| I | HI, RS422 | Vstup Z impulzu z enkodera Os Z | - nc - |
| I | | Servo Error X | Laser Error |
| I | | Servo Coincidence X | Laser Ready |
| I | | Servo Error Y | - nc - |
| I | | Servo Coincidence Y | - nc - |
| I | | Servo Error Z | Servo Error Z |
| I | | Servo Coincidence Z | Servo Coincidence Z |
| O | HI, RS422 | Vystup CCW / Step Os X | Galvo Clock |
| O | HI, RS422 | Vystup CW / Dir Os X | Galvo Sync |
| O | HI, RS422 | Vystup CCW / Step Os Y | Galvo X |
| O | HI, RS422 | Vystup CW / Dir Os Y | Galvo Y |
| O | HI, RS422 | Vystup CCW / Step Os Z | Vystup CCW / Step Os Z |
| O | HI, RS422 | Vystup CW / Dir Os Z | Vystup CW / Dir Os Z |
| O | HI, Opto 5V | - nc - | Laser Qswitch Freq |
| O | HI, Opto 5V | - nc - | Laser Gate On/Off |
| O | | Servo Enable X | Laser Power Strobe |
| O | | Servo Reset X | Laser Shutter |
| O | | Servo Enable Y | - nc - |
| O | | Servo Reset Y | - nc - |
| O | | Servo Enable Z | Servo Enable Z |
| O | | Servo Reset Z | Servo Reset Z |
| O | | - nc - | Laser Power Bit0 |
| O | | - nc - | Laser Power Bit1 |
| O | | - nc - | Laser Power Bit2 |
| O | | - nc - | Laser Power Bit3 |
| O | | - nc - | Laser Power Bit4 |
| O | | - nc - | Laser Power Bit5 |
| O | | - nc - | Laser Power Bit6 |
| O | | - nc - | Laser Power Bit7 |
| O | ADC | - nc - | Galvo X analog |
| O | ADC | - nc - | Galvo Y analog |
Sumár:
| I / O | High Speed | Počet |
| I | HI, RS422 | 9 |
| | | 6 |
| O | ADC | 2 |
| | HI, Opto 5V | 2 |
| | HI, RS422 | 6 |
| | | 14 |
K RS485 pridať aj open collector výstup (napr. kvôli Mikrocon stepper driveru)
Internal ARM dataformat
Tu su popisane poziadavky na datovy format ... co by mal vsetko zvladat a podporovat ...
Globálne parametre stroja
- Spoločné
- Os Z (ak bude použitá)
- počet impulzov na mm v osi Z
- offset home senzora [mm]
- limity pre pohyb - rozmery osi
- maximálna rýchlosť
- maximále zrýhlenie
- Laser
- parametre Galvo hlavy a optiky
- veľkosť pola
- korekčné parametre šošovky
- Mikrobod
- Parametre osí X,Y
- počet impulzov na mm v osi
- offset home senzora [mm]
- limity pre pohyb - rozmery osi
- maximálna rýchlosť
- maximále zrýhlenie
Projekt
- zoskupenie viacerych Objektov
- bude definovať poradie vykreslovania Objektov
- k Objektom definuje ich vykreslovacie atribúty
- Spravuje globálne nastavenia projektu
- kedy sa začne s vykreslovaním
- opakovanie vykreslovania
- Spravuje v rámci projektu preddefinované prametre vykreslovania
- napríklad "Hrubá čiara" je definovaná rýchlosťou popisu xx, výkonom yy, ...
Objekt
Geometrická entita pre vykreslenie.
S nadefinovanými parametrami alebo použitím preddefinovaných parametrov.
Pozor! Niektoré entity môžu mať viac vykreslovacích parametrov: Štvorec má zvášt obrys a zvlášť výplň.
Typy objektov:
- Základné geometrické entiy
- Čiara
- Lámaná čiara - množina bodov {[x1,y1],[x2,y2], ...}
- Štvorec
- Kružnica
- Elipsa
- Oblúk (3 body, stred-začiatok-uhol, ...)
- Berzierova krivka
- Zložené entity. Skladá sa z množiny základných podporovaných geometrických entít.
- Importovaný set - Naimportovaný formát (PLT-HPGL, DWG, WMF, EMF ... ). Celý set má spoločné vykreslovacie parametre, alebo sú zvlášť definované pre jednotlivé farby (pierka)
Projektové parametre
- rýchlosť pohybu pri nevykreslovaní
- akcelerácie, dekcelerácia pri značiacich pohyboch
- akcelerácie, dekcelerácia pri ne-značiacich pohyboch
- offset času zapnutia pre značiaci aparát (pozitívny aj negatívny - predstih / oneskorenie)
- offset času vypnutia pre značiaci aparát (pozitívny aj negatívny - predstih / oneskorenie)
- deformácia popisového poľa (pri laserovom značení na valci / guli)
Parametre vykreslovania
Umožniť predefinovať niektoré 'Projektové parametre'
- Spoločné pre laser aj mikrobod
- rýchlosť značenia
- PRETTY REZIM ... ako sa ma optimalizovat znacenie
- A - presné polohovanie, nedodržaná rýchlosť značenia,
- B - nepresné polohovanie (rohy), rýchlosť dodržaná
- C - presné polohovanie + dodržaná rýchlosť,
- Laser
- výkon
- frekvencia Q switchu
- Mikrobod
Parametre objektov
Spoločné
- Pozícia (origin objektu) [x,y]
- Rotácia (???)
- Pozícia na Z osi (ak je použitá)
Čiara
- Štartovací bod [x1,y1]
- Koncový bod [x1,y1]
Importovaný set (hpgl,plt)
Štvorec
- Roh1 [x1,y1]
- Roh2 [x2,y2]
- Vykreslovacie parametre obrysobej čiary
- Ak je plný:
- Vykreslovacie parametre šrafovania
- rozostup šrafovacích čiar
- sklon šrafovacích čiar
Datamatrix
- ???
- http://www.libdmtx.org/
- Prekrytie/nedokrytie štvorčekov
- parametry štvorčekov ako pri Štvorci (zvlásť obrys, zvlásť šrafovanie)
- Inverzia kódu. Keď bude kód invertovaný už to nemusia byť štvorčeky
Blender
Bude nieco co bude v FPGA a bude vediet vykonavat zakladne prikazy a vediet korigovat pohyb linky, pripadne cakat na sync impulz.
Zakladne vlastnosti
- fronta prikazov doktorej musi ARM zapisovaty rychlejsie ako sa vykonavaju
- commandy budu sekvcencne ocislovane (SEQ_ID) aby sa dalo napr zistovat ktory sa prave vykonava
- vediet obist frotu - pricom nezalezi na stave rozpracovania prikazu z fronty (kriticke stavy)
Nastrel commandov fronty
- typu ciara, krivka ... aj s vlastnostami (suradnice, parametre, sirka ciary)
- typu cakaj na event
- zmena parametra (napr nejakeho globalneho)
- ...
Nastrel commandov ktore obchadzaju frontu
- vymaz frontu
- vymaz frontu od SEQ_ID ..
- stop celeho systemu (ale to si uz vymyslam)
- inicializacia a kalibracia a presun do polohy 0,0
- ...
IRC
IDC from EMC 2 PROJECT :
[21:39] <Vladimirek> Hi ! Can be EMC2 used on ARM procesors? In readme I read: "
[21:39] <Vladimirek> eliminating support for platforms
[21:39] <Vladimirek> other than Linux on x86, with either RTAI or RTLinux for
[21:39] <Vladimirek> realtime.
[21:39] <Vladimirek> "
[21:49] <cpresser> Vladimirek: there is a RTAI for various arm-platforms
[21:49] <cpresser> however, you might want to consider how to do IO operations
[22:09] <Vladimirek> cpr
[22:10] <Vladimirek> cpresser: is there any public ARM project ?
[22:10] <Vladimirek> I mean EMC on arm.
[22:12] <cpresser> sorry, i dont know about that. but since RTAI is avaiable, at least you should be able to compile emc2 on arm.
[22:13] <Vladimirek> ok, thanks.
[22:14] <cpresser> but be advised that there are many variations of arm-platforms out there
[22:21] <tom3p> mhaberler, very not done yet but beginning to be fun http://videobin.org/+471/4jo.html
[22:22] <mhaberler> very cool! how did you do this?
[22:22] <tom3p> uses #<named params> for positions, tooltable to describe shape, M64 65 66 to make sure element move fully before proceeding
[22:22] <tom3p> uh, with your code ;)
[22:23] <mhaberler> yay!
[22:23] <tom3p> NDY not done yet, will post
[22:24] <tom3p> i had limited success making the alpha channel of old tool disappear then new tool appear in chuk
[22:25] <tom3p> but will not bother with that (vismach) till the logical code done
[22:30] <andypugh> Vladimirek: I don't think EMC2 on ARM works, Jon Elson has been trying for a while with a Beagleboard.
[22:30] <andypugh> It might work on something like a RiscPC, if any are still working.
[22:32] <andypugh> (Forget that last bit, I am thinking of something else, and getting Alpha and ARM mixed up too). The EMC2 not yet working with Beagleboard part is true though.
[22:32] <Vladimirek> I woud like run it on this:http://armadeus.com/
[22:34] <Vladimirek> What is the main issue?
[22:34] <Jymmm> Vladimirek: How do you plan on interfacing motor drives with that?
[22:34] <andypugh> If you are doing it for fun, then carry on. If you want a small, low power, EMC2 system then Mini-ITX is pretty small.
[22:34] <Vladimirek> Via FPGA.
[22:34] <Jymmm> Vladimirek: I mena I/O, there is no USB support in EMC
[22:34] <Jymmm> mean
[22:36] <Vladimirek> No this wil not for fun. Hardware is selected (has another key role in project - CAM is only bonus).
[22:39] <andypugh> I think it is one of those "well, it ought to work" things.
[22:40] <andypugh> I imagine that there might have to be some work done on the makefiles.
[22:40] <Vladimirek> Can EMC run without X server ? Is there API to make custom vizualization (simple text mode)?
[22:40] <Jymmm> Keystick (text mode)
[22:42] <Vladimirek> Jymmm: yes thanks this is fine.
[22:44] <Jymmm> Vladimirek: No, you are not understanding what I'm asking. How do you plan on connecting motor drivers to that board you linked to?
[22:46] <Vladimirek> Jymmm: Sorry, I have PCB convert FPGA IO to 422 levels connected to servo drivers.
[22:47] <Jymmm> RS-422 ???
[22:48] <Vladimirek> Jymmm: Yes, but it is not about serial, it is only about voltage levels - for Omron Smart Step.
[22:48] <Vladimirek> Jymmm: pulse/dir of course
[22:53] <Vladimirek> RTAI is used 'only' for moves right? It is posible out moves on some 'upper' level from EMC ? For example axis_X: direction, frequency for time T.
[22:56] <andypugh> You still need RTAI to provide the next update.
[22:56] <andypugh> However, you might want to consider moving the step generation to the FPGA.
[22:57] <andypugh> I think it ought to be possible to use the Mesa firmware in your own FPGA. (though it would be polite to ask first)
[23:08] <Vladimirek> andypugh: Yes, exactly this i have in mind. I woul like to move step generators to FPGA. Is there some documented HAL/API (on EMC) for this?
[23:10] <andypugh> It is entirely possible that the Mesa firmwares (bitfiles) would install and run on any Spartan FPGA of the same model. I don't know.
[23:10] <andypugh> http://www.linuxcnc.org/docview/html/man/man9/hostmot2.9.html
[23:11] <andypugh> You might need a PCI bridge (or virtual parallel port) to use the standard EMC2 drivers.
[23:11] <Vladimirek> andypugh: Not this way. do some in FPGA is no problem for me, but what I need is some point in EMC where I can send data to FPGA.
[23:12] <andypugh> That's what the EMC2 Hostmot2 driver does.
[23:12] <Vladimirek> So as I understand some Hal module must be writen for my own FPGA.
[23:13] <Vladimirek> andypugh: ah so..
[23:13] <andypugh> If you want to do it differently, then you would write your own HAL driver to accept position updates, and convert to step rates.
[23:13] <andypugh> Look at the Motenc, Hostmot and Pluto drivers for examples.
[23:15] <Vladimirek> andypugh: Thanks a lot, this looks like good starting point.
[23:18] <andypugh> Somewhere in the sources you might even find the vhdl (?) for the FPGA
[23:19] <sarariman_seb> here's the vhdl for hostmot2: http://git.linuxcnc.org/gitweb?p=hostmot2-firmware.git;a=summary
[23:34] <Vladimirek> sarariman_seb: Thanks for your direction.