Controlar tu iRobot Create con un piloto de Palma (10 / 16 paso)

Paso 10: El programa, parte 2

Ahora podemos definir los elementos de la GUI. En la parte superior del archivo "robot.rcp" tiene que haber una línea que contiene:

 #include "robot.h" 

Sin esta linea el compilador no sustituye los nombres de los elementos de números de identificación.

La primera forma (página) en nuestro programa contiene 2 imágenes, algunas etiquetas y algunas áreas de texto. Las áreas de texto no deberían ser modificables por el usuario. No quiero que haya una frontera, y debería haber un botón que permite al usuario detener fácilmente el programa de actualización de la pantalla del sensor.

 FORM ID FormMain AT (0 0 160 160) NOFRAMEUSABLEMENUID MainMenu BEGIN TITLE "iRobot Status" FORMBITMAP AT (20 25) BITMAP PicRobot FORMBITMAP AT (110 21) BITMAP PicWall_ LABEL "Program:" AUTOID AT (10 120) FONT 0 FIELD ID FldProg AT (80 PREVTOP 70 AUTO) NONEDITABLE UNDERLINED MAXCHARS 15 LABEL "Voltage:" AUTOID AT (10 PREVBOTTOM+1) FONT 0 FIELD ID FldVoltage AT (80 PREVTOP 70 AUTO) NONEDITABLE UNDERLINED MAXCHARS 15 BUTTON "Stop" ID BtnDisconnect AT (110 102 AUTO AUTO) END 

La segunda forma se utilizará para seleccionar los programas de demostración en el iRobot Create. Debe tener una etiqueta de texto explicativo, una lista de opciones posibles y un campo de texto (no editable) que mostrará una breve descripción de la versión parcial de programa seleccionado. También debe contener un título, pero sin bordes.

 FORM ID FormSelect AT (0 0 160 160) NOFRAMEUSABLEMENUID MainMenu BEGIN TITLE "Select Script" LABEL "Select a demo program or Macro:" AUTOID AT (5 20) FONT 0 LIST "Cover" "Cover and Dock" "Spot Cover" "Mouse" "Figure Eight" "Wimp" "Home" "Tag" "Pachelbel" "Banjo" ID SelScript AT (30 35 90 1) FONT 0 VISIBLEITEMS 5 FIELD ID FldDescription AT (5 PREVBOTTOM+8 145 60) FONT 0 NONEDITABLE UNDERLINED MULTIPLELINES MAXCHARS 255 END 

La forma final se utilizará para la creación de secuencias de comandos. Debe contener algunos botones que usar control de la escritura como un conjunto (como "Run Script" o "Eliminar Script"), así como botones para agregar comandos a la secuencia de comandos. Para separar estos 2 conjuntos de botones allí deben ser una línea divisoria (en este caso un mapa de bits). También debe haber un (otra vez, no editable) campo de texto que se mostrará los comandos en la secuencia de comandos, este campo de texto debe ir acompañado de una barra de desplazamiento. Como la última forma debe existir un título.

 FORM ID FormMacro AT (0 0 160 160) NOFRAMEUSABLEMENUID MainMenu BEGIN TITLE "Create/Edit Macro" BUTTON "Send to robot" ID BtnSend AT (6 20 AUTO AUTO) BUTTON "Clear" ID BtnClear AT (PREVRIGHT+3 PREVTOP AUTO AUTO) BUTTON "Delete" ID BtnDel AT (PREVRIGHT+3 PREVTOP AUTO AUTO) FORMBITMAP AT (0 35) BITMAP PicBar BUTTON "Up" ID BtnUp AT (23 45 13 13) NOFRAME GRAPHICAL BITMAPID PicUp BUTTON "Left" ID BtnLeft AT (PREVLEFT-15 PREVTOP 13 13) NOFRAME GRAPHICAL BITMAPID PicLeft BUTTON "Right" ID BtnRight AT (PREVRIGHT+17 PREVTOP 13 13) NOFRAME GRAPHICAL BITMAPID PicRight BUTTON "Down" ID BtnDown AT (PREVLEFT-15 PREVBOTTOM+4 13 13) NOFRAME GRAPHICAL BITMAPID PicDown BUTTON "Clock" ID BtnClock AT (68 45 18 18) NOFRAME GRAPHICAL BITMAPID PicClock BUTTON "CClock" ID BtnCClock AT (PREVRIGHT+7 PREVTOP 18 18) NOFRAME GRAPHICAL BITMAPID PicCClock BUTTON "Pause" ID BtnPause AT (130 PREVTOP 18 18) NOFRAME GRAPHICAL BITMAPID PicPause LABEL "Plus" AUTOID AT (46 70) FONT 0 BUTTON "1" ID BtnP1 AT (PREVRIGHT PREVTOP 10 11) RECTFRAME BUTTON "2" ID BtnP2 AT (PREVRIGHT+1 PREVTOP 10 11) RECTFRAME BUTTON "4" ID BtnP4 AT (PREVRIGHT+1 PREVTOP 10 11) RECTFRAME BUTTON "8" ID BtnP8 AT (PREVRIGHT+1 PREVTOP 10 11) RECTFRAME BUTTON "16" ID BtnP16 AT (PREVRIGHT+1 PREVTOP 15 11) RECTFRAME LABEL "seconds" AUTOID AT (PREVRIGHT+2 PREVTOP) FONT 0 FORMBITMAP AT (0 PREVBOTTOM+5) BITMAP PicBar FIELD ID FldScript AT (5 90 135 70) FONT 0 NONEDITABLE UNDERLINED MULTIPLELINES MAXCHARS 500 HASSCROLLBAR SCROLLBAR ID SclScript AT (PREVRIGHT+5 PREVTOP 7 PREVHEIGHT) VALUE 0 MIN 0 MAX 8 PAGESIZE 1 END 

