Arduino Due

arduino, teensy, atmega, pic a jine (software, hardware)
Odpovědět
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

18. 2. 2015, 9:51

Pokud by ses chtěl zaobírat naportováním nového GRBL na Arduino Due, tak by to byl podle mě docela dobrý krok, a rád s tebou případně zaspolupracuji.

Ke kompilátoru: myslím si, že nejlepší cesta je použití kompilátoru GCC. Je free, takže není třeba dělat žádné pirátštiny. Ale hlavně je to super kompilátor, který dneska existuje snad pro všechny myslitelné platformy (ARM, PIC32, AVR, PC s Linuxem i Windows, a to vše ve 32 i 64 bit verzi atd. atd.). Je dlouhodobě prověřený, mimo jiné tím, že je pomocí něho přeložen celý Linux. A navíc je to kompilátor, který je oficiálně podporován firmou ARM. Takže já už dneska nic jiného nepoužívám.

K použití LCD displeje: skoro bych si myslel, že vázat to GRBL na nějaký konkrétní typ displeje je škoda. Pak je využitelnost takového řešení poměrně malá, protože lidí, co si pořídí nějaký speciální HW a budou ho umět připojit moc nebude.
Pokud bys chtěl jít do kompletního řešení realtime + interaktivní ovládání, tak bych se spíš přimlouval za využití nějakého standardního a snadno dostupného HW. Jako optimální kandidát se mi jeví použít pro front-end tablet nebo mobil s Androidem. Takový mobil má dneska snad už skoro každý. Navíc se dá koupit velmi levný modul Bluetooth nebo ještě lépe WiFi, takže spojení realtime desky (tj. třeba toho Arduina Due) s front-end zařízením (mobilem nebo tabletem s Androidem) by bylo bezdrátové, což je podle mě elegantní a řeší to spoustu problémů. Navíc by se to celé dalo napsat velmi obecně, takže by se to dalo propojit pomocí sériové linky, USB, WiFi nebo Bluetooth.

Kromě toho možnosti toho front-endu na výkonném mobilu jsou mnohem širší, než na přece jen omezené desce Arduino atd. Navíc není třeba si dělat starosti s výkonem, protože realtime pojede nezávisle na nějakém zobrazování. A nemusela by se možná ani řešit SD karta, data by mohla být uložena na tom front-endu. Tohle je ale ještě na větší koncepční rozbor, stejně jako ukládání lokálního nastavení stroje (většina desek s ARMem nemá v základní konfiguraci EEPROM).

No a pokud by se to napsalo rozumně, tak by se ten front-end dal použít nejen k tomu přeportovanému GRBL, ale třeba i k TinyG2, a to by bylo už plně super.

Ještě poznámka: všude jsem psal přeportování na Arduino Due. To samozřejmě není podmínka, může to být klidně na nějakou desku se STM32. Ale měla by to být nějaká levná a široce dostupná deska, takže třeba některá ze STM32_Discovery. To Arduino Due se nabízí právě kvůli své nízké ceně a velmi snadné dostupnosti.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

19. 2. 2015, 8:30

Ja to vidim tak, ze ak chce niekto pouzivat GRBL vyhradne na ovladanie driverov pre KM alebo serva a krmit to externe z PC,mobilu, tabletu,.... tak nie je dovod to portovat na nejaky ARM.
Ved GRBL je hotove(aktualna verzia), odskusane, no napriek tomu stale vo vyvoji. Takze po pripadnych zmenach by to zase potrebovalo portovat a portovat....
Ak ho mam krmit po seriovej linke tak je 100% pripravene. Cez bluetooth mozem tiez pouzit prevodnik Bluetooth<>Serial. V podstate je jedno cim by som ho krmil, aj to wifi by zvladol povodny GRBL postaveny napr na ATMega328 po prepisani komunikacie z UART napr na SPI.

Vyhodu integrovaneho riesenia spolu s LCD prave v tej integracii. GRBL napriklad v sucasnosti neobsahuje ziadnu podporu pre jogging. Ale urobit integrovany jogging ktory bude 100% mimo grbl je otazka par hodin.
Na druhej strane chapem ze neexistuje nejake kompletne riesenie MCU+LCD+SDkarta v cenach pod 100$.
Viem vsak kupit dotykovy displej s radicom a SD kartou http://www.aliexpress.com/item/Free-Shi ... 17728.html" onclick="window.open(this.href);return false; za 15$ s dopravou a k tomu nejaku MCU development board s vacsim poctom IO napriklad http://www.aliexpress.com/item/Port103Z ... 03478.html" onclick="window.open(this.href);return false; za 24$. Ja osobne som zvyknuty na vacsie uhlopriecky displeja, ale kompletne riesenia napriklad MCU+SDkarta+2.8" Touch LCD sa da kupit aj za 35$.
K inym projektom som si vytvoril vlastne DPS ktora ma vsetko co potrebujem, takze ju pouzivam vsade kde sa len da. Viem ze toto je forum hlavne o obrabani, nie stranka venovana elektronike, takze malokto si bude pajkovat TQFP puzdra na dps.

