Atmel Studio 6 telepítése és használata Arduino-val

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Avatar
Csoki
DrótVégénSzéndarab
Hozzászólások: 44
Csatlakozott: 2012. június 25. hétfő, 6:00

Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: Csoki »

Kezdő Arduinosként ki szeretném próbálni Atmel Studio 6 –ot, ugyanis már másodszor futok bele olyan problémába, ami szerintem egyértelműen az Arduino IDE fejlesztő rendszer hibája.
A C nyelvvel kapcsolatban van már előéletem, rendszeresen kell kisebb feladatot megoldanom másik C közeli fejlesztőeszközben, emiatt számomra ez szimpibb megoldás lenne, mint a BASCOM.
Leírom mit csinálta, hogyan, hátha az utánam jövőknek segítek vele.
Letöltöttem a progit: http://www.atmel.com/Images/as6installer-6.0.1843.exe
Telepítés után frissítettem a Tools/Extension managerrel. a 1863- ra
A beállítási instrukció:
http://www.jayconsystems.com/tutorial_detail.php?tid=7
http://www.jayconsystems.com/tutorial_detail.php?tid=8
http://www.jayconsystems.com/tutorial_detail.php?tid=17
De egyszerűbb, ha a videó verziót követjük:
http://www.youtube.com/watch?v=F74khQnh9pM
http://www.youtube.com/watch?v=qEcWR5EUNdk

Feltelepítés és beállítás után a D13 villogtatós programot simán eltudtam vele készíteni, és rátölteni az UNO ra. Az alap arduino utasítások simán működnek, fordíthatók, feltölthetők.
Arra már rájöttem, hogy az Atmel Studio nem szereti a magyar ékezeteket (2012 ???), szóval nem szerencsés ékezetes karaktert használni sem a file/project nevében, se az elérési útvonalban, és ide beleértem a felhasználói nevet is.
Beállítottam a project properties -ben az
-AVR/GNU C complier / Directories –ban a ArduinoCore utvonalát
-AVR/GNU C++ complier / Directories –ban a ArduinoCore utvonalát
-AVR/GNU Linker / Libraries –ban a „libcore” –t és a ArduinoCore utvonalát
- valamit a szükséges optimalizációs beállításokat is.
Az Arduino IDE belső (c:\arduino-1.0.1\libraries\*.h *.c *.cpp ) függvényeit átmásoltam a ArduinoCore –ba.
A számomra a problémák ott kezdődtek, amikor külső függvényeket akartam meghívni. Konkrétam az Arduino IDE felületén elkészített egyik működő alkalmazást akartam átültetni ide.
A külső függvény hívások esetén a fordító mindig hibával elszáll.
Error 1 undefined reference to `Wire'
Error 1 undefined reference to ` LiquidCrystal_I2C'
Van erre bárkinek is megoldási ötlete ?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Ezek külső függvénykönyvtárak, így - szerintem - ugynúgy kell odarakni mint a core.h és core.cpp függvényeket.

Pl. az Arduino-s mintával:

Kód: Egész kijelölése

#include <Wire.h>
 
void setup()
 {
   Wire.begin();        // join i2c bus (address optional for master)
   Serial.begin(9600);  // start serial for output
 }
 
