I need to control 17 digital outputs and 1 digital input from software running on a generic PC. The two interfaces that I can expect to always have available are USB and Ethernet. I don't necessarily need low-latency access to the IO ports, and I only have to read the inputs once every few seconds, but I do need to toggle the outputs at precise time intervals.
To achieve this, I thought the best approach would be to get some generic, low-cost MCU with 18 IO pins and USB support, and program it to accept a buffer of simple time-stamped commands over USB, which it would queue and then execute at the proper times. Instructions would translate to English like: At +1.2s: output 1100101 00000100 0000
or At +1.3s: read inputs
.
Then I realized that what I was about to create is totally generic - it can be used in any application, not just mine. This got me thinking that something like this may already exist as a commercially-available product (a USB plug and MCU soldered to a board with pin-holes for the I/Os). But I can't find it, and I'm not sure what keywords to search for. Does anyone know if I can buy something like this?
Edit: After asking this question, I came across this related post: USB to GPIO module