Co sa tyka programovanie mobilov, tak tam som mimo. Java ma nikdy nenadchla a ani som nastastie nemal dovod sa do nej hrnut. Uz nejaky rok bezi nativna podpora programovania android a IOS zariadeni aj v Pascale. Tam vidim najrychlejsiu cestu pre tvorbu front end aplikacie. Nie je to ale zadarmo :(. Momentalne Delphi XE7 nema integrovanu podporu pre seriovy port, nastastie slovenska firma predava komponentu za relativne male peniaze. Do prace som to aj tak uz chcel zakupit.

PS ; Co sa tyka ukladania konfiguracie stroja. Ja osobne mam jednu masinku a jej parametre mam natvrdo definovane v zdrojakoch. Ale aj keby to mabo byt ako v povodnom GRBL, tak napriek tomu ze ARM nemaju EEPROM na ukladanie konfiguracie, tak je mozne emulovat EEPROM volnou FLASH pamatou. Robi sa to uplne bezne, malokto vyuziva flash pamat na viac ako 80-90%.

Zdrojaky TinyG2 som este nepozeral, neviem akym spsobom komunikuje s nadriadenym SW, ale nevidim problem v prepisani nejakych komunikacnych procedur aby sa podobali na GRBL. Idem to pozriet blizsie...
Přílohy
20150219_091545.jpg
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

19. 2. 2015, 12:38

Škoda, že se tak míjíme v koncepčních představách. Ale aspoň je svět barevný.

Já bych si od naportování GRBL na ARM sliboval to, že za víceméně stejné peníze dostanu několikanásobně výkonnější HW, takže nějaké omezení frekvence STEP nebo inkrementálních enkodérů prostě nemusím řešit.

Uznávám, že LCD s touch-panelem za 15 USD je hodně dobrá cena. Ale bude to pak zřejmě řešení, poplatné jednomu konkrétnímu HW. Kdežto použití HW, který nosí skoro každý z nás v kapse mi přijde elegantnější.

Vycházím z představy, že každý má dělat to, co umí nejlíp. A to Arduino, ARMová destička nebo podobný HW umí velmi dobře řešit real-time akce typu časování STEP/DIR, obsluhu čidel, enkodérů atd., ale na nějaké velké grafické aplikace to zase tak moc super není. Tablet nebo mobil zase naproti tomu umí dobře řešit vymazlené grafické prostředí, ale na real-time řízení zase použitelný není. Takže kombinací výhod obou zařízení může být hodně dobré řešení.

K vývojovým prostředkům: tak, jako bych nikdy neuvažoval dělat něco na Keilu (ale dělám vše na open platformě GCC), tak bych třeba nikdy nezvažoval něco dělat v Pascalu na Delphi, ale určitě bych použil free vývojové prostředí QT a podobně.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

19. 2. 2015, 3:07

Dnes som nainstaloval GCC+Eclipse+ARM Toolkit a funguje to prekvapivo dobre.
Az na to ze na dps mam ib SWD konektor a openocd+jlink+swd zatial nefunguje.
Rozchodit moju dosku pod eclipse zabralo pol dna :(.
Za hodinu som potom rozbehal LCD,Touch,FSMC a bzuciak :)))

Co sa tyka Delphi+Android. Uznavam ze to nie je idealne, ale my tvorime MySQL desktopove aplikacie a k tomu potrebujeme Android s nativnou podporou MySQL.
Pokial viem tak embedded MySQL pre android neexistuje a tym padom patri ta Delphi+MyDAC Devart aplikacia medzi najrychlejsie.Na komerciu pouzivame komerciu :)

PS : Akym sposobom komunikuje TinyG2 s nadradenym sw???? Pravdepodobne staci upravit komunikaciu a budes mat rychle riesenie. Zatial som sa k tym zdrojakom nedostal.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

20. 2. 2015, 3:21

Teraz som si nasiel nejaku hodinku a pozrel sa do zdrojakov TinyG2.
vstup je tam JSON_parser alebo TEXT_parser. Tazko sa taketo veci skumaju na simulatore, takze som si objednal Arduino DUE a ked pride tak sa nan pozriem blizsie.
Na prvy pohlad sa prijate znaky ukladaju do cs.bufp a dlzka retazca je cs.linelen.
nasledne ho funkcie _dispatch_command a _dispatch_kernel spracuju.
Ak prikaz zacina "{" tak sa pouzije json_parser() . Ak zacina niektorym z "$?Hh" tak ide do text_parseru.

