progetto standalone Arduino Uno SMD Rev3

edoardo89:
Ora volevo provare a fare a creare qualcosa di autonomo, insomma che funzioni senza essere attaccato al pc [...] qualcuno sa aiutarmi o indicarmi una guida? grazie!

Se hai solo bisogno di alimentarlo (da http://arduino.cc/en/Main/arduinoBoardUno):

Power
The Arduino Uno can be powered via the USB connection or with an external power supply. The power source is selected automatically.
External (non-USB) power can come either from an AC-to-DC adapter (wall-wart) or battery. The adapter can be connected by [i]plugging a 2.1mm [b]center-positive[/b] plug into the board's power jack[/i]. Leads from a battery can be inserted in the Gnd and Vin pin headers of the POWER connector.
The board can operate on an external supply of 6 to 20 volts. If supplied with less than 7V, however, the 5V pin may supply less than five volts and the board may be unstable. If using more than 12V, the voltage regulator may overheat and damage the board. The recommended range is 7 to 12 volts.
The power pins are as follows:
VIN. The input voltage to the Arduino board when it's using an external power source (as opposed to 5 volts from the USB connection or other regulated power source). You can supply voltage through this pin, or, if supplying voltage via the power jack, access it through this pin.
5V.This pin outputs a regulated 5V from the regulator on the board. The board can be supplied with power either from the DC power jack (7 - 12V), the USB connector (5V), or the VIN pin of the board (7-12V). Supplying voltage via the 5V or 3.3V pins bypasses the regulator, and can damage your board. We don't advise it.
3V3. A 3.3 volt supply generated by the on-board regulator. Maximum current draw is 50 mA.
GND. Ground pins.
IOREF. This pin on the Arduino board provides the voltage reference with which the microcontroller operates. A properly configured shield can read the IOREF pin voltage and select the appropriate power source or enable voltage translators on the outputs for working with the 5V or 3.3V.

Se hai anche bisogno di una comunicazione con il pc senza fili:

oppure

Chiaramente le ultime sono un poco più complicate da implementare e sono solamente degli "spunti".
Dipende tutto da quello di cui hai bisogno! Dicci di più! :stuck_out_tongue:

PaoloP ha azzeccato il mio problema! adesso riprovo seguendo la guida che mi hai linkato! nel pomeriggio vi aggiorno se sono riuscito o meno.. grazie a tutti delle dritte! :slight_smile:

ok! allora ho risolto il problema del bootloader.. e seguendo questa guida sono riuscito a caricarlo con successo!
ora però il problema è caricare lo sketch.. nella guida dice di rimuovere il chip dall'Arduino, ma avendo una SMD ciò non è possibile! c'è un'altra strada? non vorrei dover comprare un nuovo Arduino..

Se hai uno standalone e vuoi caricare lo sketch tramite bootloader o togli il micro (cosa non possibile con la versione SMD) oppure ti procuri un'interfaccia USB-Seriale tipo --> http://www.robot-italy.com/it/usb-to-serial-converter.html
La puoi anche acquistare nello store ufficiale di Arduino (http://store.arduino.cc/ww/) o dove più ti garba.

PaoloP:
Se hai uno standalone e vuoi caricare lo sketch tramite bootloader o togli il micro (cosa non possibile con la versione SMD) oppure ti procuri un'interfaccia USB-Seriale tipo --> http://www.robot-italy.com/it/usb-to-serial-converter.html
La puoi anche acquistare nello store ufficiale di Arduino (http://store.arduino.cc/ww/) o dove più ti garba.

quindi non è possibile in alcun modo caricare uno sketch su un micro standalone con l'Arduino SMD!? posso smetterla di provare e riprovare?

Si lo puoi caricare ma senza bootloader caricando prima su Arduino SMD lo sketch "Arduino ISP" e poi, seguendo la guida di Menniti, sul secondo micro via ISP.
In questo modo però avrai sempre l'Arduino SMD impegnato a fare da programmatore ISP.
Il mio consiglio è quello di prendere un programmatore a parte, che può anche essere una altro Arduino "non SMD" :wink: o costruirtelo: sul forum ci sono esempi anche utilizzando gli ATtiny.

PaoloP:
Si lo puoi caricare ma senza bootloader caricando prima su Arduino SMD lo sketch "Arduino ISP" e poi, seguendo la guida di Menniti, sul secondo micro via ISP.
In questo modo però avrai sempre l'Arduino SMD impegnato a fare da programmatore ISP.

ok grazie! scusa ma perché una volta caricato il bootloader non posso più caricare lo sketch? cosa viene modificato?
ricapitolando quindi se ricreo il circuito che c'è nella guida (quello utilizzato anche per caricare il bootloader) e invece di caricare il bootloader, carico lo sketch, ottengo un atmega standalone con il mio sketch caricato?
ti chiedo scusa per le mie domande magari ripetitive, ma vorrei essere sicuro di quello che devo fare e magari del perché devo farlo :slight_smile:

Il bootloader è un piccolo programma che permette di caricare lo sketch tramite connessione seriale.
quando si resetta il micro o ci attiva l'alimentazione, la prima cosa che fa il micro è quella di controllare se è presente un bootloader. Se è presente gli passa il controllo. Il bootloader vede se sono in arrivo dati dalla seriale (uno sketch) e nel caso li legge e programma il micro di conseguenza. Se non sono in arrivo dati sulla seriale allora avvia lo sketch (se presente).
Se, invece, non è presente il bootloader, il micro esegue direttamente lo schetch registrato (in modalità ISP, perchè senza boot non è possibile caricarli via seriale).
Se non c'è lo sketch, perchè la memoria del micro è vuota, non fa niente.

Quindi, ricapitolando, per programmare un micro in standalone devi usare la programmazione ISP. Con la ISP puoi o caricare uno sketch (che varrà eseguito al reset o all'accensione) o un bootloader che ti permette di caricare uno sketch via seriale.
Se nel micro è presente il bootloader e carichi uno sketch tramite ISP questo viene cancellato.

Spero di essermi stato spiegato. :wink: <-- Licenza poetica!!

P.S. Alle 15 il foro chiude e riapre domani pomeriggio. :fearful:

ok, quindi sono due tecniche diverse! grazie :slight_smile:

comunque ho provato a caricare lo sketch blink.. ma il led lampeggia mooolto più lentamente di quel che dovrebbe.. circa 10 volte più lento
=(

Hai sbagliato velocità.
Che quarzo usi?
Hai creato una nuova Board per il quarzo da te usato (se diverso da 16MHz) o per l'oscillatore interno?

Una volta caricato il bootloader sul micro stand-alone puoi usare anche lo stesso Arduino per inviargli uno sketch via seriale, nella Guida è spiegato anche questo... :wink:

sì ho visto :slight_smile: ma (correggimi se sbaglio :wink: ) per caricare via seriale dovrei rimuovere l'atmega dell'arduino no? purtroppo prima di capirci effettivamente qualcosa ho ordinato l'arduino senza prestare attenzione alla sigla smd :~

PaoloP:
Hai sbagliato velocità.
Che quarzo usi?
Hai creato una nuova Board per il quarzo da te usato (se diverso da 16MHz) o per l'oscillatore interno?

ho inserito un quarzo da 16MHz, come descritto nella guida.. l'ho seguita passo passo, non capisco cosa ho sbagliato.. (utilizzo l'IDE 1.0.3 non so se può influire)

riguardo la programmazione seriale leggiti il paragrafo "una strana scoperta...."

Dunque se hai programmato con una board virtuale a 16MHz ed ora il blink va lentissimo significa che il quarzo non sta oscillando: pin sbagliati, mancano o sono errati i due C di compensazione, oppure non li hai messi a massa. Insomma sembra che effettivamente il micro sia programmato a 16MHz ma stia lavorando senza quarzo esterno, quindi con l'oscillatore interno a 1MHz

ho riprovato, facendo attenzione ai collegamenti del quarzo ma niente da fare, continua ad essere lento..
i collegamenti dovrebbero essere corretti.. i pin 9 e 10 del chip collegati ai pin del quarzo, e su entrambi i pin del quarzo un condensatore da 22 pF che va a massa
non so dove sbattere la testa =(

Il blink lo hai caricato via seriale o via ISP?
Quando hai caricato il bootloader che board virtuale hai usato per la procedura ISP?

Sembra che non abbia modificato i fuse, quindi è probabile che abbia sbagliato board quando ha caricato il bootloader.

sì!!! sono riuscito!!! :smiley: credo di aver fatto un po' di confusione tra board virtuali, le sezioni per l'IDE 1.0.1.. chiedo scusa
in pratica il problema è che non selezionavo la board virtuale corretta e quindi non venivano modificati i fuses
ora il led lampeggia a dovere :slight_smile:

grazie mille per l'indispensabile aiuto! :smiley:

Scaricati l'IDE 1.0.3. hanno risolto vari bug della 1.0 e 1.0.1. :grin:

PaoloP:
Scaricati l'IDE 1.0.3. hanno risolto vari bug della 1.0 e 1.0.1. :grin:

fatto :smiley: grazie mille!