Nano, recien estuve leyendo el proyecto de tu levitador, IMPRESIONANTE.
Bueno, despues conta como te fue con este, acordate que tiene una especie de bootloader, el soft no va a hacer nada sino entra en modo programacion.
Tenes que tener todo conectado a excepcion del modulo, inicias el soft, y recien le das alimentacion al modulo... ocurrido esto, va a aparecer en el soft que identifico el dispositivo. En el peor de los casos cambia Tx/Rx.
Bueno, estoy hace dias buscando un modulo GPS/GSM que no se donde se me perdio o donde me lo robaron, asi que no me pude poner a buscar todo... pero encontre los APC220, que son los hermanos de este y andan como te dije antes, por default estan a 9600 tanto para aire como para el puerto serie. El soft tuyo tiene que decir RF-Magic, y el del 220 RF-ANET
Sobre codificacion manchester, tambien pueden modular los datos para que salgan por Rs232 en lugar de hacer sus propias rutinas de lectura decodificacion y transmicion; por supuesto que lo mejor es que no perdemos ciclos de reloj dedicados para eso (por lo menos es transparente).
La idea es sencilla: La transimicion por RF, siempre necesita un enganche, es decir una sucesion de 1 y 0, cuando no hay una portadora o frecuencia de enganche el ruido hace que la linea teorica se desconecte cuando hay muchos 0 consecutivos.
La idea a grandes razgos de esta modificacion del byte enviado (no estoy siendo escrupuloso con la verdadera codificacion manchester pero si simplista) es enviar 4bits por cada byte y reemplazar los 1 por 10 y 0 por 01. ¿QUe se logra con esto?.... siempre tener una transicion, si se puede mejorar (SI y mucho) pero con esto solo tenemos una forma simple y muy sencilla de lograr el efecto de enganche.
POr ejemplo si transmitimos un byte CHR(1), estariamos enviado <start>-------H<stop> por mas que nosotros decodifiquemos muy bien por el clock interno donde termina cada bit, el transmisor no tiene idea de lo que se envia y en esa ausencia de datos ante ruido el receptor puede interpretar cualquier cosa y perder el dato si se desengancho y arranco con H (por el delay para generar RF).
Con esta minima modificacion tendrian<start>01 01 01 01 01 01 01 10<stop> como ven es mucho mas que el solo dividir el byte, se asegura en el peor caso un muy excelente señal de enganche, y trabajar con 4bits es refacil, tanto en hexa o binario. Y decodificarlo ya usando el puerto serie tambien es supersencillo y no requiere supercodigo solo una rutina 5 lineas (o 100 si usan C, ja-ja lo odio ademas de que es lento).
void EnviarDato(byte txtbyte)
{
intg i,j,b,me;
b=txtbyte;
for (i=0; i<2; i++) {
me=0;
for (j=0; j<4; j+++) {
me >>=2;
if (bit_test(b,0))
me |= 0b01000000; // 1->0
else
me |= 0'b10000000; // 0->1
b>>=1;
}
putc(me);
}
}
UNa garcha, pero ahi esta
Otra garcha sin probar
'La variable conejo tendria el valor a transmitir, en lugar de llamar a Hserout, se llama a EnviarManchester
EnviarManchester:
Dim Xdato as word
For i= 0 To 7
j=2*i 'Xdato tiene 16bits
xDato(j)=0 'Por defecto asume que sea el bit=0
xDato(j+1)=1
If Conejo.i=1 Then 'Si es igual a 1, cambia los bits
xDato(j)=1
xDato(j+1)=0
EndIf
Next
Hserout Xdato 'O si falla enviar por separado cada parte de 8bits HSerOut xDato.Low: HSerOut xDato.High
Return
Como podran ver, una se podria traducir a assembler rapido y eficientemente y la otra no. Cual es mas rapida de las 2?
PD: Puede haber alguna falla en el codigo, no lo probe... simplemente es para aclarar ideas y que no se compliquen con Manchester, aunque como dije pueden profundizar mas.
Exitos.