Show Posts
Pages: [1] 2 3 ... 28
1  Using Arduino / Sensors / Analog Magnetic Sensor with Arduino on: April 02, 2014, 12:57:58 pm
Hello,

I would like to use Arduino to detect the magnetic field of different magnetic pads.
To do this, I've bought a 1108 Phidget sensor which has a voltage output proportional to the applied magnetic field.

I've bought also three magnetic pads with different size and force (200g, 300g and 400g).

I connected +5V and GND and the voltage output directly to A0 analog input in my Arduino UNO but the sensor readings are not so accurate because I can't recognize the magnetic field of each magnets but only their presence.

I was looking for the senso suggested also in the Arduino playground: A1301.
Do you think it will be suitable for my application?

I just want to be able to recognize at maximum 6 different magnetic pads without errors.

Thank you a lot!
2  International / Hardware / Re: Generare codici con Arduino e resistori on: April 04, 2013, 10:23:00 am
Guglielmo, ti ringrazio per il tuo feedback!
Allora li provo anche io! smiley
3  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 07:57:14 am
Non è necessario che faccia il collegamento a caldo, posso spegnere e riavviare il sistema senza problemi.

Diciamo che, da questo punto di vista, comunque, la soluzione su RFID sarebbe quella più robusta e stabile perchè non richiederebbe connessioni tra Arduino e il modulo recante il codice.
4  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 07:31:07 am
EDIT: per l'RFID mi serve solo trovare dei tag molto piccoli e non a forma di tessera come quelli comunemente usati.

Valuta anche gli iButton, in particolare il DS1990, 1000 pz 1.30$, sono grandi come una piccola batteria, sono indistruttibili e dialogano tramite onewire autoalimentandosi dalla stessa.

Non hanno bisogno nemmeno della connessione a GND?
Funzionano soltanto con il pin settato per l'1-wire?
5  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 07:29:13 am
Mi sto documentando sugli iButton: avevo visto il sito la prima volta che li avevate nominati, ma non mi avevano convinto di più rispetto alla soluzione ATSHA204.
Ma ora mi sto ricredendo! smiley

Per quanto riguarda la soluzione RFID, stavo pensando di prendere direttamente il chip PN532 (lo stesso dello shield di AdaFruit) e fare il circuito direttamente senza usare lo shield, tanto i collegamento dovrebbero essere facili e dovrebbe venire a costare molto meno dello shield stesso.
6  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 07:03:57 am
Accidenti, ragazzi, ora ho almeno tre soluzioni tutte adeguate al mio caso smiley Non potevo sperare di meglio! smiley

- ATSHA204
- ATtiny
- RFID

Forse l'ultima ha un costo più alto per via del lettore che comunque sarebbe solo uno dato che andrebbe collegato solo ad Arduino, ma poi i singoli tag costerebbero pochissimo.
Dovrei però acquistare un programmatore per scrivere i tag con i codici che mi servono.

Attiny, in effetti, ha dimensioni piccolissime, più piccole dell'atmega in TQFP ed è abbastanza semplice collegarlo.
Stessa cosa dicasi per ATSHA204.

Ho l'imbarazzo della scelta smiley-grin
EDIT: per l'RFID mi serve solo trovare dei tag molto piccoli e non a forma di tessera come quelli comunemente usati.
7  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 06:45:49 am
RFID costa troppo per poterlo replicare n volte su n dispositivi da collegare. smiley-sad Sarebbe una soluzione, ma credo che i tag costino un bel pò e per utilizzarlo su molti device mi sa che occorre avere anche delle licenze di utilizzo. Anche se forse la storia delle licenze vale solo nel caso si voglia commercializzare qualcosa.

ATtiny sarebbe ottimale, ma è troppo grande e il tutto dovrà essere fatto in SMD, quindi, se non ci fossero problemi, preferirei optare per il chip ATSHA204 che è abbastanza piccolo.
Avevo pensato, inizialmente, di usare un atmega328 in SMD e fargli sparare il numero in continuazione attraverso la seriale dato che è una cosa che avevo già fatto e la programmazione dell'SMD mi era sembrata abbastanza agevole solo che il componente è già un bel pò grande (10x10x0.8mm) e richiede altri componenti aggiuntivi che occuperebbero solo spazio.

La soluzione basata su ATSHA204 mi sembra quella più agevole tanto, comunque, non devo fare il collegamento a caldo: prima collego e poi avvio Arduino che alimenterà il chip ATSHA204.
8  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 06:16:40 am
...
Quindi a me serve solo la funzione per la lettura del numero seriale che dovrebbe essere il numero che è già impostato nel chip e che è univoco, cioè, non ci saranno altri chip atsha204 con lo stesso codice, giusto?
...

