Me preguntaba si era posible crear una pared virtual de bricolaje para el iRobot roomba. ¿Alguien puede explicar cómo haría para averiguar cómo funciona esto?
Lo hice hace años simplemente capturando la señal original del Rumba Wall con mi osciloscopio digital (pero se puede hacer de forma gratuita con la tarjeta de audio de la PC) y escribiendo un programa PIC realmente simple para reproducir la misma señal con una portadora de 38Khz. utilizando NOP y algunos ciclos.
Luego construí en una placa prototipo un circuito simple con un PIC12F675, un transistor, un LED IR de haz estrecho y 4 celdas AA NiMh.
30 minutos de trabajo y una victoria impecable :-)
Todavía tengo el código, pero me da mucha vergüenza mostrarlo, realmente fue un horror de codificación: D
EDITAR: Lo pediste, lo tienes. Y USTED PROMETIÓ: Sin comentarios... simplemente funciona. ;-)
list p=12F629
radix dec
include "p12f629.inc"
__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT ;Internal osc.
d1 equ 20h
d2 equ 21h
d3 equ 22h
d4 equ 23h
d5 equ 24h
d6 equ 25h
fileA equ 26h ;delay fileA
fileB equ 27h ;delay fileB
filec equ 28h ;delay fileC
pin7 equ 0 ;GP0
pin6 equ 1 ;GP1
pin5 equ 2 ;GP2
pin4 equ 3 ;GP3
pin3 equ 4 ;GP4
pin2 equ 5 ;GP5
Start org 0x0000
nop
nop
nop
nop
nop
nop
SetUp bsf STATUS, RP0 ;Bank 1
movlw b'10000110'
movwf OPTION_REG
movlw b'00000000'
movwf TRISIO
call 0x3ff
movwf OSCCAL
bcf STATUS, RP0 ;bank 0
clrf GPIO
goto Main
delay_1s
movlw 0x07
movwf d1
movlw 0x2F
movwf d2
movlw 0x01
movwf d3
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_0
goto $+1
goto $+1
goto $+1
return
do_pulse
movlw b'11111111'
movwf GPIO
nop
nop
nop
nop
nop
nop
nop
movlw b'00000000'
movwf GPIO
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
return
do_not_pulse
movlw b'00000000'
movwf GPIO
nop
nop
nop
nop
nop
nop
nop
movlw b'00000000'
movwf GPIO
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
return
Do_1
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
call do_pulse
return
Do_0
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
call do_not_pulse
return
Main
call Do_1
call Do_1
call Do_1
call Do_0
call Do_1
call Do_0
call Do_0
call Do_0
call Do_1
call Do_1
call Do_1
call Do_0
call Do_1
call Do_0
call Do_0
call Do_0
call Do_1
call Do_0
call Do_0
call Do_0
call Do_1
call Do_0
call Do_0
call Do_0
call Do_1
call Do_1
call Do_1
call Do_0
call Do_1
call Do_0
call Do_0
call Do_0
call delay_1s
goto Main
end@
Eso debería ser factible. La pared virtual es solo una baliza que utiliza un emisor de infrarrojos. Estamos hablando de esto:
Entonces, ¿es solo un LED IR, una resistencia en serie y una batería? Lo más probable es que no, por desgracia. La baliza probablemente utilizará una señal codificada, por lo que Roomba puede diferenciarla de otras fuentes de infrarrojos. Tendría que saber qué longitud de onda IR usa, aunque 950nm es una buena suposición. Luego, necesita un Virtual Wall existente para registrar su señal con un fotodiodo IR y un microcontrolador. Una vez que tenga la señal, ese mismo microcontrolador puede enviarla a través de un LED IR.
Ese es el peor de los casos. Si eligieran una señal más simple, probablemente sería un tren de pulso constante, como sugiere Fake Name . En ese caso, puede usar un osciloscopio o el microcontrolador para medir la frecuencia y el ciclo de trabajo. También en ese caso, el microcontrolador es la forma más sencilla de regenerar la señal.
No todos están convencidos de esto. Sin embargo, el microcontrolador no necesita un solo componente externo y el programa requerido se puede escribir en minutos, aproximadamente el tiempo que necesita para calcular los componentes para un 555 AMV. Precisión: 1%. (El condensador cerámico al 1 % para un AMV 555 cuesta casi tanto como el microcontrolador). Y el 555 no puede realizar ciclos de trabajo inferiores al 50 % sin otro componente más. El microcontrolador puede hacer cualquier ciclo de trabajo. Bienvenido al siglo XXI.
Necesitarás algunos conocimientos de programación de microcontroladores. El resto son solo un par de componentes optoelectrónicos, como el LED y el fotodiodo. Y, por supuesto, tendrás que pedir prestado un Virtual Wall comercial.
Also in that case the microcontroller is the simplest way to regenerate the signal.
¿Qué ? La forma más fácil de generar una señal de frecuencia fija es un oscilador astable de hardware, como el 555 común. Una MCU es MUY exagerada y arrastraría paquetes de complejidad de software. Básicamente, se necesita algo que tomaría 20 minutos para soldar en una placa perforada y lo convierte en una tarea de varias horas.For someone who's acquainted with the microcontroller
. De lo contrario, son horas y horas de profundizar en las peculiaridades de la plataforma, buscar erratas, etc. Por supuesto, está el circuito de soporte necesario y un programador. Un temporizador simple tiene un voltaje de entrada amplio, mientras que un microcontrolador generalmente requerirá una entrada de 5 V o 3,3 V, lo que en sí trae más complejidad, como un regulador de voltaje, etc.
ElectroNoob
hacha
ElectroNoob
hacha
connor lobo
hacha
connor lobo
hacha