As you mentioned the Arduino, I guess you have access to soldering equipment and electronic components. You can of course build your own USB IR transceiver then, but not by simply attaching two IR LEDs to your USB port. Linux Infrared Remote Control has some schematics that might be of interest for you.
@Q139 emplace_back is not always faster. It can be faster in certain scenarios ;)
If you have a vector of basic types (ints, floats, pointers etc.) you won't see a difference because no matter which one you use there's just gonna be a value written to memory location (probably just right from a CPU register so you can't go faster than that).
Now for the cases it does matter. Lets say you have a big, expensive to construct or copy structure:
// Move construction
This is better, but not all types are movable and you're still doing two things while you could be doing just one:
This doesn't copy or move anything into the vector. It creates the thing already inside (usually via placement new). If the constructor takes parameters (like in this example 42) they are passed using perfect forwarding so everything is nice and optimizable.
For a scenario a push_back is needed - that's whenever you have an item already created and you want to put it in a vector. For example a usual case: