Recent Changes - Search:

Photo gallery home

Armadeus = ARM Linux computer board + FPGA + LCD

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) ?

  • 3 osi (X,Y,Z)
    • OUT - high speed (OPTO - RS422) ... CW
    • OUT - high speed (OPTO - RS422) ... CCW
    • OUT - high speed (OPTO - RS422) ... PCM digitalne ovladanie galvo hlavy
    • OUT - high speed (Analog DAC 0-10V) ... analogove ovladanie galvo hlavy
    • IN - high speed (RS422) ... A encoder
    • IN - high speed (RS422) ... B encoder
    • IN - high speed (RS422) ... Z impulz zo serva ?
    • IN - low speed ... prvy doraz - OPTICAL ?
    • IN - low speed ... lavy doraz - OPTICAL ?
    • IN - low speed ... home - OPTICAL ?
    • OUT - low speed (OPTO - OC)... ENABLE
    • IN - low speed (OPTO - OC)... ERROR vstup zo serva
    • IN - low speed (OPTO - OC)... READY vstup zo serva
    • IN - high speed ??? ... KOINCIDENCIA - dosiahnutie polohy (RS-422 ?)
  • LASER .. ovladanie laseru
    • OUT - low speed ??? (???)... SHUTTER
    • OUT - high speed ??? (???)... Q-SWITCH modulacia vykonu
    Este nieco na 25 pinovy konektor ?

IO board - detailed table

I / OHigh SpeedX,Y,Z Servo onlyGalvo + Z axis
IHI, RS422Vstup A impulzov z enkodera Os X- nc -
IHI, RS422Vstup B impulzov z enkodera Os X- nc -
IHI, RS422Vstup Z impulzu z enkodera Os X- nc -
IHI, RS422Vstup A impulzov z enkodera Os Y- nc -
IHI, RS422Vstup B impulzov z enkodera Os Y- nc -
IHI, RS422Vstup Z impulzu z enkodera Os Y- nc -
IHI, RS422Vstup A impulzov z enkodera Os Z- nc -
IHI, RS422Vstup B impulzov z enkodera Os Z- nc -
IHI, RS422Vstup Z impulzu z enkodera Os Z- nc -
I Servo Error XLaser Error
I Servo Coincidence XLaser Ready
I Servo Error Y- nc -
I Servo Coincidence Y- nc -
I Servo Error ZServo Error Z
I Servo Coincidence ZServo Coincidence Z
OHI, RS422Vystup CCW / Step Os XGalvo Clock
OHI, RS422Vystup CW / Dir Os XGalvo Sync
OHI, RS422Vystup CCW / Step Os YGalvo X
OHI, RS422Vystup CW / Dir Os YGalvo Y
OHI, RS422Vystup CCW / Step Os ZVystup CCW / Step Os Z
OHI, RS422Vystup CW / Dir Os ZVystup CW / Dir Os Z
OHI, Opto 5V- nc -Laser Qswitch Freq
OHI, Opto 5V- nc -Laser Gate On/Off
O Servo Enable XLaser Power Strobe
O Servo Reset XLaser Shutter
O Servo Enable Y- nc -
O Servo Reset Y- nc -
O Servo Enable ZServo Enable Z
O Servo Reset ZServo 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
OADC- nc -Galvo X analog
OADC- nc -Galvo Y analog

Sumár:

I / OHigh SpeedPočet
IHI, RS4229
  6
OADC2
 HI, Opto 5V2
 HI, RS4226
  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ť
        • pri značení
        • pri presune
      • 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
      • kubická
      • kvadratická
  • 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 úderu
      • ???

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)

  • Veľkosť [h,w]

Š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.

Edit - History - Print - Recent Changes - Search
Page last modified on 2021-05-09 14:50