Si, a te occorre solo la lettura del numero di serie UNIVOCO. Tutte le altre funzioni sono per altri scopi, come autenticazione di messaggi, ecc. ecc.

Ogni singolo chip ha un suo codice UNIVOCO.

Guglielmo

Secondo la tua esperienza, potrei avere problemi nel leggere il codice seriale con Arduino?
Nel sito di sparkfun, nei commenti, mi sembra di aver letto che ci potrebbero essere problemi sulla velocità di comunicazione tra i due device e sulla precisione.
Oppure questo è valido solo per l'uso delle altre funzioni che, comunque, a me non servono?
9  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 06:09:35 am
Questo PRNG usa un po' più componenti di quelli da te specificati:
http://robseward.com/misc/RNG2/

Ma a me non serve generare numeri casuali con Arduino, se ho ben capito cosa fa il circuito del link che mi hai postato.

Questo è quello che hai scritto inizialmente  smiley-razz:
Avrei una curiosità: secondo voi, è possibile generare codici univoci utilizzando solo dei resistori di valore diverso e solo uno o due pin di Aruino, digitali o analogici?

Secondo me, non ho spiegato bene quello che volevo fare all'inizio.
Cioè, non volevo intendere che volevo generare quei codici con Arduino, ma generarli con un circuito e leggerli da Arduino smiley Mi scuso per la confusione che ho fatto.  smiley-red

Mi spiego meglio: ho un Arduino UNO e poi dei circuiti a parte, magari inseriti in una black box, che poi collego ad Arduino.
I circuiti all'interno della black box devono essere in grado di comunicare un codice ad Arduino quando io li collego a quest'ultimo.
Il codice deve essere univoco in modo che io possa distinguere i vari circuiti che collego.
Il codice, quindi, mi viene dato dal circuito e non è generato da Arduino.
Inizialmente, avevo pensato di realizzare questi circuiti con dei resistori in modo da ottenere dei valori numeri diversi quando andavo a collegarli ad Arduino.
Poi, ho pensato che questi circuiti possono, in realtà, essere costituiti dal chip atsha204, come mi ha suggerito Guglielmo anche perchè la cosa sarebbe poco costosa; il tutto sarebbe accettabile se, come ho capito, per leggere il codice contenuto in ogni chip, mi basta usare la funzione generica per la lettura del codice seriale.
Per il MAC mi pare di capire che occorre scambiarsi dei pacchetti e la cosa non sarebbe ottimale, tanto a me serve solo ed esclusivamente riuscire a leggere un codice univoco una volta che collego il circuito al mio Arduino.
10  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 05:55:35 am
In crittografia, un MAC è un codice di autenticazione di un messaggio:
http://it.wikipedia.org/wiki/Message_authentication_code
Una specie di firma digitale.

Ti ringrazio Leo!

Quindi a me serve solo la funzione per la lettura del numero seriale che dovrebbe essere il numero che è già impostato nel chip e che è univoco, cioè, non ci saranno altri chip atsha204 con lo stesso codice, giusto?

Perchè dato che il MAC richiede uno scambio di dati, non posso prenderlo in considerazione dato che non devo interagire con un solo chip. Corretto?
11  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 05:51:46 am
Questo PRNG usa un po' più componenti di quelli da te specificati:
http://robseward.com/misc/RNG2/

Ma a me non serve generare numeri casuali con Arduino, se ho ben capito cosa fa il circuito del link che mi hai postato.

A me serve avere un numero elevato di circuiti separati da Arduino, ognuno con un codice univoco ben preciso, in modo da poter riconoscere ogni circuito una volta che io lo collego al mio Arduino.
12  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 05:47:20 am
@gpb01: è un'ottima alternativa, ma non capisco come funziona, cioè, non capisco se il chip ha già un numero univoco o se gli deve essere impartito prima via software.
Non capisco nemmeno se per leggerlo da Arduino c'è bisogno di avere delle informazioni sul chip o se con lo stesso codice su Arduino è possibile leggere più di un chip ATSHA204 senza distinzioni.

Ogni ic arriva con un codice unico a 72 bit (4.72 * 10^21 diverse combinazioni), in più hai 4.5k di EEPROM in cui memorizzare ulteriori informazioni a tuo piacere.
Con lo stesso codice per Arduino, vedi libreria linkata da Sparkfun, leggi tutte le key che ti pare.

Si, la stavo leggendo solo che non capisco a cosa serve il MAC Challenge perchè avevo capito che il numero univoco fosse il numero seriale.

Cioè, pensavo che potevo accedere al valore del numero univoco contenuto nel chip già solo con la funzione serialNumberExample().

