...sicuro anche della velocità della comunicazione serale?
nel video han specificato
A si giuto! Utilizzo la 1.0.1 !!!
quindi molto strano, sicuro di esserti collegato al pin dati e non quello ready? in oltre il fatto che i dati sonao solo 4 byte invece che molti di più, può essere che il tuo chip lavori ad un bitrate inferiore (prova un pò quello default)
1 200
1 800
2 400
3 600
4 800
7 200
9 600
Allora ho fatto tutte le prove! Ma niente! Guarda:
Con 1200 e 4800 ottengo questo:
Con 1800, 3600 e 7200 questo:
E con 2400 questo:
Con 9600 ottengo ciò che abbiamo visto fino ad ora nei post precedenti...
:~ :~ :~
ma invece col sui driver normale funziona?
puoi fare così, lascia perdere la serial per un momento e leggi le durate grezze dei segnali low e high, poi confrontale con i messaggi che ti aspetti, in particolare con la durata di un baud via seriale
pitusso:
...sicuro anche della velocità della comunicazione serale?
Quoto.
Se non comunichi alla stessa velocità ottieni caratteri senza senso.
Collegato al computer tramite usb funziona perfettamente e non necessita di driver. Infatti simula una tastiera virtuale e "scrive" 10 numeri che corrispondono al numero del tag che ci si passa sopra.
Per il resto non ho capoto bene!
Cosa dovrei fare?
Proviamo cosi...
Mi sono riscritto tutto il codice del video, eccolo:
http://goo.gl/VV4jk
è per un µC ATtiny2313 e un display 2X8 Digit LCD.
Sarebbe possibile convertirlo per Arduino???
Anche escludendo il display e inviare i dati al serial monitor cosi è piu facile!
Please help me! :~
uart_getc() corrisponde a Serial.read() (però DEVE ritornare un valore, quindi prima fai un loop finchè non c'è un available o il valore letto è != -1)
counter_ms corrisponde a millis(). Il resto resta uguale tranne le inizializzazione della UART (la seriale) e del counter_ms (la millis() si autosetta
Ho trovato qualcosa!!!
http://thetransistor.com/2011/10/hacking-cheap-rfid-readers/
Sembrava che poteva risolvere i miei problemi!
Invece non è stato cosi... Dove sbaglio?
La scheda che usa lui è molto simile alla mia! E credo che ha gli stessi componenti e le stesse uscite!
Ho provato ad utilizzare il suo Sketch ma il risultato è una pagina bianca!
// Ebay RFID decoder by Aaron Christiansen
// NOTE: this uses the NewSoftwareSerial beta 11
// by Mikal Hart, available here:
// NewSoftSerial 11 (beta) | Arduiniana
#include <SoftwareSerial.h>SoftwareSerial rfid(3, 4);
void setup(){
rfid.begin(9600);
Serial.begin(9600);
}void loop(){
if(rfid.available()){
Serial.println(readRFID());
}
}String readRFID(){
String out = "";
int temp = 0;
unsigned long timer = millis() + 1000;
// using a timer to prevent a possible hang
while(out.length() < 10 && timer > millis()){if(rfid.available()){
temp = rfid.read() - 29;
if(temp > -1 && temp < 11){
temp = (temp == 10)? 0 : temp;
out += temp;
}
}
}
// clearing out the unused extra bytes
rfid.flush();
return out;
}
ho provato a mettere la visualizzazione dei dati prima di String readRFID() ma ottengo quello che ottenevo all' inizio numeri senza senso divisi su 4 righe!!! Sembra che fa 4 letture!!! Perche?
Aiuto!
devi analizzare i segnali grezzi che escono da quella scheda e vedere s sono dati Seriali validi.
Tentare di usare altri skecth basati sulla serial è un fallimento a priori, salvo botte di cu*o
Come posso fare ad analizzare questi dati?
Posso auto costruirmi qualcosa?
O devo per forza spendere centinaia di euro per un analizzatore seriale?
$)
digitalRead dovrebbe bastare
NO... non va bene!
int pinDue = 2;
void setup()
{
Serial.begin (9600);
Serial.println ("Setup OK");
pinMode (pinDue, INPUT);
delay (1000);
}
void loop()
{
int pinState = digitalRead(pinDue);
Serial.print (pinState);
delay (1);
}
il risultato è questo!
000000001100011110000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001100011110000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000111001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011111000000000110001111000000000110001111000000000011000111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000111001111000000000011001111100000000011000111100000000011100111110000000001100011110000000001110011110000000000110001111000000000111001111000000000011000111100000000011000111
In questi giorni cererò di farmi prestare un analizzatore logico da qualcuno! poi vi faccio sapere!
novità circa questo hack?
o è meglio prendere direttamente un lettore rfid spi da ebay? pare siano molto più compatibili e ci sono meno sbattimenti... per quello che costano poi!
io ho usato felicemente RFID con la UART (seriale) nativa, ovvero che ti danno RX/TX senza dover hackerare nulla.
lesto:
io ho usato felicemente RFID con la UART (seriale) nativa, ovvero che ti danno RX/TX senza dover hackerare nulla.
da quale hardware?
non ho "riciclato" nulla, su ebay scrivi rfid uart (o rfid serial) trovi mille cose, magari fai attenzione che siano a 5v così li colleghi diretteamente all'arduino, da cui usi la libreria SoftSerial.