Takze "textovo" sa spracuvaju len konfiguracia a statusy, nie priamo G kod :(
Bolo by treba naprogramovat nejaku alternativu pre _json_parser_kernal(char_t *str), ale blizsie to budem studovat az ked mi pride hardware.
Mex
Příspěvky: 10288
Registrován: 6. 2. 2014, 10:29

20. 2. 2015, 3:33

Ne. Textově se zpracovává i G-kód.
Můžeš tam postat např. ze sériového terminálu
G0 X100 Y200
a osy se rozjedou.
Uživatelský avatar
slezak77
Příspěvky: 1152
Registrován: 1. 6. 2012, 6:45

20. 2. 2015, 5:47

bronek999
Pokud jej máš objednaný z Chiny a vyloženě by jsi chtěl se tím zabývat, tak jsem ochoten Ti jej zapůjčit, u mne to zatím skončilo do té doby než s tím opravdu někdo nevymyslí něco co pojede v poho a pořád. Sic nevím kolik by stál takový pidi balíček k vám na Slovensko, ale snad by to nebyla nějaká darda.
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

20. 2. 2015, 7:28

Jasne ze z Ciny. U nas to stoji 35-50EUR, z ciny to pride za 14. Akurat ze tam maju novy rok tak asi to tak skoro neposlu.
Ale mozem si ho pozict od znameho, niekedy buduci tyzden. Ale vdaka za ponuku.
Este musim pohladat redukciu JTAG-20-10 pre ATMEL SAM-ICE. Pripadne aspon kabel s takym konektorom, dost malo rozsirenym 0.05"
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

25. 2. 2015, 2:45

Tak uz mam Arduino Due doma. Nakoniec som vyuzil redukciu k JTAGICE3, pohladal kde je ktory PIN a za 15 minut to uz bolo aj zapojene.
Nakolko doteraz som GRBL pouzival s vlastnym frontendom, tak nemam skusenost akym sposobom komunikoval s nadradenym systemom.
Navyse nech hladam ako hladam tak nemozem nikde najst zvysnu ATMega328.
Nejake vzorky AtMega168 mam.

Zaujima ma ci starsie verzie GRBL (co sa vosli do 16kB FLASH) komunikuju rovnako ako nova verzia 0.9 ?????

a taktiez by som rad vedel ktory frontend pracuje s GRBL spolahlivo, aby som ho mohol skusat s TinyG2

Na skusku som stiahol Zapmaker grbl controller...
Uživatelský avatar
packa
Příspěvky: 6935
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

25. 2. 2015, 5:32

zapmaker s grbl chodí dobře , ještě by měl dobře chodit JCNC , ten by snad měl chodit i s tinyG , ale mě nejde
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

26. 2. 2015, 7:15

Teraz som vyskusal JCNC. Povodne som ho hned zavrhol kvoli nemeckemu povodu. Nie som rasista, len neviem nemecky a pripadne problemy nechcem prekladat z nemeckeho fora.
Po prvom zapnuti sa spojil s TinyG2. Aj pohyb sipkami fungoval bez problemov. Ked som nacital nejaky NC kod tak sa mi nastroj postupne stratil kamsi do neznama.
Vsimol som si ze nikdy nedojde k znizeniu polohy XYZ. Zeby chcel relativne suradnice? Pouzil som NC kod generovany pre GRBL.
Skusil som stiahnut postprocesor pre Aspire - TinyG_Arc_mm.pp, vygenerovat novy kod a zda sa ze vsetko ide ako ma....

teda az na to ze rychlost V ukazuje 240mm/s.... Asi by tam malo byt mm/min


Opat ma napadlo ze toto zrejeme nebude smer pre mna. Nemam pri masine miesto pre PC. A predstava ze budem niekde behat mysou uz vobec nie.
Este tak dotykovy monitor je ako tak pouzitelny. Mozno nejaka kombinacia zapmaker GRBL controller beziaci pod raspberry Pi + touch monitor. Ale to tiez nevidim ako riesenie pre masy....
Uživatelský avatar
packa
Příspěvky: 6935
Registrován: 7. 2. 2007, 6:42
Bydliště: Královehradecký kraj

26. 2. 2015, 8:51

bronek999 píše:Teraz som vyskusal JCNC. Povodne som ho hned zavrhol kvoli nemeckemu povodu. Nie som rasista, len neviem nemecky a pripadne problemy nechcem prekladat z nemeckeho fora.
Po prvom zapnuti sa spojil s TinyG2. Aj pohyb sipkami fungoval bez problemov. Ked som nacital nejaky NC kod tak sa mi nastroj postupne stratil kamsi do neznama.
Vsimol som si ze nikdy nedojde k znizeniu polohy XYZ. Zeby chcel relativne suradnice? Pouzil som NC kod generovany pre GRBL.
Skusil som stiahnut postprocesor pre Aspire - TinyG_Arc_mm.pp, vygenerovat novy kod a zda sa ze vsetko ide ako ma....

teda az na to ze rychlost V ukazuje 240mm/s.... Asi by tam malo byt mm/min


Opat ma napadlo ze toto zrejeme nebude smer pre mna. Nemam pri masine miesto pre PC. A predstava ze budem niekde behat mysou uz vobec nie.
Este tak dotykovy monitor je ako tak pouzitelny. Mozno nejaka kombinacia zapmaker GRBL controller beziaci pod raspberry Pi + touch monitor. Ale to tiez nevidim ako riesenie pre masy....
Ahoj prosím tě odkud máš stažený tinyg , že se ti podařilo spojit se s JCNC ¨? tys to kompiloval nebo si stáhnul skompilovanou verzi ?
Dík
Packa
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

26. 2. 2015, 8:58

Stiahol som zdrojaky. Je tam subor projektu pre Atmel studio 6.2. Otvorit, skompilovat, nastavit debugger a spustit.
Vygeneruje to bin alebo elf vystupy. Neprogramujem to cez microUSB port (ATMEGA16) ale priamo cez JTAG konektor(aby som to mohol ladit).
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

26. 2. 2015, 1:09

Pravdepodobne sa vyberiem cestou integracie LCD a SD karty priamo do Arduino Due. Portovat na STM32 to po skusenosti s GRBL nechcem.
Nie je to dokonceny projekt, stale sa vyvija a nechcem dookola prerabat vsetky zmeny. Navyse aj medzi GRBL v0.8 a v0.9 nie je takmer nic spolocne.
Totalne prerobene od zaciatku, asi ziadna funkcia sa ani len nevola rovnako ako v povodnej verzii.

Nemam skusenost s radicom RA8775 pre LCD, ale vyzera lahko obsluhovatelny. Na rozdiel od doteraz pouzivaneho SSD1963 sa da ovladat cez SPI, hardverovo kresli ciary,obdlzniky kruhy aj fonty takze ani s rychlostou nebude probelm cez SPI. Takze platformu som zvolil Arduino DUE + 7" LCD 800x480 s kapacitnym multitouch displejom a micro SD kartou.
Sofverovo to chcem napisat tak aby to bol samostatny modul a v existujucich zdrojakoch len volat inicializaciu povodneho TinyG2 a samotne jadro _controller_HSM();
displej http://www.aliexpress.com/item/7-7-0-in ... 68806.html je prekvapivo dobre dokumentovany.
Okrem napajania staci pripojit SPI pre displej,SPI pre SD kartu a I2C pre dotykovy kontroler, cize mozno 10 "kablikov".
Po skusenostiach s minulymi projektami vidim najvacsi problem najst vhodnu krabicku :(
bronek999
Příspěvky: 521
Registrován: 6. 3. 2014, 6:50

13. 3. 2015, 12:24

Prvotna skuska upravy TinyG2
upravil som main.cpp (a zaobalil static procedury _controller_HSM() a _dispatch_kernel())

Kód: Vybrat vše

void DoCode(char *code)
{
	cs.bufp = (char_t *)code;
	cs.linelen=strlen(code);
	dispatch_kernel();
}


int main(void)
{
	// system initialization
	char *cmd;
	_system_init();

	// TinyG application setup
	_application_init();
	_unit_tests();					// run any unit tests that are enabled
	run_canned_startup();			// run any pre-loaded commands

	// main loop
	controller_run1();		//	toto prebehne len raz
	cmd = (char*) malloc(80);
	sprintf(cmd,"%s","G0 X100");
	DoCode(cmd);
	sprintf(cmd,"%s","G0 Y100");
	DoCode(cmd);
	sprintf(cmd,"%s","G0 X0");
	DoCode(cmd);
	sprintf(cmd,"%s","G0 Y0");
	DoCode(cmd);
	for (;;) {
		controller_run( );			// single pass through the controller
	}
	return 0;
}
Masina vyfrezuje stvorec.....

Stale cakam na dotykovy displej z ciny, takze slaby progress.
Medzitym ma napadlo ci nevyskusat pripojit data formou USB kluca.
Projekt pouziva externy makefile, takze ASF mi v tom zrejme nepomoze a vsetko by to chcelo (USB master) popridavat do projektu rucne.
SD karta cez SPI rozhranie by vyzadovala tak 10 suborikov, USB radovo viac :(
Odpovědět

Zpět na „MCU“