C is for Control: A Laboratory Text for Hardware Interfacing with C and C++