Go Down

Topic: Bus SPI e lunghezza... (Read 327 times) previous topic - next topic

Riker1312

Salve a tutti,
so che sto per aprire un argomento su cui si è discusso tanto.
Ma ho bisogno di un parere da chi ha più esperienza di me.

SCENARIO:
Serratura elettronica realizzata con lettore RFID e un arduino che attiva una elettroserratura.

PROBLEMA:
mettere il lettore RFID fuori della porta e l'arduino dentro, in questo modo non mi espongo al rischio che scassinando la scatola del sensore si possa aprire la porta "mettendo insieme i fili del relè"...

DOMANDA:
Potrei mettere la scatola con il sensore RFID e l'arduino su le due facce contrapposte dello stesso muro di 15 cm.
Quindi: posso realizzare un bus SPI tra il sensore e l'arduino di 30-40 cm sperando che funzioni?

Attenzione: ho già letto tutto quello che ho trovato in merito a specifiche ecc ecc ho bisogno del parere di qualcuno che ci ha già provato.

Grazie infinite!

Simone

gpb01

Quindi: posso realizzare un bus SPI tra il sensore e l'arduino di 30-40 cm sperando che funzioni?
NO, il bus SPI è un bus molto veloce fatto per collegamenti sullo stesso circuito stampato e NON fatto per essere portato in giro a destra e sinistra.

Un collegamento di 30/40 cm è totalmente fuori specifiche e ... magari una volta funziona e la volta dopo non va nulla.

Prendi un piccolissimo (ed economicissimo) Arduino Pro Mini attaccalo dietro al lettore RFID e trasmetti i dati letti all'Arduino attuatore via seriale.

Guglielmo
Search is Your friend ... or I am Your enemy !

Riker1312

Grazie,
immaginavo la risposta ma ora ho la conferma.

Il lettore RFID che ho usato lavora esce con un bus SPI e se ne trovassi uno che esce con un bus I2C, stesso problema di lunghezza?


Con la soluzione proposta devo "dividere in due" il progetto, la parte "lettura RFID" che semplicemente legge le card e spara le letture alla parte "cervello" che verifica la card ed eventuaelmte apre la porta...
Mi sai suggerire (prima che cerchi per mezz'ora) un esempio su come realizzare una infrastruttura del genere?

Grazie ancora.


gpb01

Confermo che con la I2C hai lo stesso problema e ... non ricordo lettori RFID con uscita in I2C.

L'applicazione è semplice, prendi la parte che attualmente legge il RFID e la metti su un Pro Mini, quando legge trasmette i dati sulla seriale, l'altro Arduino è in ascolto sulla seriale e quando riceve i dati agisce di conseguenze.

E' un normale scambio di dati tra due Arduino via seriale (incroci TX e RX e i GND in comune). Naturalmente ti dovrai inventare un minimo di "protocollo" per essere sicuro che i dati trasmessi arrivino ed arrivino corretti. :)

Guglielmo
Search is Your friend ... or I am Your enemy !

Riker1312

Ok grazie, ci provo...

Se non erro Arduino ha la limitazione che ha una sola seriale che poi è quella che utilizza per la connessione USB (e il terminale).
Per fare il debugging mi serve poter usare il terminale...
Quindi devo sviluppare su un MEGA per avere una ulteriore porta seriale?


fabpolli

Ok grazie, ci provo...

Se non erro Arduino ha la limitazione che ha una sola seriale che poi è quella che utilizza per la connessione USB (e il terminale).
Per fare il debugging mi serve poter usare il terminale...
Quindi devo sviluppare su un MEGA per avere una ulteriore porta seriale?

Usa la softwareSerial

gpb01

Come ti ha indicato "fabpolli" puoi creare seriali aggiuntive virtuali usando la libreria standard SoftwareSerial, anche se, onestamente, io preferisco la AltSoftSerial che è più veloce ed introduce alcune migliorie, anche se obbliga l'uso di determinati pin.

Per entrambe leggi comunque bene i references perché hanno le loro specifiche limitazioni.

Guglielmo
Search is Your friend ... or I am Your enemy !

Riker1312

Scusate ma dopo mezz'ora di ricerche non ne esco.

il mio lettore di carte RFID lavora a 3,3 volt e "supporta" questi arduino (almeno fornisce lo schema di collegamento di questi):
Uno/101
Mega
Nano v3
Leonardo/Micro
Pro Micro

volendo realizzare lo sdoppiamento dei progetto un due parti: lettore/cervello e volendo avere 2 seriali hardware da entrambe le parti per poter fare agevolmente debug e senza aggiungere librerie ulteriori...

Quale arduino per la parte "lettore" e quale per la parte "cervello"?

Tra l'altro come possibile espansione pensavo di far registrare i passaggi su un server tramite la Wi-Fi, quindi se la parte "cervello" avesse la wi-fi integrata sarebbe il massimo...

Grazie!

Simone

gpb01

Arduino Pro Mini che ti ho suggerito è praticamnete un Arduino UNO senza tutto i "fronzoli" intorno ... così da poter avere le dimensioni minime che ha, ma, a livello di collegamenti è come una UNO e quindi valgono le stesse connessioni.

Però, visto che vuoi fare una cosetta simpatica con anche il WiFi e il RFID lavora a 3.3V, potreti ...

1. Usare le Arduino Pro Mini a 3.3V

2. usare come "cervello" (come lo chiami tu) un Arduino MKR1000 che lavora anche essa a 3.3V ed ha il WiFi integrato. Inoltre, la MKR1000, ha la USB (Serial) e la seriale (Serial1) separate e quindi NON ti serve creare nessuna seriale virtuale per avere una porta seriale in più.

In questo modo potresti collegare tutto direttamente senza la necessità di adattare i livelli.

Guglielmo
Search is Your friend ... or I am Your enemy !

paulus1969

Secondo me attraverso il muro di 15 cm ce la può fare... consideriamo che dovrà scavare nel muro per inserire due scatole, una per ogni lato del muro. Alla fine, sarebbero una decina di cm di collegamento se ottimizza tutto.

gpb01

#10
Jun 15, 2018, 06:04 pm Last Edit: Jun 15, 2018, 06:04 pm by gpb01
Secondo me attraverso il muro di 15 cm ce la può fare...
... lui parla di 30/40 cm ... spero abbia misurato prima ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

Riker1312

Effettivamente
... lui parla di 30/40 cm ... spero abbia misurato prima ... ::)

