Minecraft wiki entry for Flying_machines, associated text: A semi-automatic engine needs player's intervention to move it, generally by updating a piston -- e.g., using flint and steel on it, or rapidly placing tripwire against it.
A fully automatic engine can be started by a single update, say by breaking a block (perhaps a button or a sign). A switch can be used, but is likely to be left behind once the machine starts to move. Stopping them can be more difficult -- many engines will stop only when they run into an obstacle. If the obstacle is wrongly shaped, it may break the machine, thus a prepared docking station may be needed.
A few "drivable" machines take advantage of the point that a note block produces an update when played, so a player riding the machine can trigger note blocks to start and/or stop the machine.
Engines can also differ in available directions and speed. The simplest can only move in a single direction, but two-way and even diagonal motion are possible. Again, dedicated docking stations are sometimes needed.