I just want to reply to this bit for other people reading this thread. An alternative approach if you want to use a spare laptop is to use an Arduino (or whatever), which is just a USB serial COM device, and then send/receive data to/from the Arduino with any software you like (Python, Java...