E' corretto o sto facendo degli errori nella comprensione del codice?
A cosa serve il Mac Challenge?

Code:
const int sha204Pin = 7;

atsha204Class sha204(sha204Pin);

void setup()
{
  Serial.begin(9600);
  Serial.println("Sending a Wakup Command. Response should be:\r\n4 11 33 43:");
  Serial.println("Response is:");
  wakeupExample();
  Serial.println();
  Serial.println("Asking the SHA204's serial number. Response should be:");
  Serial.println("1 23 x x x x x x x EE");
  Serial.println("Response is:");
  serialNumberExample();
  Serial.println();
  Serial.println("Sending a MAC Challenge. Response should be:");
  Serial.println("23 6 67 0 4F 28 4D 6E 98 62 4 F4 60 A3 E8 75 8A 59 85 A6 79 96 C4 8A 88 46 43 4E B3 DB 58 A4 FB E5 73");
  Serial.println("Response is:");
  macChallengeExample();
}

void loop()
{
}

byte wakeupExample()
{
  uint8_t response[SHA204_RSP_SIZE_MIN];
  byte returnValue;
  
  returnValue = sha204.sha204c_wakeup(&response[0]);
  for (int i=0; i<SHA204_RSP_SIZE_MIN; i++)
  {
    Serial.print(response[i], HEX);
    Serial.print(" ");
  }
  Serial.println();
  
  return returnValue;
}

byte serialNumberExample()
{
  uint8_t serialNumber[9];
  byte returnValue;
  
  returnValue = sha204.getSerialNumber(serialNumber);
  for (int i=0; i<9; i++)
  {
    Serial.print(serialNumber[i], HEX);
    Serial.print(" ");
  }
  Serial.println();
  
  return returnValue;
}

byte macChallengeExample()
{
  uint8_t command[MAC_COUNT_LONG];
  uint8_t response[MAC_RSP_SIZE];

  const uint8_t challenge[MAC_CHALLENGE_SIZE] = {
    0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
    0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF,
    0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77,
    0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF
  };

  uint8_t ret_code = sha204.sha204m_execute(SHA204_MAC, 0, 0, MAC_CHALLENGE_SIZE,
    (uint8_t *) challenge, 0, NULL, 0, NULL, sizeof(command), &command[0],
    sizeof(response), &response[0]);

  for (int i=0; i<SHA204_RSP_SIZE_MAX; i++)
  {
    Serial.print(response[i], HEX);
    Serial.print(' ');
  }
  Serial.println();
  
  return ret_code;
}
13  International / Hardware / Re: Generare codici con Arduino e resistori on: April 02, 2013, 05:34:38 am
@astrobeed: era quello che temevo, in effetti, i valori sono troppo affetti da errore smiley-sad

@gpb01: è un'ottima alternativa, ma non capisco come funziona, cioè, non capisco se il chip ha già un numero univoco o se gli deve essere impartito prima via software.
Non capisco nemmeno se per leggerlo da Arduino c'è bisogno di avere delle informazioni sul chip o se con lo stesso codice su Arduino è possibile leggere più di un chip ATSHA204 senza distinzioni.

14  International / Hardware / Generare codici con Arduino e resistori on: April 02, 2013, 04:59:44 am
Avrei una curiosità: secondo voi, è possibile generare codici univoci utilizzando solo dei resistori di valore diverso e solo uno o due pin di Aruino, digitali o analogici?

Mi servirebbe riuscire a generare, tramite un sistema di resistori, un numero elevato di codici diversi, almeno un 100.000 o più e leggerli con Arduino semplicemente trami uno o, al massimo, due dei suoi pin in input (che siano analogici o digitali non è importante).

Stavo pensando, ad esempio, di utilizzare dei partitori, ma poi quanti codici riuscirei a generare? Magari potrei usare due ingressi analogici e accoppiare il valore di un partitore con l'altro per generare il codice, ma non riesco ad immaginare quante combinazioni riuscirei ad avere.
Su ognuno dei due canali riuscirei a leggere 1024 livelli di valore diversi.. quanti codici univoci interpretabili da Arduino riuscirei a generare?

Mi date qualche consiglio, per favore?
15  International / Hardware / Re: Generare un impulso da tensione costante on: February 08, 2013, 07:44:03 am
Scusate, ma in un sistema alimentato a 24V 200Ah in continua non mi sembra che ci siano normative che obbligano tassativamente l'uso di un pulsante a fungo e di un interruttore generale separato.
Io ho cercato documentazione in merito, ma non ho trovato nulla a riguardo e quindi mi sembra plausibile utilizzare un pulsate a fungo (con chiave) per gestirne l'intera alimentazione.

O mi sto sbagliando?
Pages: [1] 2 3 ... 28