Computers & Mobile
Control the Parallel (or Serial) Port with Python

par.jpgSean writes “Here’s a follow-up to your recent perlParallel post. It’s a python module for controlling the parallel port. This module encapsulates the access for the parallel port. It provides backends for Python running on Windows and Linux. They also have a serial port controller here. Link.

0 thoughts on “Control the Parallel (or Serial) Port with Python

  1. Ok, reposting.

    Here’s a python script that uses PySerial to interact with buttons connected to your serial port. So you can use those buttons to do whatever you’d like on your computer. The circuit is super simple, just shorts 4 of the pins to ground:

    http://www.ovelha.org/pasteler0/2005/11/17/howto-external-winamp-control/

    I personally find it easier to splice an old serial cable than the way he did it. Cheaper too. And I hate to admit it, but there’s been a couple of times that I didn’t have a continuity meter handy and I simply spliced wires and connected them randomly until I got a reaction, and I havn’t fried any serial ports yet.

    And it works great with those USB to serial adaptors too.

    Note that there’s a really good Winamp plugin on that page that also interfaces with this circuit, and in that program are instructions to connect up to 15 buttons to a single serial port, and this script can probably be easily adapted to that. Also note that the above circuit works with the excellent Windows automation program Girder.

    Feel free to email wrybread@gmail dot-you-know-what with any questions.

    Anyway, here’s the script, which for some reason is showing up double-spaced:

    
    import serial # This is pyserial, you need that.
    import time
    
    # Adjust this for whatever number your comport is.
    com_port = 1
    
    print "Attempting to open your com port..."
    
    try:
        # Initialize our com port:
        buttons = serial.Serial(com_port)
    
        print "Successfully opened the com port."
        print "Your com port returned the following information:n"
        print buttons
    
    except:
        print "Whoops, failed to initialize your com port"
    
    
    
    print "nListening for button presses..."
    
    # Start monitoring button presses:
    while True:
        #modes are CTS, DSR, RI and CD. As in getCTS, getDSR, etc.
        if buttons.getCTS():
            print "Button 1 pressed!"
            # Do something here.
    
        if buttons.getDSR():
            print "Button 2 pressed!"
            # Do something here.
            
        if buttons.getRI():
            print "Button 3 pressed!"
            # Do something here.
            
        if buttons.getCD():
            print "Button 4 pressed!"
            # Do something here.
            
        time.sleep(.02)
    
    

    And to the person wishing for PHP support, I’d highly recommend sucking it up and learning Python…

  2. The article is really wonderful.Well how to control a board with ATmega16 microcontroller connected to the serial port with buttons on the screen.The buttons on the screen should function as toggle switches and pressing them should control any device such as a dc motor connected to the controller.

current: @adafruit - previous: MAKE, popular science, hackaday, engadget, fallon, braincraft ... howtoons, 2600...

View more articles by Phillip Torrone