Single Cylinder Air Engine runs on compressed air, a vacuum cleaner, a balloon, or even lung power. I've included three adapters in the design to interface with each.
The design incorporates two ports, one upper and one lower. When Single Cylinder Air Engine is viewed from the port side, "Wheel Piston.stl" rotates clockwise when pressure is applied to the upper port, and counter clockwise when a vacuum is applied to the upper port. As pressure or vacuum is applied to the upper port, the lower port functions as an exhaust (when pressure is applied) or an intake (when vacuum is applied). The opposite occurs when the lower port is used for pressure or vacuum.
Video of prototype on balloon power is here: https://www.youtube.com/watch?v=r-ZsHjWmFu4.
Video of prototype on vacuum cleaner power in slow motion is here: https://www.youtube.com/watch?v=BCS_2vPoIsQ.
I probably forgot a file or two or something, so if you have any questions, please feel free to ask.
Designed using Fusion 360, sliced using Cura 2.3.1, and printed in PLA on an Ultimaker 3 Extended.