Stap 8: Software.
In uitvoering...
Robot os. De oneindige lus.
Terwijl true % 'instellen of opnieuw instellen van waarden input sensor-waardes' doen andere jobs wat nodig is op basis van invoerwaarden. wend deel I. instellen of opnieuw instellen van waarden. Deel II krijgen sensor-waardes. Het lezen van de Input-pinnen
De opdracht voor het lezen van de havens in qbasic is INP. Het adres je lezen moet van is het adres voor de parallelle poort (meestal 378h) + 1; dus is het gebruikelijke adres 379h. Zoals ik voordien vermeldde, zijn de pinnen gebruikt voor input 10-13 en 15. Lezen van de verschillende pinnen is iets moeilijker dan schrijven naar de havens, zoals u hebt om het masker uit de pinnen je niet geïnteresseerd in. Als je de poort leest, worden de eerste 3 bits geretourneerd niet gebruikt. De onderstaande code van qbasic luidt bijvoorbeeld pin 12 (van papier). Wanneer deze poort is hoog, "out of van papier / pin 12 van een knevel gevoorzid" getoond: gegevens = inp (& h379) als (gegevens en 32) = 32 dan afdrukken "uit papier / pin 12 hoog" in de tabel hieronder lijst de pin input pin-nummer, het normale doel, en het nummer dat vereist is om het te lezen (bv 32 werd gebruikt in het bovenstaande voorbeeld): pincode nummer normaal doel om te lezen van 10 Ackowledge 64 11 hoge wanneer niet drukke 128 12 hoog wanneer uit papier 32 13 hoge wanneer printer online 16 15 hoog als zich geen fout 8
Als u binaire begrijpt, moet je onmiddellijk zien waar deze getallen vandaan, en waarom ze worden gebruikt om te maskeren dat alle van de andere pinnen die we niet proberen om te lezen. Het eenvoudigste ding dat u gebruiken kunt om dit te testen is om alleen verbinding maken met een schakelaar tussen een invoer pin en een grond pin (18-25). Bijvoorbeeld, als u verbinding maakt met een schakelaar tussen 15 en 20 pinnen, zou u de volgende code om te controleren wanneer de schakelaar is geduwd: start: res = INP(&H379) CLS als (res en 8) = 8 dan PRINT "knop ingedrukt" anders PRINT "Button niet duwde" GEVALVANVERTRAGING = 1 tot en met 500: volgende vertraging GOTO start ik weet dat deze code is een beetje rommelig , en zal flikkeren, maar het geschreven voor duidelijkheid. Dezelfde code kan worden gebruikt om te controleren van de andere vier lijningangen door het veranderen van de '8' naar een ander nummer uit de tabel. Deel III andere banen. Deel IV We kunt programma's zoals parcon waarden instellen op de parallelle poort voor dergelijke jpbs als het beheersen van de macht-trein. Zie ook:
Portcontrol is een leuk programma voor gegevens lezen en schrijven van gegevens naar de poorten die beschikbaar zijn op:
http://www.epanorama.net/circuits/portcontrol.tar
U zult een C-compiler voor uw systeem te laten werken,
Port controlesoftware voor Linux
Versie 0.3
Copyright Tomi Engdahl 1996-2005
Introductie
Dit softwarepakket biedt toegang tot PC computer hardware I/O poorten onder Linux besturingssysteem.
Deze softare pakket is ontworpen om te draaien op linuxsysteem dat op normale PC-hardware draait. De software is getest om te draaien mooi op Fedora Core 4 Linux-distributie. U moet de GCC aan het compileren van de programma's.
Dit pakket bevat de volgende hulpprogramma's:
lptout eenvoudige programma om te controleren van LPT1 printer poort data pins portcontrol algemene gebruiken I/O poort lezen en schrijven van toepassing control.php AJAX/PHP gebaseerde webinterface voor de parallelle poort controleren
De software zijn geleverd zonder enige garantie van hun juistheid. Ze gebruiken op uw eigen risico.
Compileren
Run: zorg installeren
Installeren
Log in als root. Run: zorg installeren
De software is nu geïnstalleerd in/usr/plaatselijke/sbin/directory gebruiken lptout
De gebruiker heeft de wortel previledges toegang hebben tot de poorten voor het programma te draaien. Om deze reden de het programma met SUID ROOT instellingen, wat betekent dat elke keer dat het programma wordt uitgevoerd dat het automatisch wordt uitgevoerd bij het previledges van de hoofdmap ongeacht wie het beheert is geïnstalleerd. Dit programma is ontworpen om de toegang van de parallelle poort van de LPT1 bij uitvoeradres 0x378 (normale adres voor de parallelle poort geïntegreerd op systeemkaart)
Opdracht /usr/local/sbin/lptout 0xFF kom bijvoorbeeld alle gegevens pinnen in de LPT1-poort te hoog staat (1). Opdracht /usr/local/sbin/lptout 0x00 kom alle gegevens pinnen op te laag staat (0).
Met behulp van portcontrol
portconrol is een eenvoudige General-Purpose I/O poort controle-programma voor Linux. U kunt de ondersteunde I/O poorten lezen en schrijven. De software kunt schrijven opgegeven waarde naar de haven, het lezen van waarde op gegeven uitvoeradres en af te drukken uit om het scherm in verschillende formaten en bit-niveau manipulatie van de gegevens van de haven.
Voorbeelden
/usr/local/sbin/portcontrol LPT1DATA Lees setbit 1 schrijven leest gegevens van de parallelle poort, set beetje D1 1 en schrijft waarde terug effectief stelt de LPT1-pin D1 in parallelle poort aan logica 1
/usr/local/sbin/portcontrol LPT1DATA resetbit leest parallelle poort gegevens lezen, set beetje D1 0 en schrijft waarde terug effectief stelt de LPT1-pin D1 in parallelle poort aan logica 0
/usr/local/sbin/portcontrol LPT1DATA WaardeInstellen 0xff schrijven schrijft waarde 0xff (255 dec) op de parallelle poort ingesteld effectief alle LPT1 gegevens pinnen aan logica 1
/usr/local/sbin/portcontrol LPT1DATA Lees print bin leest de paralelle poort data pin Staten en afdrukken van de resultaten als binaire getallen naar het scherm (standaard output).
/usr/local/sbin/portcontrol LPT1DATA Lees print bin leest de paralelle poort data pin Staten en afdrukken van de resultaten als binaire getallen naar het scherm (standaard output).
/usr/local/sbin/portcontrol LPT1DATA Lees printbits 021 leest de paralelle poort data pin staat en de Staten van bits D0, D2 en D1 in die volgorde op het scherm (standaard output) afgedrukt.
Ondersteunde poort-id LPT1DATA LPT1-poort data lijnen controle (0x378) LPT1STATUS LPT1 registreren printer status ingangen LPT1HANDSHAKE LPT1 handstake uitvoer controle JOYSTICK Joystick poort lezing (enige lezing zinvol)
Ondersteunde opdrachten gegevens afdrukken DEC lezen, geeft uitvoer als decimaal getal gegevens afdrukken HEX lezen, geeft output als hexadecimale numerieke gegevens afdrukken BIN lezen, geeft output als binaire getal PRINTBITS bits leest de opgegeven bits in de opgegeven volgorde (0..7)
SCHRIJVEN dat schrijft inschrijven waarde te lezen leest havenwaarde via de opgegeven poort te registreren
WaardeInstellen (SetValue) waarde stelt de gegeven waarde te registreren en de waarde voert en met gegeven waarde en registreren of waarde voert of met de gegeven waarde en register XOR waarde voert XOR met gegeven waarde en register SETBITS bits Sets gegeven van bits naar 1 in registreren RESETBITS bits Sets gegeven bits 0 in register SETBIT bits hetzelfde als SETBITS RESETBIT bits hetzelfde als RESETBITS TOGGLEBITS bits knevels opgegeven waarden bit
waarde kan geeft als decimaal getal of heaxadecimal beginnend met 0 x-bits is een lijst van bit positie-id van 0 tot en met 7
Poortnamen zijn ment op hoge geval worden geschreven. Opdrachten op lage geval.
Met behulp van de webinterface
De web-interface voor het beheersen van de paralle poort is eenvoudige moderne web-gebaseerde interface voor het beheersen van de parallelle poort. Om het te maken moet u in uw systeem de volgende onderdelen: - Apache webserver met PHP5 ondersteuning werken met het - portcontrol software geïnstalleerd op de standaard installatie directory - SAJAX eenvoudige Ajax Toolkit door ModernMethod - moderne webbrowser die JavaScript (IE6, Mozilla Firefox) ondersteunt
Installeren van de web-interface is eenvoudig. Alles wat u nodig hebt is het control.php-bestand te kopiëren naar een geschikte plaats op uw webdirectory gewenste het kopie het Sajax.php bestand uit het pakket SAJAX naar dezelfde directory waar u de control.php hebt.
Dan ga naar de URL waar u hebt die control.php toegankelijk. U ziet de statusregel plus een aantal knoppen. De statusbalk moet automatisch bijwerken om de 5 seconden met de status van de parallelle poort en de huidige tijd op de servercomputer. De knoppen in te drukken zal het veranderen van de parallelle poort bits Staten.
Merk op dat op sommige systemen die het PHP script kan warm genoeg rechten om de software van de portconrol. Controleer uw toegangsrechten om ervoor te zorgen dat rechten kloppen (het systeem werkte niet op mijn Fedora Core 4 systeem toen ik had SELinux beveiliging ingeschakeld).
SAJAX eenvoudige Ajax Toolkit door ModernMethod kan worden gedownload van http://www.modernmethod.com/sajax/
Opmerking: Er is een een andere versie van het control.php-bestand beschikbaar. Dit bestand controlfile.php werk vrij veel op dezelfde manier, maar in plaats van controlerende parallelle poort schrijft en leest de status van een bestand (status.txt in de zelfde folder zoals het script is). Het kan worden gebruikt om te testen het AJAX/PHP gebaseerde controlesysteem.