Among the many models we've come up with, one of our favorites is the LEGO canon! It's gone through a couple of revisions, and will probably be refined further, but the one documented here works well and is capable of firing projectiles up to about five or six feet. It's fairly easy to build and mostly uses common LEGO blocks, as well as a few less common ones, and two springs.
I've avoided describing the detailed placement of each brick because that would be dull and unnecessary. Just follow the pictures and try to keep the model strong by overlapping your bricks, and you'll do fine. If any step needs clarification, please let me know in the comments and I'll try to make improvements.
Step 1: Collect Your Pieces
The more exotic pieces required are shown below. They may be difficult to find, I'm not sure, and I'll describe ways to work around them, if necessary.
You'll also need a few rods to use for the launcher and projectiles. LEGO technic sets should be a good source for these.
Finally, you'll need a couple of springs. One should be fairly stiff and will provide the power for the launcher. The other should be looser and will be used in the trigger. I found a good pack of assorted springs at Home Depot for a decent price (Try this one: http://www.homedepot.com/p/Everbilt-Spring-Assortment-Kit-84-Pack-15642/202045461#.UggnQ9K1GSo).
Step 2: Build the Base
Step 3: Build the First Level
Step 4: Build the Launcher Base
Add enough smooth pieces to cover the launcher base. The launcher will slide across these pieces when the canon is fired.
Step 5: Build the Second Layer
Step 6: Build the Trigger (ideal Version)
In this version of the trigger, the funky triangle-shaped piece works great because, as the launcher is pushed back, the trigger is forced down and out of the way automatically, making loading pretty slick. In this version, the L-shaped piece is vital to keeping the trigger mechanism from falling apart.
Don't worry if you're missing either the funky triangle-shaped piece or the L-shaped piece. The next step describes a different trigger mechanism that is made of more common pieces, and will work just fine.
Step 7: Build the Trigger (alternative Version)
Step 8: Build the Third Level
Go ahead and insert the trigger into the trigger slot now. You should be able to push it down easily and it should spring back up.
Step 9: Build the Launcher
Assemble the launcher as shown below. After thinking about things, the smooth pieces at the front of the launcher are not really needed, but I like them. Use them or not. It's really your choice...
Step 10: Attach the Launcher
Okay, so that's not necessarily clear. Just look at the photo. You'll get there...
Step 11: Build the Fourth and Fifth Levels
Step 12: Cap It Off
And you're done! To load it, push a projectile into the center hole at the front of the canon. You may need to hold the trigger down while pushing, and release it to lock the launcher in place. Load two more projectiles, if you want, find a target (don't shoot out anyone's eyes, please), and fire!
There's obviously a lot of ways this can be adapted and improved, so go crazy with it and have fun!