mercoledì 19 maggio 2010

Timer Bromografo e Novità

Purtroppo il nuovo sito è sempre in beta, lo shop non è attivo al 100%, ma sto inserendo molti contenuti e molte cose interessanti.




E tanto altro sui dispositivi, inoltre sto portando a termine un percorso suddiviso in diverse tappe in cui spiego come fare i circuiti stampati a casa propria. Questo percorso è suddiviso in:


Esposizione (da questa fase mi è venuta in mente l'idea di creare un timer per bromografo)


Foratura (in fase di sviluppo)

Insomma date un'occhiata e fatemi sapere qui cosa ne pensate, se trovate errori mi farebbe piacere ricevere una mail in cui scriverete cosa ho sbagliato.
Buona lettura (se ne avrete voglia) ;P

giovedì 6 maggio 2010

Trasferimento Blog

Scusate, è tanto che non scrivo perchè sono impegnato con un'altro sito, dove potrete trovare dei nuovi tutorial e molte altre spiegazioni, partendo dal pcb etching fino ad arrivare al protocollo i2c.
Appena il sito sarà up posterò vi darò l'indirizzo :D

domenica 14 marzo 2010

Un paio di Controller per Arduino

Ci sono vari metodi per mandare degli input ad Arduino, sicuramente con i controller ideati per i videogiochi il divertimento è maggiore!
Il primo con cui mi sono interfacciato è stato un controller Wireless della PlayStation 2.
Qui, ovvero nel Playground italiano del sito Arduino.cc, troverete una piccola guida con schemi e le cose che ho modificato per far funzionare la manopola della PS2.




Il secondo controller che ho avuto modo di utilizzare è il famosissimo Nunchuck per la Wii.



  • Come Procedere
Per prima cosa procuratevi un Nunchuck e una Board Arduino ( Cpt Obvious :D), poi procuratevi la seguente libreria.
Nei Nunchuck presi su dealextreme a meno di 5 euro la piedinatura è la seguente.

Marrone - GND
Rosso - GND
Giallo - 3V3
Bianco - CLK
Blu - DATA

Essendo il nunchuck un dispositivo che comunica tramite I2C andrà inclusa nel codice anche la libreria Wire.h (magari su questo protocollo creerò un post a parte che è importante).

La prova che ho fatto io con processing e arduino richiede i seguenti codici:

sabato 13 marzo 2010

Scrivere Bootloader ARDUINO Con UsbAsp (Windows Vista)

Dopo la rottura del mio arduino Mega sono rimasto bloccato nelle mie sperimentazioni e il mio "lavoro" non è più andato avanti.
Avevo anche un arduino diecimila non funzionante, o meglio la cosa che non funzionava era il chip.
Mi sono comprato un atmega168 e un paio di programmatori usbasp per poterci mettere il bootloader Arduino e quindi farlo funzionare.
Dopo giorni passati a maledire l'elettronica sono finalmente riuscito a flashareil bootloader dentro il chip e a riuscire finalmente a utilizzare questo Arduino Diecimila! Non so come mai con le ultime versioni dei driver non funziona nulla.

  • Materiale Occorrente
    • Un programmatore UsbAsp preso su questo sito, è un kit, ma non servono particolari skill per montarlo. Basta seguire il video e la component list. Sul pcb c'è scritto tutto. Inoltre devo dire che gli admin di questo sito sono molto disponibili. Mi hanno risposto a tutte le mail anche dopo aver comprato. Cosa che non è successa con protostack.com.
    • Arduino Diecimila
    • Atmega168
  • Come fare su Windows Vista.
  1. Scaricatevi WinAvr, ma non l'ultima versione bensì questa versione, naturalmente installatela
  2. Di LibUsb dovete installare questa versione. Prima di installarlo dovete cliccare col destro su proprietà->compatibilità->Esegui il programma in modalità compatibilità per-> windows xp service pack 2. Se avrete installato tutto correttamente vedrete questa schermata:
  3. Ora scaricate i driver di usbasp da qui e connettete il programmatore.
    Scegliete l'istallazione manuale e fate la ricerca in tutta la cartella dei driver.
  4. Premete il tasto start, cercate il programma CMD poi cliccateci col destro e aprite il percorso file.
  5. Eseguite cmd come amministratore e riducetelo a icona per il momento
  6. Connettete il jumper di Arduino Diecimila su alimentazione Ext e alimentatelo con un generatore da 9 V
  7. I collegamenti tra UsbAsp e Arduino Diecimila sono i seguenti
    Arduino -> ISP10(porta dell'UsbAsp)

    1 (MOSI) -> 1
    12 (MISO) -> 9
    13 (SCK) -> 7
    Reset -> 5
    GND -> 4
  8. Se avrete fatto tutto bene potrete scrivere:
    C:\Windows\system32>avrdude -c usbasp m168
    e vedrete :
    Microsoft Windows [Versione 6.0.6000]
    Copyright (c) 2006 Microsoft Corporation. Tutti i diritti riservati.

    C:\Windows\System32>avrdude -c usbasp -p m168
    found 7 busses

    avrdude: AVR device initialized and ready to accept instructions

    Reading | ################################################## | 100% 0.01s

    avrdude: Device signature = 0x1e9406

    avrdude: safemode: Fuses OK

    avrdude done. Thank you.
  9. Adesso dovrete scaricarvi il Bootloader Arduino da qui
  10. Per scrivere il bootloader l'istruzione di AvrDude è questa
    C:\Windows\system32>avrdude -p m168 -c usbasp -U flash:w:\Users\xxx\Desktop\ATmegaBOOT_168_diecimila.HEX
  11. Ora collegate Arduino Diecimila con il pc e interfacciate l'IDE di Arduino, provate quindi lo sketch blink. Se il led sul pin 13 lampeggierà allora tutto sarà andato a buon fine.
Naturalmente ci sono tantissimi modi per usare UsbAsp, ma questo è il mio preferito.

martedì 2 marzo 2010

Oscilloscopio Low Cost + Aggiornamenti R2D2



Questo è l'oscilloscopio in kit che mi è stato regalato. Il costo è relativamente basso (23€ + spedizione su www.seeedstudio.com), ma lo sbattimento per montarlo è immenso.
Se non si hanno skill in saldatura SMD è altamente sconsigliato il kit di seeedstudio, mentre è consigliabile di prenderlo su www.sparkfun.com in cui da saldare ci sono soltanto i componenti dip.

Fortunatamente, anche se ormai non ci speravo più, quello che ho montato io FUNZIONA.
Non c'è stato bisogno di mettere il firmware nell'atmega1280, quindi basta "semplicemente" montare il kit e sarà tutto pronto per l'uso.

Ecco una foto da davanti...


eccovi le caratteristiche:
  • 5 Mega sample al secondo
  • possibilità di accoppiare il segnale in AC o in DC
  • banda massima 1Mhz
  • da 100mV a 5V per divisione
  • possibilità di mettere un trigger esterno
  • possibilità di catturare forme d'onda e salvarle nel buffer interno, per poterle poi leggere sul pc
  • possibilità di misurare la frequenza di segnali ttl
  • -alimentazione dai 9 ai 12 volt.

Sarebbe molto interessante se implementassero la FFT e magari uno metodo di switching efficace tra la modalità "misura frequenze" e la modalità "oscilloscopio".

Comunque devo dire che come oggetto merita di essere acquistato e dà veramente un sacco di soddisfazione riuscire a costruirlo.

Aggiornamento su R2D2

Avevo escluso a priori il comando tramite infrarossi per via dei disturbi esterni però dopo ques'ultimo esperimento mi ritengo abbastanza soddisfatto.


Per ora è soltanto un led in futurò sarà R2D2!

giovedì 18 febbraio 2010

L293B + Arduino Mega

Ho fatto cambiamenti importanti nel progetto di R2-D2, nella fattispecie sostituirò i 2 ponti H con l'integrato L293B.

A parità di numero di pin occupati vi elencherò i pro e i contro.

Ponti H

Pro:
  • Dimensioni
Contro
  • Replicabilità, ovvero è difficilissimo farne 2 che funzionino nello stesso modo.
  • Sopportano basse correnti.
L293B
Pro:
  • Sopporta fino a 2A per un tempo di 5 ms.
  • Pilota in maniera pressochè identica 2 motori in dc
Contro:
  • Dimensioni
  • Necessita di un dissipatore se lo si usa a piena potenza.
  • Consuma massimo 5W.

Sebbene i ponti H siano ottime soluzioni, ho deciso di adottare l'integrato L293B perchè è di gran lunga più affidabile.

Nel post precedente ho scritto che il motorino non partiva per via della poca corrente, mi sbagliavo, perchè dopo aver creato altri 2 ponti H mi sono reso conto che funzionavano in maniera diversa.

Mi spiego meglio: il motore con il primo ponte H partiva con una leggera spinta, il secondo ponte H faceva partire il motore da solo ma con una velocità leggermente inferiore al terzo.
Si capisce bene che è scomodissimo tarare i vari ponti H in modo che funzionino ugualmente.

Eccovi lo schema che ho utilizzato:


Ho collegato i pin 1,8,9,16 a +5v della board Arduino Mega.

Per non affaticare troppo il vostro PC alimentate la board con un alimentatorino a 9volt in DC, ma non fate girare il programma troppo a lungo perchè il regolatore di tensione sulla board si "sforza" parecchio.

Eccovi il codice che ho utilizzato

A breve le misure di corrente e tensione sui motorini.
Ecco un video dell'integrato all'opera:

lunedì 15 febbraio 2010

C1-P8

Salve a tutti, scusate se ho lasciato passare molto tempo dall'ultimo articolo, ma sono stato un po' impegnato.
Il progetto a cui sto lavorando adesso è veramente interessante, infatti sto cercando di automatizzare un C1-P8 (conosciuto nel mondo come R2-D2) trovato in un Happy Meal.


Come progetto è abbastanza complicato, il primo schemettino è questo:



Questo robottino avrà essenzialmente 2 modalità:

1. Telecomandato utilizzando gli integrati RX-2C e TX-2C che si trovano nella macchinine R/C da 2 lire della coop.

2. Va a giro e evitando oggetti.

In queste 2 modalità comunque il range sensor misurerà le distanze che verranno tradotte come variazione di colore.
Inoltre potrei implementare la modalità Demo in cui il robot sta fermo e fa uno show con colori. Ma vedremo, ancora è presto

  • IR-RANGE SENSOR

Ho creato l'IR-Range Sensor, con 2 diodi led uno ricevitore e un trasmettitore secondo questo schema:


Facendo alcuni test mi sono reso conto che funziona abbastanza bene, grazie a NetWorm (utente del forum di Arduino), che mi ha suggerito come isolare il ricevitore dalla luce solare, sono riuscito a migliorarlo. Infatti il ricevitore è bianco quindi l'involucro non filtra i raggi solari, se viene posto vicino ad una luce la sensibilità diminuisce molto. Rivestendo il ricevitore con dei negativi neri si riesce a filtrare la luce esterna.


Ed ecco alcuni risultati ottenuti utilizzando la mia Arduino Board come oscilloscopio.

Allontanando la mano dal sensore la tensione aumenta, mentre se la avvicino la tensione diminuisce.


  • Movimenti
Un ringraziamento particolare va a mio cugino che mi ha fornito degli elicotteri telecomandati che buttava via. Infatti ho potuto recuperare dei motorini in DC perfetti per il mio progetto come si vede da queste foto.




Per pilotare i due motori in DC ho costruito due ponti H veramente piccoli seguendo
questo schema.


Ho utilizzato 4 Transistor PNP BC33725, 4 Diodi 1N4148 e 4 resistenze da 1K. Tutto funziona alla perfezione escluso il fatto che la porta usb fornisce poca corrente per far partire in il motore, comunque non è importante perchè alimenterò tutto tramite una batteria più potente. Non ho utilizzato le porte logiche nel mio circuito perchè sono praticamente inutili e non mi permettono di pilotare la velocità con la PWM!

Ed ecco un video del primo risultato.

Ho finito anche il secondo ponte H e l'ho inserito nella seconda "zampa". Ora come ora devo scrivere le funzioni in attesa che mi arrivi il programmatore AVR e i vari microcontrollori che ho ordinato.

  • Alimentazione

Questa è "l'incredibile" batteria che utilizzerò, l'ho tirata fuori da un elicotterino telecomandato e i vantaggi grossi sono che, oltre a erogare 7.5V, ha un circuito esterno per la carica risparimando così spazio nel case del robottino.


Ora come ora sto scrivendo qualche funzione per gestire i motori e il sensore. Successivamente verranno il controllo remoto e la gestione del led RGB.

Visite