Cada formulario debe tener un menú. El menú permite al usuario seleccionar entre las formas y control comunicación con el robot.

 MENU ID MainMenu BEGIN PULLDOWN "Main" BEGIN MENUITEM "Status" ID MnuStatus "S" MENUITEM "Scripts" ID MnuScript "I" MENUITEM "Edit Macros" ID MnuMacro "M" END PULLDOWN "Robot" BEGIN MENUITEM "Connect" ID MnuConnect "C" MENUITEM "Disconnect" ID MnuDisconnect "D" MENUITEM SEPARATOR MENUITEM "Run" ID MnuRun "R" MENUITEM "Stop" ID MnuStop "O" END PULLDOWN "Help" BEGIN MENUITEM "Help" ID MnuHelp "H" MENUITEM "About" ID MnuAbout "A" END END 

Necesitamos definir la pantalla de "acerca de".

 ALERT ID AboutAlert INFORMATIONBEGIN TITLE "About iRobot" MESSAGE "A program designed to communicate with an iRobot Create\n" \ "------------------\n"\ "By: Tristan Losier\n"\ "Released under the GPL\n"\ "------------------\n"\ "iRobot is a registered trademark of the iRobot Corporation" BUTTONS "Ok" END 

Y por último, pero no menos importante, tenemos que definir todos los mapas de bits e iconos que se utilizarán en el programa. Usted puede notar que muchos de los mapas de bits definidos a continuación no se usan, ya que se utilizan en otros lugares en el programa.

 BITMAP ID PicBar "images/bar.bmp" BITMAP ID PicRobot "images/irobot.bmp" BITMAP ID PicWall_ "images/wall_.bmp" BITMAP ID PicCliff "images/sensors/cliff.bmp" BITMAP ID PicWhealL "images/sensors/lwheal.bmp" BITMAP ID PicWhealR "images/sensors/rwheal.bmp" BITMAP ID PicBumpL "images/sensors/bumpl.bmp" BITMAP ID PicBumpR "images/sensors/bumpr.bmp" BITMAP ID PicWall "images/sensors/wall.bmp" BITMAP ID PicUp "images/buttons/up.bmp" BITMAP ID PicDown "images/buttons/down.bmp" BITMAP ID PicLeft "images/buttons/left.bmp" BITMAP ID PicRight "images/buttons/right.bmp" BITMAP ID PicClock "images/buttons/clock.bmp" BITMAP ID PicCClock "images/buttons/cclock.bmp" BITMAP ID PicPause "images/buttons/pause.bmp" ICON "robot.bmp" SMALLICON "robotsmall.bmp" 

Artículos Relacionados

Adaptación mapeo y navegación con iRobot Create

Adaptación mapeo y navegación con iRobot Create

este tutorial demostrará cómo hacer el mapeo y navegación con el iRobot Create para menos de $30! Y mejor aún, su diseño para ser un complemento fácil a tu robot ya existentes (robot mayordomo, alguien?).¿Por qué es cartografía útil? ¿Que siempre qui
Cómo hacer un baloncesto autónoma jugar robot utilizando un iRobot Create como base

Cómo hacer un baloncesto autónoma jugar robot utilizando un iRobot Create como base

