giovedì 25 agosto 2016

Phase Laser Ranging Module CY30-MB

Prima cosa: se viene acquistato da Aliexpress arriva senza nessun tipo di documentazione sia sulla parte hardware che sulla parte software... considerando il costo non e' proprio una bella notizia. Peraltro e' presente un flat cable a 8 poli da 0.5 mm con un clamshell sul dispositivo ma non sulla basetta verde su cui inserire i connettori


Comunque contattando separatamente il venditore si scopra che oltre alla pedinatura sul flat cable esistono 4 piazzole su cui saldare direttamente i contatti (Vcc, GND, TX ed RX). Attenzione: 3.3V massimo




Per veder meglio le connessioni

Ho fatto notare al customer care che non esiste un pin quadrato dove connettere il GND. La risposta e' la seguente



Il modulo che ho preso ha una portata di 40 m ed i dati di errori dichiarati indicano una standard deviation di 2 mm a 10 m e 3.5 mm a 40 m (secondo la regola ± 2 + 0.05 * (D-10) dove D e' la distanza. La dimesione del punto di misura e' di 6 mm di diametro a 10 m

La connessione quindi e' una standard seriale a 115200 8N1.

Per effettuare le misure si inviano dei codici al sensore

Instruction List
instruction content
Content
Answer
Memo
Start single measurement
$00022123&
ok(Confirm)
Measurement data after confirm
Lights
$0003260130&
Confirm + repeat command

Open the continuous measurement
$00022426&
ok(Confirm)

Stop continuous measurement
$0003260029&
Confirm + repeat command

Instruction confirmation
$00023335&
This is the confirmation instruction from the submachine

Last 7 bits
0001643
No signal

Last 7 bits
0001542
The distance is too close

Closed continuous measurement
$00022123&
Confirm + repeat command

Turn off the laser
$00022123&
ok(Confirm)
The module does not have a sleep mode,if need to close the laser, use a single instruction
nella documentazione viene usato in termine improprio la parola bits. Sarebbe meglio sostituire con "posizione"

Misura singola
In modalita' singola misura il sensore rimanda indietro il codice $00023335& seguito da altre informazioni


$00023335&$0006210000008916& 0.08916 M

in questo caso 008916 indicano 0 decametri, 0 metri, 8 decimetri, 9 centimetri, 1 milllimetro

i dati in blu indicano il codice di risposta di conferma di esecuzione
i dati in verde indicano la distanza con le prime due posizioni che indicano la parte intera e le ultime 5 indicano la parte decimale (misure in metri)

altrimenti vengono generati questi codici di errore


Error code
Reason
Error Response Time
$00023335&$0006210000001542&
Distance too short
About 5 seconds from sending instructions to returning an error code
$00023335&$0006210000001643&
No echo
About 5 seconds from sending instructions to returning an error code
$00023335&$0006210000001744&
reflection is too strong
About 5 seconds from sending instructions to returning an error code
$00023335&$0006210000001845&
ambient light is too strong
About 5 seconds from sending instructions to returning an error code

Modo continuo
In questa modalita' ogni 5 misure il laser viene spento e riacceso. Vengono effettuate sessioni da 500 misure
Per attivare il modo continuo si invia $00022426& e riceve risposte che iniziano con $001624.
Nella risposta si ha il numero progressivo di misura, il valore massimo e minimo ed istantaneo della distanza del bersaglio. I separatori 000 indicano misura corretta, altrimenti errore


i codici di errore per il modo continuo sono

Error code
Reason
Error Response Time
Illustrate
$001624999900000015000
000000000000053&
Distance too short
About 5 seconds from sending instructions to returning an error code
If an error occurs in the continuous measurement, the measurement will be stopped, the number counter (data 7th to 10th Bit) automatically set to 9999, start a new easurement will start at 1
$001624999900000016000
000000000000054&
No echo
About 5 seconds from sending instructions to returning an error code

$001624000100118297001
182970011829711&
Ranging error
About 5 seconds from sending instructions to returning an error code
Distance data invalid


Per l'uso in esterno si devono usare riflettori

Nessun commento:

Posta un commento

Dockerizza Flask

Un esempio semplice per inserire in un container Docker una applicazione Flask Partiamo da una semplice applicazione che ha un file app.py ...