Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
SOMMARIO
UtilizzareEclipseperprogrammaresuArduino
RequisitiRichiesti
InstallazionediJava
InstallazionediEclipse
InstallazionediArduino
NOTASOLOPERUTENTIMAC
InstallazioneAVRGCC
InstallazionediAVRPluginsuEclipse
UtilizziamodeiWorkspacesgipronti
IlworkspaceArduinoTemplate
UtilizareArudinoTemplatecomebasepernuoviprogetti
ImpostareAVRperlediverseBoardseChips
CaricarelHEXtramiteEclipse
Integrareliberieesternealnostroprogetto
PROBLEMIRISCONTRATIESOLUZIONE
RIFERIMENTISUFORUMARDUINO
LIBRERIEARDUINOCOMPILATE
REVISIONI:CORE&TEMPLATE
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina1/
RequisitiRichiesti
Testatisolosu32bit
Windows:
EclipseIDEforC/C++DevelopersDownload
ArduinoSoftwarev22Download
AVRGCC20100110Download
Mac:
EclipseIDEforC/C++DevelopersDownload
ArduinoSoftwarev22Download
AVRGCC20100115Download
Linux:
EclipseIDEforC/C++DevelopersDownload
ArduinoSoftwarev22Download
AVRGCCFornirabreveguidaperlinstallazione,segiinstallatomeglio
Eclipse(validopertuttiisistemioperativi):
AVRPluginhttp://avreclipse.sourceforge.net/updatesite/
JavaRuntime:
NecessarioperEclipse(versione5.0osuperiore)SitoInternet
NOTE:
Perleinstallazioni,usateipercorsididefault,altrimentipotreteaveredei
probleminellinstallazioneenellaconfigurazione.IoperquantoriguardaEclipse,
lotengoallinternodellacartellaApplicazionisulMaceinveceArduinosuWindows
lhocopiatosuc:\;inpraticapercomoditisoftwaredovenonavevoobblighi
dellacartelladidefaultlihosistematiamiopiacimento.Nondovrebberoesserci
problemiinquanto,viforniscoiWorkspacediEclipsegiprontiallutilizzo,
configuratiinmododarilevareinautomaticoipercorsienomideiprogetti.Unica
consigliochepossodarediusarenomidicartellesenzaspaziocaratteri
particolari,lemieiimpostazionidiseguitopercapircimeglio:
Windows>C:\Users\antwal\workspace\
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina2/
Mac>/Users/antwal/Eclipse/
Linux>/home/antwal/eclipse/
InstallazionediJava
Puntomoltosemplice,vistochetuttigiloabbiamoinstallatosulpc,quindipasso
oltre,altrimentiunavoltascaricatodalsitoseguiteglistepavideo.
InstallazionediEclipse
Pertuttietreisistemioperativiaveteunfile.TAR.GZ,bastaestrarreilfile;
sumacintegratonellOSiltool,quindinessunproblema,sulinuxidem,peralcune
distropotetefarlodalterminaletramitetarzxvfnome.tar.gz,pergliutenti
windowsscaricateviWinRAR,dalsitoufficialelink.Unavoltacheaveteestratto
larchivioavreteunacartelladinomeeclipse,potetespostarladovevifapi
comodo.
Unconsigliodapartemia,gliutentiWindowspreferibiledirettamentesu
C:\,pergliutentiMac,direttamentedentro/Applications/egliutentiLinuxsu
/usr/local/oanchesu/home/<utente>/.DimenticavoalprimoavviodiEclipse,vi
chiedeilpercorso,didefaultdeiworkspace,impostateloespuntatelacheckboxin
modochenonvelorichiedeinfuturo.
InstallazionediArduino
Perlinstallazione,potetefareriferimentoanchealpassaggioprecedente,soltanto
chepergliutentiMac,avreteunDMGconlapplicazionegiprontadaspostare
sulleapplicazioni.
NOTASOLOPERUTENTIMAC
PerreperirelelibreriediArduino,dovrete:
1. AprireilFinder
2. CliccaresuApplicazioni
3. TrovareeselezionarelapplicazionedinomeArduino
4. CliccarecoltastodestrodelmousesopraArduinoecliccaresuMostra
contenutopacchetto
5. AprirelecartelleContents>Resources>Java
Perlelibreriev22diArduinoandaresu:
1. Cartellepartendodalpunto5precedente:hardware>arduino>cores>arduino
2. Copiatetuttiifiles,trannemain.cppinunaltracartella,adesempiosu
ScrivaniadentrounacartelladinomeArduinoCores.
Perlelibrerieaggiuntive,tipoSD,Ethernet,ecc...
1. Cartellepartendodapunto5precedente:libraries
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina3/
Comeperleliberiev22,potetefareunaltracartellasuScrivaniadinome
ArduinoLibsecopiatedentrotuttelesottocartelle
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina4/
2.
InstallazioneAVRGCC
QuinelcasodiWindowseMac,linstallazioneautomatizzata,tramiteinstaller,
quindiseguiteipassaggienoncambiatelecartellediinstallazionechevengono
fornite.
PergliutentiLinux,perchihaSuse,Ubuntulinstallazionepossibiletramitela
gestionepacchetti(synaptic,yast),inaltricasiperchicomemelovolessefarea
mano,abrevefornirlaguidaallegataaquestodocumento.
InstallazionediAVRPluginsuEclipse
ComeprimacosaapriteEclipseespostatevisuHelp>InstallNewSoftwares,come
dascreenshot:
Appenaavretecliccatoavrete,unanuovafinestra,quidovretecliccaresulbottone
Add,chesitrovaadestradellafinestaeinserirequandosegue:
Name:AVRPlugin
Location:(illinkchetrovatesullaprimapaginadellaguida)
TerminatofateclicksulbottoneOK,vitornerallaschermataprecedenteeil
softwareinizierascaricaredalsitofornitolelencopacchettinecessari,voi
dovretesoloselezionareilpacchettoprincipalesenzaisorgenti:
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina5/
PoibastafareNext,daquiinpoivipartirlaproceduraguidata,cda
accettarealcunicampiperinfinearrivareallachiusuradellafinestra.
Unavoltachiusalafinestradovrebbecomparirviunaltrafinestrainfondoal
programmaconlavanzamentodeldownloaddelpacchettocheabbiamoselezionato.Il
procedimentononvelocissimoerichiedetempo,allafinevichiedertramiteuna
finestradidialogoilriavviodiEclipse.Effettuateloevedretechenelmenavrete
unanuovocampodenominatoAVR.
UtilizziamodeiWorkspacesgipronti
Persemplificarviillavorohopreparato2workspace,dautilizzareconEclipse,il
primosololelibrerieArduinov22,ilsecondountemplatediprovaperlanostra
applicazione.
Primadituttoscaricateiduefilesnecessari:ArduinoCoreeArduinoTemplate
Trovateifilesdascaricarequi,dentrolacartellaEclipse,scaricaresemprele
versioniaggiornate.
Oraunavoltascaricatiifilesestraetelisuldesktop,inmododaavereledue
cartelleaportatadimano,inomisonoArduinoCoreeArduinoTemplate.Questedue
cartelledevonoesserespostateallinternodellacartelladeiworkspacesdi
Eclipse,precedentementeimpostataduranteilprimoavviodelsoftware.
AdessodoveteaprireEclipsesegiapertononcisonoproblemiespostavi
sullatosinistrodentroallareaProjectExplorer,cliccateconiltastodestro
delmouseecliccatesuImport,poiselezionateGeneral>ExistingsProjectsinto
Workspaceavreteunaschermatacomelaseguente:
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina6/
OracliccatesuNexteavreteunanuovafinestra;inaltoallanuovafinestra
cliccatesuBrowse...eselezionateilpercorsodeiWorkspacesdiEclipse,appena
terminatoavretenuovanuovafinestra,coniworkspacesdaimportarecomela
seguente:
Iogiavevoiprogettiinseritieperfarviunesempionecaricoaltri,comunqueil
discorsononcambia;poifareFinish.Aquestopuntonellapartesinistradi
EclipseinProjectExplorervicomparirannoentramiiworkspaces.
Aquestopuntononcirestachesistemarliperfarlifunzionareconilvostro
PC,comeprimacosadobbiamofareunCleanProject,poiunRefreshinquestomodo
ilvostroEclipse,sistemaifilesdicompilazioneMakefileconivostripercorsi.
IniziamosubitodalprogettoArduinoCore,quindicomehodettobisognafare
entrambiipassaggi,perfarloselezionateilprogetto,poicoltastodestroeseguite
leoperazioniperaggiornareiprogetti:
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina7/
AppenaterminatiipassaggidiCleanProject,Refresh,cliccatesuBuild
Project,senonvisonoproblemi,comevedetesopradallasecondaimmaginevi
compare una cartella denominata Archives con un nuovo file, chiamato
libArduinoCore.a.Dimenticavodidirvicheinquestoworkspace,iohogiincluso
lelibreriediArduinov22,quindiincasouscisseronuovelibrerieevogliate
compilarle,vibastafareunCleanProject,poieliminaretuttiifilescontenuti
inquestoprogrettointendoifiles.C,.CPP,.Hespostareocopiarequellidelle
nuovelibrerie,poivibastafareBuildProjecteavretelanuovalibreria
compilata.Ultimacosaprimadiprocedereoltre,tuttiipercorsirelativial
compilatoreAVRGCC,vengonotrovatiautomaticamentequandoabbiamoinstallatoAVR
PlugininEclipse,quindiancheirelativifileperlacompilazionevengono
automaticamenteaggiornatiallinternodelprogetto.
OrapassiamoallasistemazionedelprogettoworkspacedinomeArduinoTemplate,
quilacosaunppicomplessa,abbiamoglistessipassaggidiArduinoCore,
quindiquantoabbiamofattofinoadora,maconladifferenzachequestoworkspace
noinonlouseremoperscrivereunprogrammaoperlasciarlocompilato,ciservir
solocomebaseperinuoviprogettichesvilupperemo;inoltrequipossiamoincludere
lelibrerieesternecomeadesempioSD,Ethernet,SPI,USBShield,ecc....
IlworkspaceArduinoTemplate
Passiamoallasistemazionedelworkspace,quindicomeabbiamofattoprimaper
ArduinoCore,loselezioniamoedeseguiamoCleanProjecteunRefresh,poici
fermiamounmomento,inquantoilBuildProjectnonlopossiamofaresubito.
Dobbiamosistemarealcunecose,laprimachecdaincluderenelprogettola
libreriadiArduinoCorecheabbiamoprecedentementecompilatolibArduinoCore.a,
quindivispiegocomeintegrarla,intresemplicipassaggiepoiavvieremola
compilazionetramiteBuildProjectperverificaresetuttosiacorretto.
1. PrimadituttospostarsisulprogettoArduinoCoreeaprirelacartella
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina8/
virtualeArchives,quindiselezionareilfilelibArduinoCore.apoicol
tastodestrofarecopiaCopy.
2. SpostarsisulprogettoArduinoTemplate,selezionandoproprioilworkspacee
nonlecartellealsuointerno
3. FaretastodestroepoiincollaPaste,inquestomodoavremolalibreria
copiatadentroallacartelladelnostroworkspace
Diseguitoleimmaginiperrenderelidea:
Passggio1
Passaggio2
Passaggio3
AdessopossiamoeffettuareilBuildProject,senoncisonostatierrorieavete
seguitotuttiipassaggiotterretequestorisultato:
Incasocontrarioinfondoallaguidavilascioiriferimentipereventuali
problematiche,inmodochepossiamorisolverle.
Nelcasoinvece,avreteunrisultatocomeilmio,dovretefaresoltantounClean
Projectelasciarequestoprogettopulito,cheuseretecometemplateperivostri
progetti.
UtilizareArudinoTemplatecomebasepernuoviprogetti
OravispiegocomeusareArudinoTemplatecomebaseounveroepropriotemplateper
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina9/
nuoviprogetti.Ilprocedimentomoltosemplice,perchigiutilizzasoftwarecome
EclipseoNetBeanspensochegisisianofattiunplidea.
Comeprimacosa,selezioniamoilworkspaceArduinoTemplate,poitastodestro
e poi copia Copy, successivamente clicchiamo sul bianco dellarea Project
Explorerinmododadeselezionaretuttiiworkspacesepoitastodestroincolla
Paste,quiabbiamounafinestradidialogo,dovecichiedeilnomedelnostro
workspace,quellodidefaultsempreCopyofArduinoTemplate,noiaquestopunto
bastacheinseriamounnomeinerentealnostroprogetto,adesempioGestioneLed
oppureMonitorSerialeecc..
AquestopuntoEclipse,replicatuttoilprogettoArduinoTemplateiunnuovo
workspace,perfadeglierrorichedobbiamocorreggerenoimanualmente.Per
correggerlibastacheeseguiamolaproceduraCleanProject,RefreshepoiBuild
Porject,maprimadiiniziarealavoraredobbiamocomunqueeseguireunClean
Project.InquestomodoEclipsecorreggetuttiipercorsieifileschesi
occuperannodellacompilazione.
Adessopossiamoiniziarealavorarealnostroprogetto.
ImpostareAVRperlediverseBoardseChips
Hoinseritoquestopassaggioqui,inquantoilnostrotemplate,lopossiamousareper
diversiprogetti,iohoconfiguratoiltemplateperlutilizzoconlaBoardoriginale
diArduinoconunATmega328giinstallato;perpossiamomodificarequestivalori
anchedopoaverclonatoilnostrotemplateperunnuovoprogetto.Perchivolesse
inveceusareiltemplatesempreperlastessaconfigurazione,pueffettuarequesto
passaggiodopochehaeffettuatoilpuntoIlWorkspaceArudinoTemplate,inquesto
modonondovrtoccarelaconfigurazioneognivolta.
Comeprimacosaselezioniamoilnostroprogettoacuidobbiamocambiarei
parametri,poifacciamotastodestroeselezioniamoinfondoalmenProperties
nellanuovafinestrasullatosinistroselezioniamoAVReloapriamo,quiabbiamo
duesottomen:
AVRDude
TargetHardware
Noncisonooperazionicomplessedaeseguire,inquantoquellochedobbiamoimpostare
sonosoloilmicrocontrollercheuseremoeilprogrammatore.Oraprimadispiegarvi
tengoaprecisareunacosadifondamentaleimportanza,pergliutentiWindows
possiamousarecomeprogrammatoreArduino,invecepergliutentiLinuxeMac
dobbiamousarecomeprogrammatorestk500v1altrimentiriceveremounerroredi
programmazioneoavolteunerorrecheilnostroprogrammatorenonrisponde,sulla
portaserialeindicata.
Passiamo oltre, selezionando AVRDude, qui subito sotto a Programmer
ConfigurationtroveretesicuramenteSTK500v1inquantolaguidalhoscrittasul
Mac,perpoterlocambiarebastacliccaresultastoadestraEditenellanuova
finestracheavremodavantiselezioneremodallalistalaterale(asinistra)ilnostro
programmatore,unavoltafattocambiamoilnomeSTK500v1,conilnostroperevitare
problemi,poiimpostiamolaporta/posizioneUSBelavelocitdellastessa.
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina10/
Perimpostarelaportamoltosemplice,vihofattoscaricarelIDEdi
Arduinoancheperquestomotivo,quindibastachelanciamolIDEdiArduinoevediamo
laportasullaqualeconnessoilnostroprogrammatore;pergliutentiWindows
sicuramentesarCOM??,pergliutentiLinuxeMacavrannolaposizione,come
/dev/tty.usbserial??oaltradicitura,annotiamoilpercorsopoiloimpostiamosul
Eclipse.
GliutentiLinuxeMacimposterannolaposizionecoscomelaleggono,senza
variazioninelmicasogiimpostatosu/dev/tty.usbserialA800evln,inveceper
gliutentiWindowsdovrannoscriverelaportainquestomodo//./COM??altrimenti
sescrivetesoloCOM??nonfunzioner.
Terminatalaconfigurazione,fateOK,perpoipassareaTargetHardware.
Quidobbiamoselezionareilchipinstallatosulnostroprogrammatore,nelcasonon
siatesicuridelmodelloedellafrequenzadiclock,potetetentareunLoadfrom
MCU,nellamaggiorpartedeicasiloriconoscedirettamentedalprogrammatore,nel
casoincuisifossesbagliato,impostatelomanualmenteeventualmenteleggendoil
datasheetdelmicrocontroller.
AllafinefateOKeaveteterminato.
CaricarelHEXtramiteEclipse
Quivisono2passaggimoltosemplici,unavoltascrittoilprogrammafateBuild
ProjectevigeneralHEXdopodicheselezionandoilprogetto,poitastodestro,
infondotrovateAVRenelsecondomenuUploadProjecttoTargetDevice,senon
vi sono problemi lo carica alla perfezzione, se invece avete sbagliato la
configurazioneoanchecomecapitatoame,aveteintegratodellelibrerieche
presentavanoerroriononeranocompatibili,lascritturavelaeseguepoiallafine
ricevereteunerrore.
Integrareliberieesternealnostroprogetto
Perintegrareleliberiealnostroprogettoipassaggisonodiversimanon
complicati,unavoltamemorizzatinoncisonoproblemi,infuturo.Comeprimo
procedimentodobbiamovederequalelibreriaintegrarenellanostraapplicazione,nel
casodellelibrerieforniteconArduino,bastacopiarelacartelladiriferimento
allalibreria,ioperlesempioutilizzerSPI;quindicispostiamosullacartella
checontienelelibrerieefacciamocopiaCTRL+CperWindows/Linux,CMD+CperMac,
comepassaggiosuccessivoapriamoEclipsesenonapertoecispostiamosulnostro
workspace/progetto al quale dobbiamo integrare la libreria. Per incollarla
allinternodelprogrettodobbiamoselezionarelacartellaprincipaleovveroilnome
delprogetto,poifaretastodestrodelmouseeincollaPasteoppuredirettamente
CTRL+VoCMD+V,inquestomodoavremoquestorisultato:
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina11/
OradobbiamosolodirealnostroprogettochelacartellaSPIcontenentela
libreriadeveesserecompilataechedeveanalizzareilcodicesorgente,quindi
avremmoaccessoatuttelefunzionidellaliberiaquantoeffettueremolincludedei
files.H.
Perquestopassaggio,bastaselezionareilprogetto,poitastodestrodelmousee
selezionareProperties,quinellanuovafinestrachevisualizzeremodobbiamo
sceglierelamendisinistraC/C++GeneralpoiPathsandSymbols.Nellanuova
schermatadobbiamoimpostarediversicampi,perpotersemprerendereilnostro
progettodinamicoequindicondividibileconaltrepersonesenzadoverognivolta
modificareipercorsi,iohoutilizzatolevaribilidiEclipseperrintracciarele
directory;quindipercaricareautomaticamenteilpercorsso,andremmoadutilizzare
unavariabiledinome${ProjName}.
OraandremmoadinserirelacartellaSPIinquestomodo/${ProjName}/SPI,
per gli utenti Windows il separatore del percorso cambia, quindi abbiamo
\${ProjName}\SPI.
Tornandoanoi,perognilibreriacheaggiungete,doveteinserireicampisu
IncludesinGNUCeGNUC++,poianchesuSourcesLocation.
Perpoterprocedere,cispostiamosuIncludesepoiinGNUCeclicchiamosu
Add,infineincolliamodentroilnuovopercorsoprecedentementesistematoe
spuntiamoIsaworkspacepathepoidiamoOK,evisualizzeretequantosegue:
OrafacciamolastessacosasuGNUC++,unavoltasistematoanchequestocampoci
spostiamosuSourceLocationeclicchiamosulbottoneAddFolder...,dalla
finestrachesiapreselezioniamolacartellaSPI,poiclicchiamoOK.Vediamo
subitochesuSourcefoldersonbuildpathcompareanchelanostracartellaSPI,
perfinirefacciamoOKinmododasalvarelenostremodificheetornareallo
sviluppodelprogetto.Unavoltasalvatoechiusalafinestradiconfigurazione
noteremosubitochelacartellaSPIcambiata,sembrachesiacomparsounsimbolo
blueconlaletteraC,questostaadindicarecheEclipseinfasedicompilazione
compileranchetuttalacartellaSPI.
VistochehoutilizzatolalibreriabasediArduinocoscomestata
preparata,allinternodiessadisonoancheunasottocartellacongliesempieun
fileditestodinomekeywords.txt,amioconsiglio,viconvienecancellarli
entrambiprimadicompilareocontinuarelaprogrammazioneereperiretalifiles
dallacartellaoriginale.
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina12/
Pereliminarlibastaselezionarlientrambiepoisuunodiessitastodestrodel
mouseedalmenuDelete.
Adessoilvostroprogettoprontoepossiamoinziareaprogrammare,di
seguitoilrisultatofinale:Ultimacosa,nelmain.cpppergliutentiWindows,
trovatelalineaHardwareSerialSerialconrelativocommento,inquantoho
riscontratoilproblemasolosuWindows,perpoternonvisualizzareglierorridi
tuttiiSerial,decommentatelariga,poiprimadicompilareladovetecommentare.
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina13/
PROBLEMIRISCONTRATIESOLUZIONE
Problema:Serial.???vienericonosciutocomeerrore
Soluzione:inserirenelprogettoinfasedisviluppoHardwareSerialSerial;
Problema:VedonellalistaproblemidiEclipse,migliaiadierroriewarnings
Soluzione:Tastodestronellafinestra,SelectAll,poidinuovomaDelete,
confermareeventualirichieste
Problema:Hoinseritounavariabilemanonlauso,compilamapoiAVRDudemid
errore
Soluzione:Commentalavariabilesenonlausiepoiriprova
Problema:AVRDudenoncaricalhex,dandoerroreallafine
Soluzione:Cistlavorandopercreareunelencodeivariproblemi,lamaggior
partelihocorretti.
Problema(niki77):
Percorsoerratosuambientewindows,relativoallalibreriaArduinoCore
Soluzione(niki77):
Risoltoaggiungendodoppioapicealpercorsodellalibreriain:
C/C++Build>Settings>AVRC++Linker>Libraries.
Scaricaretemplatev1.0.1.
Problema(lesto):
Errorenelmakefile,inambientearchlinux32bit
(avrgcc:error:unrecognizedoption'cref')
Soluzione:
NONDISPONIBILE:Inlavorazione
Problema(everlan):
problemasuArduinoTemplate.mapsembrachenonvienericonosciutootrovato
Soluzione:
InambienteMacsembravaessercideiproblemirelativiaipermessisulfile
hoeliminatoilfiledaltemplateinmodochevengacreatoognivoltachesi
eseguelacompilazionedelprogetto.
RIFERIMENTISUFORUMARDUINO
Perdomandeeproblemirelativiallaguidainquestionescrivetesulquestopost
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina14/
delforumdiArduinocheavevoapertoio:Cliccaqui
LIBRERIEARDUINOCOMPILATE
Nellacartellapubblica,hoinseritolelibreriediArduinoCoregicompilate,per
ognisistemaoperativosucuiabbiamotestatolaguida,questoperevitareaqualcuno
menoespertoproblemirelativiallalorocompilazione.Inomidelleliberiesono
<OS>_libArduinoCore_<VersioneArduino>.zip.
REVISIONI:CORE&TEMPLATE
ArduinoCore
v.1.0.0PacchettoinizialeperlacompilazionedellelibreriediArduinov22e
creazionefilelibArduinoCore.a
ArduinoTemplate
v.1.0.0PacchettoinizialeperlosviluppodiunprogettosuArduino
v.1.0.1Fixed:ProblemapercorsolibreriaArduinoCoreinambienteWindows
v.1.0.2Fixed:Problemaaggiornamento/creazionefileMAP.Ilfilestatorimosso
dal
template.
v.1.0.3Fixed:Disabilitatoinquantononvieneaggiornatoilpercorsodelfiledi
log
GuidarealizzatadaantwalLinkcartellapubblicaArudino
Pagina15/