2.- Atanasoff - Sonda
Name: Atanasoff
Description: The model Atanasoff represents an exploratory Sonda, which possesses autonomy in concepts of energy, it's constructed by a solar panel that provides with energy·the·batteries,·also it·possesses ultrasonic sensors and a sensor of temperature, to be able to avoid obstacles and capturing information of the environment·everything cotronlled by a·Basic Stamp with the module BS2-IC and a wireless chamber(camera) vga to color and sound.
The principal aim of the robot is to accede to dangerous or inaccessible places for the human being.
It was developed for a Contest on Mexico at Universidad del Valle de México.
Files Attached:·Board Diagram, Sample Picture, i will upload the flash presentation and the robot report later, i have some problems on upload the .rar and .swf files.
(*) the presentation it's a little mess cause you have to click over the images, if you want to see every slide, otherway you could lose some slides.
Algorithms
x VAR Byte················ ·············· ·' define una variable de propósito general, byte
C VAR Byte················· ············· ·' define una variable para los grados Celsius
·
OUTS=%0000000000000000········· ·' define el estado inicial de todos los pines
DIRS=%1111111111111101 ··' como salidas en estado bajo
·
·
inicio:
·
FREQOUT 4,10,3800· ···································· sonido del piezo eléctrico indicador de inicio de ejecución
HIGH 13····················· ············· ········ habilita el DS1620
SHIFTOUT 15,14,LSBFIRST,[noparse][[/noparse]238] ··········· envía el comando "iniciar conversiones"
LOW 13······················ ······················ ·fin de la orden
·
bucle:····················· ·························· subrutina que lee y muestra la temperatura
HIGH 13······················ ······················ habilita el DS1620
SHIFTOUT 15,14,LSBFIRST,[noparse][[/noparse]170]············ envía el comando "obtener datos"
SHIFTIN 15,14,LSBPRE,[noparse][[/noparse]x]····· ··············· obtiene los datos
LOW 13······················· ····················· deshabilita el DS1620
C=x/2··················· ···························· convierte los datos en grados C
·
DEBUG ? C···················· ····················· muestra los datos en la pantalla
PAUSE 1000··················· ··················· pausa de un segundo
·
GOTO bucle················· ······················ regresa a inicio
·
··
·
·
·
·
·
trigger1· PIN 0···· ···························Se definen los pines que se utilizarán
echo1··· PIN 1····· ···························como echo y trigger para cada sensor
trigger2· PIN 2
echo2··· ·PIN 3
·
·
·
··· #SELECT $stamp
··· #CASE BS2, BS2E
·· ····· ·Trig10 CON· 5························ se define el pulso trigger = 10 uS
········ ·ToCm·· CON· 30················ ·····factor de conversión a centímetros
· ·#ENDSELECT
·
·
·
·
·· sample1 VAR Nib······ ······························contador1
·· ancho1 VAR Word···· ·······························ancho del pulso del sensor1
·· distancia1 VAR Word ·······························medida de filtrado1
·· cm1 VAR Word······································· centímetros1
·· sample2 VAR Nib···································· contador2
·· ancho2 VAR Word·········· ·························ancho del pulso del sensor2
·· distancia2 VAR Word ·······························medida de filtrado2
·· cm2 VAR Word················ ·······················centímetros2
·· x VAR Word
·
setup:
·
··· LOW Trigger1
··· LOW trigger2
··· DEBUG CLS,
·
··· "Ultrasonido 1· ", CR,
··· "Ultrasonido 2· ", CR
·
inicio:
·
PULSOUT 11, 1000···················· se activan los servos necesarios PULSOUT 12, 500··························· para que Atanasoff se desplace
·
··· DO················ ······························se toman las lecturas de los sonares
····· GOSUB Get_Sonar
········ PAUSE 200
·
·
DEBUG CRSRXY, 15, 0, DEC distancia1, CLREOL
' se convierte a centímetros
·
······· cm1 = distancia1 / ToCm
·
DEBUG CRSRXY, 15, 1, DEC distancia2, CLREOL·····
' nuevamente se hace la conversión
·
······· cm2 = distancia2 / ToCm
·
······· PAUSE 10························· ·········' retraso entre lecturas
···· LOOP
·GOTO inicio
·
·
· Get_Sonar:········ ······························' se limpian las lecturas
···· distancia1 = 0
···· distancia2 = 0
·
FOR sample1 = 1 TO 5··················· ' se toman 5 ejemplos· del sensor1
·
···· PULSOUT Trigger1, Trig10·············· ' pulso de trigger1 de 10 uS
·
····· #SELECT $stamp
····· #CASE BS2, BS2E························ ·' medida del pulso
······· RCTIME Echo1, 1, ancho1
····· #CASE #ELSE······························· ' medida del pulso
······· PULSIN Echo1, 1, ancho1
····· #ENDSELECT
··························································
····· distancia1 = distancia1 + (ancho1) ··' se amplicada el resultado
·
·· NEXT
·
···· FOR sample2 = 1 TO 5· ·················' se toman 5 ejemplos· del sensor2
·
···· PULSOUT Trigger2, Trig10··· ·······················pulso de trigger2 de 10 uS
·
····· #SELECT $stamp
····· #CASE BS2, BS2E
······· RCTIME Echo2, 1, ancho2··························· ·medida del pulso
····· #CASE #ELSE
······· PULSIN Echo2, 1, ancho2··························· ' medida del pulso
····· #ENDSELECT
····· distancia2 = distancia2 + (ancho2)·················· ' se amplificada el resultado
·
·
·
·
························································ ' A continuación los parámetros establecidos
· NEXT·························· ························' para que el robot tome una decisión u otra
·
·
IF distancia1<1000 AND distancia1 <> 0 AND distancia2<1000· AND distancia2 <> 0 THEN GOSUB giro180
IF distancia1<1000 AND distancia1 <> 0 AND distancia2>1000· AND distancia2 <> 0 THEN GOSUB derecha
IF distancia1>1000 AND distancia1 <> 0 AND distancia2<1000· AND distancia2 <> 0 THEN GOSUB izquierda
·
GOTO inicio
·
·
giro180:
·
FREQOUT 4,3000,3800······························ Se da una alerta con el Piezo
Eléctrico
·
·
FOR x=1 TO 1000········ ····························Se toma una visualización del
entorno con la cámara
· PULSOUT 10,780
· NEXT
·
· FOR x=1 TO 1200
· PULSOUT 10,695
· NEXT
·
· FOR x =1 TO 300
· PULSOUT 11, 500··································· Retrocede
· PULSOUT 12, 1000
· NEXT
·
· FOR x = 1 TO 900·································· Vuelta en 180°
· PULSOUT 11,500
· PULSOUT 12,500
· NEXT
·
····· RETURN
·
·
izquierda:
·
·
FOR x=1 TO 1000········· ················ Se toma una visualización del entorno con la cámara
· PULSOUT 10,780
· NEXT
·
· FOR x=1 TO 1200
· PULSOUT 10,695
· NEXT
·
· FOR x = 1 TO 2000······· ······························Retrocede
· PULSOUT 11,500
· PULSOUT 12,1000
· NEXT
·
· FOR x = 1 TO 200······· ······························Dobla a la izquierda
· PULSOUT 11,500
· PULSOUT 12,500
· NEXT
·
····· RETURN
·
·
·
derecha:
·
FOR x=1 TO 1000········ ·······························Se toma una visualización del
· entorno con la cámara
· PULSOUT 10,780
· NEXT
·
· FOR x=1 TO 1200
· PULSOUT 10,695
· NEXT
·
· FOR x = 1 TO 200······· ······························Retrocede
· PULSOUT 11,500
· PULSOUT 12,1000
· NEXT
·
· FOR x = 1 TO 200······· ······························Dobla a la derecha
· PULSOUT 11,1000
· PULSOUT 12,1000
· NEXT
·
····· RETURN
(*) if you need the translation, just ask 4 it
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Best Regards from Chile
Goten
Envio editado por (Goten) : 2/2/2006 4:22:14 PM GMT
Description: The model Atanasoff represents an exploratory Sonda, which possesses autonomy in concepts of energy, it's constructed by a solar panel that provides with energy·the·batteries,·also it·possesses ultrasonic sensors and a sensor of temperature, to be able to avoid obstacles and capturing information of the environment·everything cotronlled by a·Basic Stamp with the module BS2-IC and a wireless chamber(camera) vga to color and sound.
The principal aim of the robot is to accede to dangerous or inaccessible places for the human being.
It was developed for a Contest on Mexico at Universidad del Valle de México.
Files Attached:·Board Diagram, Sample Picture, i will upload the flash presentation and the robot report later, i have some problems on upload the .rar and .swf files.
(*) the presentation it's a little mess cause you have to click over the images, if you want to see every slide, otherway you could lose some slides.
Algorithms
x VAR Byte················ ·············· ·' define una variable de propósito general, byte
C VAR Byte················· ············· ·' define una variable para los grados Celsius
·
OUTS=%0000000000000000········· ·' define el estado inicial de todos los pines
DIRS=%1111111111111101 ··' como salidas en estado bajo
·
·
inicio:
·
FREQOUT 4,10,3800· ···································· sonido del piezo eléctrico indicador de inicio de ejecución
HIGH 13····················· ············· ········ habilita el DS1620
SHIFTOUT 15,14,LSBFIRST,[noparse][[/noparse]238] ··········· envía el comando "iniciar conversiones"
LOW 13······················ ······················ ·fin de la orden
·
bucle:····················· ·························· subrutina que lee y muestra la temperatura
HIGH 13······················ ······················ habilita el DS1620
SHIFTOUT 15,14,LSBFIRST,[noparse][[/noparse]170]············ envía el comando "obtener datos"
SHIFTIN 15,14,LSBPRE,[noparse][[/noparse]x]····· ··············· obtiene los datos
LOW 13······················· ····················· deshabilita el DS1620
C=x/2··················· ···························· convierte los datos en grados C
·
DEBUG ? C···················· ····················· muestra los datos en la pantalla
PAUSE 1000··················· ··················· pausa de un segundo
·
GOTO bucle················· ······················ regresa a inicio
·
··
·
·
·
- Esquivar Obstáculos mediante sensores de Ultrasonido
·
·
trigger1· PIN 0···· ···························Se definen los pines que se utilizarán
echo1··· PIN 1····· ···························como echo y trigger para cada sensor
trigger2· PIN 2
echo2··· ·PIN 3
·
·
·
··· #SELECT $stamp
··· #CASE BS2, BS2E
·· ····· ·Trig10 CON· 5························ se define el pulso trigger = 10 uS
········ ·ToCm·· CON· 30················ ·····factor de conversión a centímetros
· ·#ENDSELECT
·
·
·
·
·· sample1 VAR Nib······ ······························contador1
·· ancho1 VAR Word···· ·······························ancho del pulso del sensor1
·· distancia1 VAR Word ·······························medida de filtrado1
·· cm1 VAR Word······································· centímetros1
·· sample2 VAR Nib···································· contador2
·· ancho2 VAR Word·········· ·························ancho del pulso del sensor2
·· distancia2 VAR Word ·······························medida de filtrado2
·· cm2 VAR Word················ ·······················centímetros2
·· x VAR Word
·
setup:
·
··· LOW Trigger1
··· LOW trigger2
··· DEBUG CLS,
·
··· "Ultrasonido 1· ", CR,
··· "Ultrasonido 2· ", CR
·
inicio:
·
PULSOUT 11, 1000···················· se activan los servos necesarios PULSOUT 12, 500··························· para que Atanasoff se desplace
·
··· DO················ ······························se toman las lecturas de los sonares
····· GOSUB Get_Sonar
········ PAUSE 200
·
·
DEBUG CRSRXY, 15, 0, DEC distancia1, CLREOL
' se convierte a centímetros
·
······· cm1 = distancia1 / ToCm
·
DEBUG CRSRXY, 15, 1, DEC distancia2, CLREOL·····
' nuevamente se hace la conversión
·
······· cm2 = distancia2 / ToCm
·
······· PAUSE 10························· ·········' retraso entre lecturas
···· LOOP
·GOTO inicio
·
·
· Get_Sonar:········ ······························' se limpian las lecturas
···· distancia1 = 0
···· distancia2 = 0
·
FOR sample1 = 1 TO 5··················· ' se toman 5 ejemplos· del sensor1
·
···· PULSOUT Trigger1, Trig10·············· ' pulso de trigger1 de 10 uS
·
····· #SELECT $stamp
····· #CASE BS2, BS2E························ ·' medida del pulso
······· RCTIME Echo1, 1, ancho1
····· #CASE #ELSE······························· ' medida del pulso
······· PULSIN Echo1, 1, ancho1
····· #ENDSELECT
··························································
····· distancia1 = distancia1 + (ancho1) ··' se amplicada el resultado
·
·· NEXT
·
···· FOR sample2 = 1 TO 5· ·················' se toman 5 ejemplos· del sensor2
·
···· PULSOUT Trigger2, Trig10··· ·······················pulso de trigger2 de 10 uS
·
····· #SELECT $stamp
····· #CASE BS2, BS2E
······· RCTIME Echo2, 1, ancho2··························· ·medida del pulso
····· #CASE #ELSE
······· PULSIN Echo2, 1, ancho2··························· ' medida del pulso
····· #ENDSELECT
····· distancia2 = distancia2 + (ancho2)·················· ' se amplificada el resultado
·
·
·
·
························································ ' A continuación los parámetros establecidos
· NEXT·························· ························' para que el robot tome una decisión u otra
·
·
IF distancia1<1000 AND distancia1 <> 0 AND distancia2<1000· AND distancia2 <> 0 THEN GOSUB giro180
IF distancia1<1000 AND distancia1 <> 0 AND distancia2>1000· AND distancia2 <> 0 THEN GOSUB derecha
IF distancia1>1000 AND distancia1 <> 0 AND distancia2<1000· AND distancia2 <> 0 THEN GOSUB izquierda
·
GOTO inicio
·
·
giro180:
·
FREQOUT 4,3000,3800······························ Se da una alerta con el Piezo
Eléctrico
·
·
FOR x=1 TO 1000········ ····························Se toma una visualización del
entorno con la cámara
· PULSOUT 10,780
· NEXT
·
· FOR x=1 TO 1200
· PULSOUT 10,695
· NEXT
·
· FOR x =1 TO 300
· PULSOUT 11, 500··································· Retrocede
· PULSOUT 12, 1000
· NEXT
·
· FOR x = 1 TO 900·································· Vuelta en 180°
· PULSOUT 11,500
· PULSOUT 12,500
· NEXT
·
····· RETURN
·
·
izquierda:
·
·
FOR x=1 TO 1000········· ················ Se toma una visualización del entorno con la cámara
· PULSOUT 10,780
· NEXT
·
· FOR x=1 TO 1200
· PULSOUT 10,695
· NEXT
·
· FOR x = 1 TO 2000······· ······························Retrocede
· PULSOUT 11,500
· PULSOUT 12,1000
· NEXT
·
· FOR x = 1 TO 200······· ······························Dobla a la izquierda
· PULSOUT 11,500
· PULSOUT 12,500
· NEXT
·
····· RETURN
·
·
·
derecha:
·
FOR x=1 TO 1000········ ·······························Se toma una visualización del
· entorno con la cámara
· PULSOUT 10,780
· NEXT
·
· FOR x=1 TO 1200
· PULSOUT 10,695
· NEXT
·
· FOR x = 1 TO 200······· ······························Retrocede
· PULSOUT 11,500
· PULSOUT 12,1000
· NEXT
·
· FOR x = 1 TO 200······· ······························Dobla a la derecha
· PULSOUT 11,1000
· PULSOUT 12,1000
· NEXT
·
····· RETURN
(*) if you need the translation, just ask 4 it
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Best Regards from Chile
Goten
Envio editado por (Goten) : 2/2/2006 4:22:14 PM GMT
Comments
Thank you for sharing your project.
Ryan
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Ryan Clarke
Parallax Tech Support
RClarke@Parallax.com
See attachment it's a flash presentation that i made.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Best Regards from Chile
Goten
· Any connection ?
·
AND my others robots... Hoper and Stibitz... guess what! jajaja
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Best Regards from Chile
Goten