Paso 8: Software.
En progreso...
Sistema operativo del robot. El bucle infinito.
Mientras que % true 'establece o restablece valores de entrada sensor' otros trabajos hacen lo que se necesita basado en los valores de entrada. WEND parte I. establecer o restablecer valores. Parte II obtener valores del sensor. Leyendo las clavijas de entrada
El comando para leer de los puertos en qbasic es INP. La dirección que necesita leer es la dirección del puerto paralelo (generalmente 378h) + 1; por lo que la dirección generalmente es 379h. Como mencioné antes, los pines utilizados para la entrada son 10-13 y 15. Leyendo las clavijas diferentes es poco más difícil de escribir en los puertos, ya que tiene que cubrir los pasadores no interesa. Al leer el puerto, los primeros 3 bits devueltos no se utilizan. Por ejemplo, el código de qbasic a continuación leyó el pin 12 (de papel). Cuando este puerto es alto, "sobre papel / perno 12 activada" se mostrará: datos = inp (& h379) si (datos y 32) = 32 entonces Imprimir "fuera del papel / perno alto 12" la tabla lista el pin de entrada número de pin, su propósito normal y el número necesario para leerlo (por ejemplo, 32 fue utilizado en el ejemplo anterior): perno número Normal propósito leer 10 Ackowledge 64 11 alta cuando no ocupados 128 12 alta cuando de papel 32 13 cuando alta impresora en línea 16 15 alta cuando no hay error 8
Si entiende binario, usted debe ver inmediatamente dónde vienen estos números, y por qué se utilizan a la máscara a todos los otros pines que no estamos tratando de leer. La cosa más simple que se puede utilizar para probar esto es sólo tiene que conectar un interruptor entre un pin de entrada y un pin de tierra (18-25). Por ejemplo, si se conecta un interruptor entre 15 y 20, podría utilizar el código siguiente para controlar cuando se presiona el interruptor: Inicio: res = INP(&H379) CLS IF (res y 8) = 8 entonces Imprimir "pulsación" ELSE PRINT "Botón no presionado" de demora = 1 a 500: siguiente retraso Inicio GOTO sé este código es un poco desordenado y parpadean, pero está escrito para mayor claridad. El mismo código puede utilizarse para controlar las otras cuatro líneas de entrada cambiando a '8' a otro número de la tabla. Parte III otros trabajos. Parte IV se puede utilizar programas como parcon para establecer los valores en el puerto paralelo para tal jpbs como controlar el tren de potencia. Vea también:
Portcontrol es un programa agradable para leer datos y escribir datos a los puertos disponibles en:
http://www.ePanorama.net/Circuits/portcontrol.tar
Se necesita un compilador de C para su sistema para que funcione,
Software de control puerto para Linux
Versión 0.3
Derechos de autor Tomi Engdahl 1996-2005
Introducción
Este paquete de software proporciona acceso a puertos de E/S de hardware PC ordenador bajo sistema operativo Linux.
Este paquete de softare está diseñado para ejecutarse en el sistema Linux que se ejecuta en hardware de PC normal. El software ha sido probado para funcionar bien en la distribución de Linux de Fedora Core 4. Necesita GCC para compilar los programas.
Este paquete proporciona las siguientes herramientas:
sencillo programa lptout controlar LPT1 impresora puerto datos pins portcontrol general uso de puerto de E/S de lectura y escritura control.php aplicación basada en AJAX/PHP interfaz web para controlar el puerto paralelo
El software se proporciona sin ninguna garantía de su corrección. Utilizarlos en su propio riesgo.
Compilación de
Ejecutar: hacer instalar
Instalación de
Inicie sesión como root. Ejecutar: hacer instalar
El software ahora se instala en/usr/local/sbin/directorio usando lptout
El usuario tiene que tener la raíz previledges tener acceso a los puertos para el programa a ejecutar. Por esta razón el el programa se instala con ajustes de SUID ROOT, lo que significa que cada vez que ejecuta el programa que se ejecuta automáticamente en previledges de raíz no importa que funciona. Este programa está diseñado para acceder a puerto paralelo de LPT1 a dirección de I/O 0 x 378 (dirección normal para puerto paralelo integrado al Motherboard, Tarjeta madre)
Por ejemplo comando /usr/local/sbin/lptout 0xFF se convertirá todos los pines de datos en el puerto de LPT1 a estado alto (1). Comando /usr/local/sbin/lptout 0 x 00 cambiará todos los pines de datos a estado bajo (0).
Utilizando portcontrol
portconrol es un programa de control de puerto de I/O de propósito general simple para Linux. Permite escribir y leer de los puertos de E/S soportados. El software permite escribir el valor especificado al puerto, leer valor en dado dirección de la entrada-salida e imprime a la pantalla en diferentes formatos y manipulación a nivel de bit de los datos de puerto.
Ejemplos
/usr/local/sbin/portcontrol LPT1DATA Lea setbit 1 escritura lee datos del puerto paralelo, set bit D1 a 1 y escribe el valor nuevo efectivamente establece el LPT1 pin D1 en puerto paralelo a lógica 1
/usr/local/sbin/portcontrol LPT1DATA Lee resetbit Lee puerto paralelo datos, establecer poco D1 a valor 0 y escribe detrás establece efectivamente el LPT1 pin D1 en puerto paralelo a lógica 0
/usr/local/sbin/portcontrol LPT1DATA valor 0xff escritura escribe valor 0xff (255 dec) para el puerto paralelo con eficacia establece todos los datos de LPT1 a lógica 1
/usr/local/sbin/portcontrol LPT1DATA Lea Lee bin impresión puerto paralelo pin de datos Estados e imprime los resultados como números binarios a la pantalla (salida estándar).
/usr/local/sbin/portcontrol LPT1DATA Lea Lee bin impresión puerto paralelo pin de datos Estados e imprime los resultados como números binarios a la pantalla (salida estándar).
/usr/local/sbin/portcontrol LPT1DATA Lea printbits 021 lee el puerto paralelo pin de datos Estados e imprime los Estados de bits D0, D2 y D1 en ese orden a la pantalla (salida estándar).
Puerto compatible identificadores LPT1DATA LPT1 puerto datos líneas control (0 x 378) LPT1STATUS LPT1 registro de entradas de estado de impresora LPT1 LPT1HANDSHAKE handstake salida control de lectura de Puerto JOYSTICK Joystick (lectura sólo tiene sentido)
Comandos admitidos impresión Dic leer datos, da salida como número decimal HEX imprimir leer datos, da salida como datos de impresión BIN leer hexadecimales del número, da salida como binario número pedacitos PRINTBITS Lee los bits especificados en el orden indicado (0..7)
ESCRIBIR que escribe registro valor valor leer Lee de puerto de puerto especificado para registrar
Valor SETVALUE establece el valor dado para registrar y valorar y con dado valor y registro realiza de valor o con valor y registro XOR XOR realiza con de valor dado valor y registro de bits SETBITS conjuntos dados de bits a 1 en registro de RESETBITS bits conjuntos dados bits a 0 en registro SETBIT pedacitos como pedacitos de SETBITS RESETBIT RESETBITS TOGGLEBITS bits cambia igual especificó valores de bits
valor puede ser le da como número decimal o heaxadecimal a partir de pedacitos de x 0 es una lista de identificadores de posición de bit de 0 a 7
Nombres de puertos son ción escrita en caja alta. Comandos en caso baja.
Mediante interfaz web
La interfaz web para el control de paralelismo puerto es interfaz simple basada en la web moderna para el control de puerto paralelo. Para hacerlo necesita tener las siguientes partes en su sistema: - servidor de web Apache con PHP5 soporte trabajar con él - portcontrol software instalado por defecto instalar directorio - SAJAX Simple Ajax Toolkit por ModernMethod - moderno navegador que soporte JavaScript (IE6, Mozilla Firefox)
Instalar la interfaz web es simple. Todo lo que necesitas es copiar el archivo control.php un lugar adecuado de su directorio web desea que copia el archivo Sajax.php del paquete SAJAX en el mismo directorio donde tienes el control.php.
Luego ir a la URL donde tienes control.php accesible. Usted debe ver línea de estado un conjunto de botones de control. La barra de Estado debe actualizar automáticamente cada 5 segundos con el estado del puerto paralelo y la hora actual en el equipo servidor. Presiona los botones cambiarán los Estados de bits del puerto paralelo.
Tenga en cuenta que en algunos sistemas que el script PHP puede caliente tiene suficientes derechos para ejecutar el software portconrol. Compruebe los derechos de acceso para asegurarse de que los derechos son correctos (el sistema no funcionó en mi Fedora Core 4 sistema cuando tenia activada la seguridad de SELinux).
SAJAX Simple Ajax Toolkit por ModernMethod puede ser descargado de http://www.modernmethod.com/sajax/
Nota: Existe una otra versión del archivo control.php. Este trabajo de controlfile.php de archivo bastante mucho la misma manera, pero en lugar de control puerto paralelo escribe y lee el estado de un archivo (status.txt en el mismo directorio que el script es). Puede ser utilizado para probar el sistema de control basado en AJAX/PHP.