Salve ragazzi,
mi chiamo shamnadhoh e sono in procinto di acquistare Arduino per accumulare esperienza personale, essendo diplomato come ragioniere pregrammatore. Quindi conosco le basi del c#, ma sono ignorante dal punto di vista dell'elettronica.
Il mio progetto "definitivo", dopo aver acquisito padronanza con Arduino, è quello di creare un cronometro (minuti-secondi-millesimi), collegando delle fotocellule ad un relè, e il relè ad arduino (se quest'ultimo riesce a capire se il relè è eccitato o no), oppure dopo del relè un interruttore (se è possibile, poichè come già citato non sono esperto di elettronica). Dal punto di vista della programmazione non dovrei avere particolari problemi, una volta fatta esperienza con i progetti base (tipo led che lampeggia ec...); in ogni caso ho pensato di utilizzare il c#, creando un'applicazione windows 32-bit in .net.
In pratica, il mio progetto consiste che quando una persona "attraversa" le fotocellule, il programma deve avviare un cronometro e, alla fine del giro, passando nuovamente "attraverso" le fotocellule, il cronometro si deve stoppare. Successivamente scrivere i risultati su un'ogetto di tipo Text che rimarrà sulla finestra per essere sempre visibile.
Quindi in sintesi:
E' possibile programmare Arduino attraverso il .net micro framework?
I coleggamenti elettronici (fotocellula-relè-interruttore) sono esatti, o comunque "fattibili"?
Definiti componenti elettronici da utilizzare, con quali propietà devo comprarli (Volts, Ampere ecc..)?
4)E' possibile controllare in tempo reale arduino tramite l'applicazione, poichè si ha bisogno di utilizzare il programma sul pc e non direttamente su arduino (forse mi sono espresso male!!!)
Scusate della lunghezza della discussione, spero di essere stato "alquanto" preciso ed aver rispettato le regole del forum essendo la prima discussione. Grazie in anticipo.
se per "programmare l'Arduino" intendi lo scrivere uno sketch in C#, la riposta è no. I programmi per Arduino sono scritti in un linguaggio simil C/C++ (Wiring). Se vuoi scrivere sketch direttamente in C#, usa il Netduino.
sono fattibili anche da chi ha poca dimestichezza con l'elettronica, basta "farsi le ossa" pian piano
questo dipende da cosa vuoi fare. E' una cosa che va valutata progetto per progetto.
puoi comunicare dal PC all'Arduino e viceversa, basta che tu sappia come gestire una comunicazione seriale sul PC col linguaggio che preferisci.
se per "programmare l'Arduino" intendi lo scrivere uno sketch in C#, la riposta è no. I programmi per Arduino sono scritti in un linguaggio simil C/C++ (Wiring). Se vuoi scrivere sketch direttamente in C#, usa il Netduino.
sono fattibili anche da chi ha poca dimestichezza con l'elettronica, basta "farsi le ossa" pian piano
questo dipende da cosa vuoi fare. E' una cosa che va valutata progetto per progetto.
puoi comunicare dal PC all'Arduino e viceversa, basta che tu sappia come gestire una comunicazione seriale sul PC col linguaggio che preferisci.
ok, grazie....quindi siccome voglio programmarlo in.net micro framework con c# express studio 2010, devo comprare NetDuino, che ha le stesse funzionalità di netduino, quindi posso applicare gli stessi progetti di arduino, giusto??
Il Netduino non è un prodotto originale Arduino e personalmente non lo conosco, per cui non so la compatibilità con l'Arduino.
Il sito è questo: http://netduino.com/
bhe....allora se compro netduino e il kit base arduino(bread board, resistenze, led ecc...) faccio la cosa giusta vero?? Successivamente dovrò vedere che componenti comprare tra cui fotocellule che fanno eccitare un relè e questo invia un segnale a Netduino ( credo) in modo da avviare il cronometro che svilupperò tramite .net framework in c#. Ho scelto c# per poter creare un'aaplicazione in modo da poter avviare/stoppare il cronometro anche dal programma, vedere in tempo reale il cronometro, e riportare i risultati a video. In ogni modo posso utilizzare gli stessi componenti base di Arduino che trovo nel kit base su Netduino poiche praticamente sono la stessa cosa, infatti cambia solo il linguaggio di programmazione vero??
NO!
si basano su due librerie differenti (wiring per arduino .net per netduino), e persino su hardware differenti: differente architettura e clock (8bit avr a 20MHz arduino, 32bit ARM a 48MHz)
sulla netduono FORSE ci fai girare linux, senza grafica e fronzoli vari.
vuoi un consiglio spassionato?
butta via il .net per lavorare a basso livello.
per creare una libreria che funzioni su molti micro, e (credo) pseudo-compatibile anche col PC, devi fare molto lavori di astrazione, e ogni astrazione rallenta. Lo stesso problema di java. Solo che su un PC, per amor di comodità con librerie grafiche e fronzoli vari te ne freghi di perdere un pò di prestazioni.
Su un microcontrollore le cose sono molto più toste, ogni clock è vitale.
quindi arduino perchè:
ti insegna ad ottimizzare il codice
con le librerie fai molto, ma è anche semplice lavorare con registri, interrupt, timer...
ti insegna il C puro, base di ogni linguaggio, e un poco di C++, che non fa mai male se non hai ancora compreso bene le classi (in C# ci sono i puntatori?)
costa meno. Il cuore dell'arduino, l'atmega, è un chip che costa 6€ ed è facile da montare anche su una breadboard o su un PBC, insomma con meno di 10€ ti fai un clone arduino, utile quando imparerai a smanettarci per bene
ti insegna di più: tutte le librerie, e persino l'IDE, è opensource. Spesso mi capita di osservare (e modificare) come funziona una libreria, sopratttuo quando non funziona
la comunità. Arduino ha questo forum che è uno dei più utilizzati sull'argomento, in particolare la sezione italiana ha 36259 messaggi in 2299 discussioni... in UN anno! (migrazione di fourm), praticamente solo la sezione italiana è grande più di metà del forum di netduino
edit:
quello che vuoi fare
Ho scelto c# per poter creare un'aaplicazione in modo da poter avviare/stoppare il cronometro anche dal programma, vedere in tempo reale il cronometro, e riportare i risultati a video.
si fa tranquillamente con arduino, e processing, o c#, o java, o VB, o php, insomma quello che vuoi, lato PC.
Vabbene ragazzi, vi ringrazio delle informazioni. Ad ogni modo ho acquistato il NETduino e un kit base con bread board e componenti varie. Mi sono orientato sul netduino poichè sono interessato al c# ed il .net framework. Spero che, pur avendo comprato un prodotto della concorrenza, mi potreste aiutare dal punto di vista logico/elettronico, poichè Voi siete molto in gamba ed molto esperti. Vi ringrazio di cuore, spero di poter contare sul vostro aiuto per il completamento del mio progetto. Ci sentiamo tra qualche giorno quando avrò ricevuto i componenti.
difficile, è un pò come cercare aiuto per riparare una macchina su un forum di motorini... però a novembre uscira la arduino DUE che sarà molto simile alla netduino, dacci qualche mese per lavorarci sopra e poi ti ripariamo la macchina
ciao
Vedo inutilmente complicato la constellazione fotocellula relé interuttore perché il relé ha bisogno di tempo per chiudere.
Si puó collegare la fotocellula diretamente al Arduino /netduno.
Ciao Uwe
si basano su due librerie differenti (wiring per arduino .net per netduino), e persino su hardware differenti: differente architettura e clock (8bit avr a 20MHz arduino, 32bit ARM a 48MHz)
Non è per fare il pignolo ma il clock di Arduino è a 16 MHz
.NET micro Framework non lo conosco però se è una versione fatta per le mcu a rigor di logica lo avranno studiato per renderlo un minimo performante. Ovvio che non è C molto legato all'hardware nè tanto meno Assembly, però abbinato ad una mcu ARM a 32 bit un po' di spreco ce lo si può concedere
difficile, è un pò come cercare aiuto per riparare una macchina su un forum di motorini... però a novembre uscira la arduino DUE che sarà molto simile alla netduino, dacci qualche mese per lavorarci sopra e poi ti ripariamo la macchina
Esatto, questo è il forum di arduino...di cosa si dovrebbe parlare??
La arduino DUE ha un core ARM Cortex-M3 che è molto più attuale e performante di un ARM7.
Imho la DUE sarà più del quadruplo più performante di una netDuino. solo a livello hardware