Making Things Move: Finding Inappropriate Uses for Scripting Languages

A Presentation by Jonathan Oxer

Most software developers work purely on-screen, where the only external system interaction is through traditional devices like the keyboard and screen. However, it's easier than you may think to connect devices to your computer for control and data collection, and scripting languages like PHP, Perl and Python are ideal for rapid development of control, automation or data logging systems.

The presentation begins with a demonstration of communicating via the parallel port using trivial C helper programs that provide simple APIs for reading and writing data, making it possible to access the port even from languages without native parallel port support. Use of the parallel port to control devices and collect data is demonstrated including a letterbox sensor to detect when (physical) mail has been delivered, control of home lighting, and control of other devices such as electric curtains.

Other interface options including USB, PS/2, and regular serial ports are also covered, and other devices including a home-made RFID reader and electric door strike demonstrated. Surgically implantable RFID tags will also be demonstrated including how to interrogate implantable tags from common programming languages on Linux. Integration with the GNOKII SMS tools is demonstrated, showing how compiled languages such as C and even scripting languages can provide the glue that allows things such as:
- Delivery of physical mail to a letterbox generating an SMS.
- Sending an SMS to unlock a door.
- Unlocking a door, opening curtains and turning on lights when an RFID token is read.

Attendees will end the session with an appreciation for the flexibility of scripting languages as general-purpose glue for binding together assorted subsystems and interacting with the real world.

Direct link to video