PC robot revisited (8 / 8 stap)

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.

Gerelateerde Artikelen

Hoe het bouwen van een Robot - The BeetleBot v2 (Revisited)

Hoe het bouwen van een Robot - The BeetleBot v2 (Revisited)

dit is de kever robot instructables revisited a la MythBusters stijl!Oorspronkelijk maakte ik een instructables over mijn kever robot versie 1.Het is nu tijd om u te tonen een nieuwe versie van deze prachtige robot. Deze nieuwe versie is veel gemakke
Opwaartse Up - Robot Balancing Revisited

Opwaartse Up - Robot Balancing Revisited

Dit instructable begeleidt u bij het bouwen van een eenvoudige, 2 wielen balancing robot, en besteedt enige tijd het verkennen van de verschillende factoren die beïnvloeden balancing prestaties. Dit is mijn tweede robot project, en ik had twee belang
Blinky papier Robot - 1e papier Circuit Project

Blinky papier Robot - 1e papier Circuit Project

Deze leuke kleine project is een snelle, goedkope Inleiding tot papier circuits. Het maakt ook gebruik van sturdy zelf permanent papier mensen van mijn vorige ' ible (Blinky is een gelukkige kleine robot met een vrolijke rood licht op zijn hoofd. Het
SADbot: de seizoensinvloeden getroffen tekening robot

SADbot: de seizoensinvloeden getroffen tekening robot

SADbot werd gemaakt in samenwerking met Ben Leduc-molens voor de galerie met venster op de Eyebeam Art + Technology Center. Het belangrijkste idee was om het gebruik van zonne-energie voor het aandrijven van een tekening machine die kan communiceren
Robot Heartbeat Valentine Card

Robot Heartbeat Valentine Card

Deze leuke Valentijn kaart maakt gebruik van Chibitronics circuit stickers een schattig robot tot leven te brengen.Voor deze kaart u hebt nodig:Letter formaat vel karton (8.5 "x 11")Grijze cardstockRoze en wit papier3 Chibitronics LED stickersCh
Verbeterde Spider Robot

Verbeterde Spider Robot

Ik ben altijd op zoek naar een nieuw project te doen op mijn robotica workshop voor kinderen. Terwijl spider robots intrigerend zijn, bijna alle van hen zijn ofwel te ingewikkeld waarbij 10 + servo's of manier over begroting voor mijn atelier. In de
Hoe maak je kleine robots met nRover bestuur

Hoe maak je kleine robots met nRover bestuur

De nRover, is een kleine bord gemaakt om te bouwen van kleine robots zoals UGV (onbemande ground voertuigen), lijn volgeling of Domotica, het kan worden gecontroleerd door wifi, Bluetooth en radio-controle. Het belangrijkste doel is de ontwikkeling v
Zachte Robots: Maak een kunstmatige spier Arm en grijper

Zachte Robots: Maak een kunstmatige spier Arm en grijper

Met behulp van artificiële lucht spieren, kunnen een zeer flexibele robotarm en grijper worden gemaakt.Deze zachte robot wordt aangedreven door perslucht en elke één van de 11 spieren kan worden gecontroleerd door een standaard universele infrarood a
Modulaire Robotic Hand & Arm (met uitgebreide Range of Motion) (3D afgedrukt)

Modulaire Robotic Hand & Arm (met uitgebreide Range of Motion) (3D afgedrukt)

Hallo iedereen! Dit is mijn prototype hand en arm prothese, die ik heb zijn ontwerpen voor verscheidene maanden nu. Het is nog steeds een beetje van een work in progress, en aangezien ik afwerken van met college klassen voor het semester ik heb nog n
Dragon kostuum voor industriële Robot

Dragon kostuum voor industriële Robot

Dit leerprogramma zal u tonen hoe een draak kostuum voor een industriële robot te maken.Ik kreeg een goede deal op een industriële robot van FANUC LRMate 200IC/5 h voor experimenten thuis. Zoals mijn dochter is nogal gefascineerd door de machine, die
Minecraft Instructables Robot

Minecraft Instructables Robot

Ik weet niet over u, maar ik hou van de Instructables Robot. Dus besloten heb ik om een in Minecraft. Zijn vrij groot en het is hol. Ik omgezet de binnenkant in een huis. Ik hoop dat u geniet van dit instructable. Vergeet niet te stemmen.Stap 1: Beno
Mini Robot Platform

Mini Robot Platform

Het doel van dit project is het ontwikkelen van een miniatuur-chassis als u wilt experimenteren met basaal swarm robots. De voornaamste inspiratie is James McLurkin van fantastische MIT-project van de vroege 1990 's http://www.ai.mit.edu/projects/ant
Robot krab (strand schoonmaken)

Robot krab (strand schoonmaken)

Het doel van dit project is de ontwikkeling van de robot van een dienst die zal worden gebruikt voor het reinigen van buiten omgevingen, nauwkeuriger kust plaatsen zoals de stranden. Een van de belangrijkste elementen in de ontwikkeling van dit proje
Instructables officiële Papercraft Robot!

Instructables officiële Papercraft Robot!

Gefeliciteerd! U hebt besloten om de fantastische wereld van officiële Instructables Robot Papercrafting. Met slechts een paar benodigdheden heb je (hopelijk) rond het huis, kunt u een bureau buddy, een bewaker van uw externe televisie of een ornamen