esta es mi entrada para el iRobot Create desafío. La parte más difícil de todo este proceso para mí fue decidir lo que el robot se iba a hacer. Quería demostrar las características interesantes de la creación, mientras que también agrega en algún est
Cómo introducir el iRobot Create reto

Cómo introducir el iRobot Create reto

actualización: concurso plazo extendido a 11:59 pm PDT el domingo 9 de septiembre!Si tu robot es recalcitrante, utilizar los días adicionales para navegar un fix o intentar otra estrategia. Si tu robot es fabuloso, post-it y los días adicionales para
Voz controlada iRobot Create

Voz controlada iRobot Create

Recientemente recibí un accesorio android Development Kit (ADK) y, coincidentemente, también recibió mi iRobot cree.  Así que, decidí poner los dos juntos para conseguir que un robot controlado por voz usando las APIs de Android como una manera fácil
Arduino Uno y Visuino: controlar Robot coche Smart con Joystick y L298N controlador de Motor

Arduino Uno y Visuino: controlar Robot coche Smart con Joystick y L298N controlador de Motor

Que coche elegante se establece cuando se combinan con Los módulos de controladores Motor L298N, ofrecen una de las maneras más fáciles de fabricar coches robot. El Módulo del controlador Motor L298N es fácil de controlar con Arduino, y con la ayuda
Controlar cualquier cosa remotamente con señales infrarrojas.

Controlar cualquier cosa remotamente con señales infrarrojas.

¿Quién hubiera pensado que cualquier accesorio de Arduino se puede controlar de algún modo con un control remoto de TV? Ahora es el momento para averiguar cómo.Paso 1: Instalación y materiales La configuración para esto es bastante básica. El verdade
Cómo controlar un RGB LED con un Arduino

Cómo controlar un RGB LED con un Arduino

En este Instructable, yo lo se que muestra cómo controlar un LED RGB con un Arduino.Para completar este proyecto, necesitarás:1 x Arduino (estoy usando la Arduino Uno R3)1 LED x RGB3 x 150-220 ohm resistencias4 x cables de puente1 x Breadboard1 x ord
IRobot Create Personal hogar Robot

IRobot Create Personal hogar Robot

introducir un robot casero personal en torno a la plataforma de Create de iRobot y un sistema mini-itx.Nunca ha sido más fácil y más asequible para diseñar y construir robots aprovechando las economías de escala del software, PC, juguetes y otras ind
Modificar un iRobot Create a pintura

Modificar un iRobot Create a pintura

este es un proyecto de robótica que probablemente podría ser completado por alguien que no tiene experiencia con los robots en todas. Lo digo porque antes de empezar, yo no tenía experiencia con robots. O escribir programas. De hecho, sabía cómo pint
Controlar tu réflex con el iPhone y Arduino BLE módulo

Controlar tu réflex con el iPhone y Arduino BLE módulo

Aquí le damos 10 minutos instructable para controlar la cámara réflex digital con Arduino y el iPhone.Paso 1: Lista de piezasUn Arduino UNO o Mega o Nano o etc.He utilizado un módulo HM-10 Bluetooth bajo pero creo que otros módulos de Ble funcionará
Controlar una impresora 3D con gestos con las manos

Controlar una impresora 3D con gestos con las manos

que he escrito antes pero administrar un laboratorio de tecnología creativa en la Universidad de California de los artes. I ayudar a los estudiantes con una amplia gama de habilidades, crear una amplia gama de proyectos. Uno de muchas partes de mi tr
Cómo controlar una impresora 3D con un teléfono a través de bricolaje AstroBox

Cómo controlar una impresora 3D con un teléfono a través de bricolaje AstroBox

Este Instructable le mostrará cómo configurar un servidor de impresión basado en Raspberry Pi para controlar y monitorear la impresora 3D remotamente (incluyendo corte remoto) desde un teléfono, tablet o computadora.Impresión inalámbricaPor supuesto,
Controlar tu habitación con tu móvil

Controlar tu habitación con tu móvil

Este instructable le mostrará cómo conectar la bombilla a su teléfono móvil y control mediante sensor de infrarrojos.Usted puede controlar cualquier cosa eléctrica en su casa después de este instructable, si comprende los principales conceptos.El har
Cómo controlar casi cualquier cosa con una cámara 3D (incluyendo su Arduino)

Cómo controlar casi cualquier cosa con una cámara 3D (incluyendo su Arduino)

si controlas su aplicación por el teclado, ratón o joystick después de fácil de controlar con gestos con las manos utilizando una cámara 3D. Este tutorial le mostrará cómo se puede hacer usando el emulador de dispositivos, un pedazo limpio de código