Guglielmo
Si ho scritto 30-40 per capire in che range stiamo con le tolleranze...
Effettivamente con lo scenario prospettato (2 scatole speculari sul muro) la distanza sarebbe minore di 30-40... potremmo arrivare a meno, ma non penso si scenderebbe sotto i 20 cm...
Ma se davvero lo SPI è concepito come "BUS per comunicazioni su schede tra chip" anche con 20 centimetri potremmo chiedergli troppo...


gpb01

#12
Jun 15, 2018, 06:50 pm Last Edit: Jun 15, 2018, 06:50 pm by gpb01
Ma se davvero lo SPI è concepito come "BUS per comunicazioni su schede tra chip" anche con 20 centimetri potremmo chiedergli troppo...
Anche 10 cm. possono creare problemi su un qualche cosa che viaggia ad alta frequenza (4MHz di base su Arduino) e che lavora sui fronti del segnale ...
... tu puoi anche provarci ... ma se poi una volta resti fuori di casa, NON venire a dire che non eri stato avvisato.

Guglielmo
Search is Your friend ... or I am Your enemy !

Riker1312

Anche 10 cm. possono creare problemi su un qualche cosa che viaggia ad alta frequenza (4MHz di base su Arduino) e che lavora sui fronti del segnale ...
... tu puoi anche provarci ... ma se poi una volta resti fuori di casa, NON venire a dire che non eri stato avvisato.

Guglielmo
Infatti avevo desistito subito!
Una serratura che "apre quando funziona" non è una serratura ma una lotteria!
Mi sto già attrezzando per "spezzare" il progetto in due e metterci di mezzo la comunicazione seriale.
Tanto mi servirebbe comunque implementarla perché ho anche un'altra porta dove la distanza tra le due scatole sarà di circa 1,5 metri...

Patrick_M

...
Tanto mi servirebbe comunque implementarla perché ho anche un'altra porta dove la distanza tra le due scatole sarà di circa 1,5 metri...
cos'è? un ponte levatoio di un castello? :D :D
per inserire lo sketch da IDE clicca modifica, clicca copia per il forum poi vieni qui e incolla nel tuo post (ctrl+v) ;)

Go Up