void loop()
 {
   Wire.requestFrom(2, 6);    // request 6 bytes from slave device #2
 
  while(Wire.available())    // slave may send less than requested
   { 
    char c = Wire.read();    // receive a byte as character
     Serial.print(c);         // print the character
   }
 
  delay(500);
 }
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Az elérési út mindenféle úton-módon helyen macerás.
- csak angol ABC + számok lehetnek,
- jelek NE (+-/*!%),
- ékezetes betű, arab, cirill ejtve,
- szóköz talán (nem mindig) lehet.
A könyvtárak kereszthivatkozásait (linkelt könyvtárak?) nem szereti.... (pl. Desktop)
Avatar
Csoki
DrótVégénSzéndarab
Hozzászólások: 44
Csatlakozott: 2012. június 25. hétfő, 6:00

Hozzászólás Szerző: Csoki »

Igazatok volt. A filenév és projectnév nem szerencsés ha szóközt és kötőjelet tartalmaz. Újrageneráltam az egész projectet, és most már nem ad hibát a korábbiakra.
Immár újabb hibaüzit kapok :lol:

undefined reference to `twi_init' - de úgy látom ebbe többen is belefutottak már a neten.
Avatar
Csoki
DrótVégénSzéndarab
Hozzászólások: 44
Csatlakozott: 2012. június 25. hétfő, 6:00

Hozzászólás Szerző: Csoki »

Ha valaki szeretné az Atmel Studio -t használni, akkor találtam rá egy megbízható és relatív egyszerű módot.
Van egy Megunolink nevű progi, amelynek része egy external makefile, amivel az Arduinot egyszerűen használhatjuk az AS 6 alól.

http://www.blueleafsoftware.com/Resourc ... /Main_Page

A leírás alapján az illesztés könnyen megoldható.
Viszont van egy hiba a gyári Makefile -ben.
Az ARDUINO_LIBS = ..... részben az összes "\" jelet "/" -jel re kell cserélni. Persze idézőjelek nélkül értendő mindkét esetben.
Ezzel a megoldással simán működnek a kiegészítő könyvtárak is, nem úgy mint a korábbi postomban megadott módszerrel.

Egy nagyon fontos lényegi változásra hívnám fel a figyelmet :
Az Atmel Studo 6 esetében a kiegészítő függvények prototípusát deklarálni kell. Arduino esetén ezt látjuk:

void fuggveny()
{
utasitások1;
utasitások2;
}

Atmel Studio 6 esetén ez megmarad ugyanígy, csak 1 plusz sort kell beilleszteni a kódba a deklarációs részbe (void setup() elé).

void fuggveny();

Még egy rettentően fontos dolog: A létrehozott filenév csak angol karaktereket tartalmazzon, szóközt nem szabad használni.
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: SzLacus »

Van ebben a témában friss tapasztalata valakinek?
Nekem ez a hétvégém erre ment, de még nem működik. MegUnoLink telepítve, a dude.exe és .conf állományokra beállítva. A "/", "\" probléma a makefile-ban figyelembe véve, sőt az ARDUINO_LIBS =-nél jók is voltak a \-ek. Az ARDUINO_DIR =-ben bekerült a megfelelő path. A panel azonosító beállításokat megtettem. A makefile bemásolva az AS6 projektbe. Kb ennyit javasol a telepítési segéslet. Build. Nem működik, az include Arduino.mk-t nem tudja megtenni. Makefile-ben az include kiegészítve a MegUniLink-re mutató path-al. Bulid. Nem működik a path-ban található space-k miatt, de ezzel nem tudok mit kezdeni, hiszen a windows a program files (x86)-ot így space-okkal tartalmazza, ezt nem nevezhetem át. Akkor az Arduino.mk-t másoltam a projektbe, és a makefile-ben visszamentem a patk nélküli include utasításra. Build. Még mindíg nem az igazi, olyan útvonal megjelölések jönnek a hibaüzenetben, amiben e slash, backslash gond újra benne van. Bele lestem az Arduino.mk-ba, tele van slah-el. Csere mindre. Bulid. Javult a helyzet, de nem lett jó. Most már létrejött a BUILD-CLI könyvtár, ami öröm, de még mindíg nincs hex file, mert leáll a build. Most a depends.mk-t hiányolja. Ebbe a problémába a help alatti fórumozás alapján nem csak én futottam bele, de amennyire az angol tudásunk (az enyém és a barátomé a Guglié :-)) alapján meg tudom itélni, knkrét megoldást senki nem ír, inkább az ötletelés, és a "nekem működik" van ott leírva. Kivéve azt az egy javaslatot, amit még nem próbáltam, hogy a jó adatokkal feltöltött makefile-t másoljam vissza a MegUnoLink-be is, mondván, hogy tudjon a jó útvonalakról. Sok tetejét nem látom, (nem indoklom miért) de ki fogom próbálni.
Kerestem, honnan kéne bemásolni ezt a dependence.mk-t a projektbe, de ilyen nincs sehol. Az Arduino.mk-ba belenézegetve, nekem úgy tűnik, hogy ezt a fájlt a build során maga hozná létre, de valamiért nem teszi. Pillanatnyilag itt megállt a tudományom, mert annyira mélyen nem értem a .mk tartalmát, hogy minden sorról pontosan értsem mit csinál.
Aztán megnéztem a MegUnoLink blink példa könyvtárában mik is vannak. Azt lehet látni, hogy az AVR könyvtárban található 4 állományból 3 ide is be van másolva. Vagyis, bár a help leírás nem említi, nekem úgy tűnik, hogy a projekt könyvtárba nem csak a makefile kell.
Van-e valakinek tapasztalata, mi az ami nem jó helyre mutat, és aminek hiányában a build nem tud lefutni.
Avatar
Csoki
DrótVégénSzéndarab
Hozzászólások: 44
Csatlakozott: 2012. június 25. hétfő, 6:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: Csoki »

Lenne egy gyors tippem: A felhasználói neved nem tartalmaz ékezetes karaktert vagy szóközt?
Ha igen, akkor nyiss a gépeden egy új felhasználói fiókot e nélkül, és azzal próbálkozz.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: Robert »

Ha az elérési útban van szóköz, akkor a megadása válzozóként a "eleresi ut"-ként lehet. Azaz idézőjelbe rakással. Tippként, hátha...
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: SzLacus »

Akkor íme a tapasztalatok, hátha segít másnak is. Mert nálam most már működik, bár csak addig jutottam, hogy létrejött a hex fájl, ki még nem töltöttem a prociba.
Ha megnézitek a MegUnoLink blink példa programjának könyvtárát, akkor ott látszik, hogy a licensz fájl kivételével mind a három fálj oda van másolva a projekt könyvtárba. (makefile; Arduino.mk; ard-parse-boards) Erre szüksége van, mert a makefile, (amit az adott projekthez és környezethez illeszkedőre kell átalakítani a "\" jelekkel együtt, ha azok pont rossz irányba állnának) includolja az Arduini.mk-t minden path nélkül. Vagyis azt várja, hogy az ott legyen mellette. De a build ettől még elhasalt, mégpedig akkor amikor az object könyvtáron belül létrehozott LIBS könyvtárba nem tudott létrehozni könyvtárat. Nálam éppem a wire-t és bele az utility-t. Ezt az mkdir -p sorral próbálta megtenni sikertelenül. Az Arduino.mk fálj elején a változás jegyzékben erre vonatkozóan van egy utalás, hogy ezt a "-p"-t win nem szereti. Gondolom (nem néztem utána) azt jelenti, hogy hozza létre a szülő könyvtárat, ha az nincs. Létrehoztam neki, vagyis a libs alá a wire könyvtárat kézzel létrehoztam. Build, és láss csodát. Azonnal előállt a hex fájl, simán lefutott a build.
Összegzésül, követni kell a Csoki által linkelt segítségeket, és a projekt fájlba nem csak a makefile-t másolni, hanem a tesóit is. Macerálni viszont csak a makefile-t kell, a másik kettőt eredeti formájában hagytam, álljanak benne a slash-ek ahogyan csak akarnak. A sikertelen build után a libs-en belül létrehoztam kézzel azt a könyvtárat amit maga nem tudott, ez volt a kulcsa a dolognak. Hogy mi történik a buildelés során azt alul az output ablakban lehet követni, itt látszik az is, hogy min hasal el.
Vannak további kételyeim, mert ugyanígy ki akadhatott volna az Ethernet-en, aminek szintén van egy utility alkönyvtára, de nem tette. További kételkedésem oka, hogy ezek közül a külső függvény könytárak közül a blink nem használja egyiket sem, vagyis ha nem lett volna a makefile-ban megadva ebből csak egy olyan aminek nincs alkönyvtára, (hogy ne léphessen életbe a default) akkor ment volna a build? Majd meglátom mennyire működik stabilan, most csak örülök, és megpróbálom belakni a studio-t, megismerkedni a debug, szimu és minden egyéb segítségekkel, ami ott létezik. Ebben lehet, hogy majd újra felbukkanok kérdésekkel.
Pillanatnyilag ennyi, ha lesz újabb infóm, vagy nagyon nem állja meg a helyét amit itt most megosztottam, akkor folytatom.
Még valami a végére. Én most az Arduino boot loaderével szeretném használni AS6 alatt az Arduino-t. A célom az, hogy az arduino utasításait (kényelmével és korlátaival együtt használhassam, és mellé kapjam az AS6 debug, szimu, stb szolgáltatásait.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10213
Csatlakozott: 2005. december 9. péntek, 7:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: Robert »

A feltöltés nem megy AS6 alól. Ehhez javasolt az AVRDUDE-t használni, és a paraméterként megadni chipet, portot, HEX-t és EEPROM állományt.
Az AS6 ha tud external programmert kezelni, akkor jó esetben a paraméterátadás is menni fog...
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: SzLacus »

A feltöltés az pikk-pakkra ment a MegUnoLink-el, csak rá kellett mutatni, hogy melyik hex állományt nyomja ki. Előtte pedig tudatni vele, hogy hol van az arduino telepítve, abban ő már tudja, hol van a dude, és hozzá a conf. Már csak a portot kellett beállítani MegUnoLink-ben és már villogott is a LED a 13-as lábon. A MegUnoLink soros ablakában pedig jött a "Hello World" üzenet ahogyan azt a példaprogram sugallja. Szóval eddig működőképesnek látszik.
Más dolog, hogy szerettem volna szimulátorozni, de nem találja az elf kiterjesztésű fájl-t az obj könytárában, pedig ott van, én látom. :-(
Avatar
Csoki
DrótVégénSzéndarab
Hozzászólások: 44
Csatlakozott: 2012. június 25. hétfő, 6:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: Csoki »

A feltöltésre én mást javaslok.
http://www.youtube.com/watch?v=F74khQnh9pM
videó 3:15 - 8:30 időtartamban megmutatják, hogyan kell beállítani, hogy az AS6 avrdude-n keresztül töltsön fel.
Praktikusabb ezt használni, mert nem kell hozzá használni mindig a MegUnoLink -et.
A MegUnoLink igazán csak a makefile miatt kell. Na meg könnyen lehet vele mérési adatokat megjeleníteni.
Ha nem kell feltétlenül, akkor egyszerűbb az AVRDUDE a feltöltésre.
Ennek az egésznek (AS6 + MegUnoLink/makefile használata ezen a módon) számomra legnagyobb hibája, hogy a parancsok nincsenek kiemelve (HIGHLIGHT). Nem látszik helyből a szintaktikai hiba.
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: SzLacus »

Igen ez hasznos lesz, ha nem kell a feltöltéshez mást használni.
Ez a parancs kiemelés még fel sem tűnt, de valóban. Azokat a parancsokat amiket ismer (if, else, switch, case....), kikékíti, de amik az arduinoból jönnek, (Serial.print, .....) azok bizony feketék maradnak.
Bele toltam egy másik arduino forrást, és egy-két apróság előjött. Például a boolean az itt csak bool. Ezt egy keres/csere megoldotta. A függvény prototípus bemutatásnál pedig nem elég neki a függvény neve, meg az átadott argumentum típusok felsorolása, a neveket is bekellett copyznom. Utána viszont simán fordult, nem volt fájdalmas pofozgatós a dolog.
De ez a szimulátor ez birizgálja a csőrömet erősen. Majd megfejtem ezt is.
Még a kód hosszát azt szívesen összehasonlítanám, de szerintem sok különbség nem lehet. Majd erre is ráúszom.
Avatar
Csoki
DrótVégénSzéndarab
Hozzászólások: 44
Csatlakozott: 2012. június 25. hétfő, 6:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: Csoki »

Kicsit rövidebb kódot fordít, de nem szignifikáns a különbség.
Persze amikor cipőkanál effektus van, minden byte számít.
Számomra a gondot az Arduino IDE fordító bosszantó hibái okozták. (a lefordított kód több esetben sem úgy működött ahogy egy jól nevelt C proginak kellene)
A másik (videón dokumentált) módszer tartalmazza a HIGHlight lehetőségét, viszont ott nem minden libraryt lehetett használni az AS6 az integrálás után, és macerás az örökös állítgatása.
Avatar
SzLacus
Tranzisztorgyógyász
Hozzászólások: 175
Csatlakozott: 2012. május 20. vasárnap, 6:00

Re: Atmel Studio 6 telepítése és használata Arduino-val

Hozzászólás Szerző: SzLacus »

Ha jobban figyeltem volna akkor nem írom le, hogy a szimulációhoz szükséges fájl ott van a könyvtárban. Ugyan is a makefile, mindent a BUILD-CLI alá készít, a szimulátor pedig a projekt könyvtárban keresi. Egy másolás után elindult a szimuláció.
Meglesem Csoki által első variációban belinkelt macerásabb módszert a HIGHlite miatt, hátha rá lehet jönni, miként lehet a makefile módszerben is alkalmazni ezt a segítséget.
Válasz küldése