====== The Open Hardware Project ====== In its beginning DAVID-laserscanner was designed to scan simply using a linelaser, a webcam and a reference scanning corner. So you can get scans with a surprising precision simply scanning by hand. You always have to keep in mind that you have this option. You do not need additional hardware, but it might help to increase speed, accuracy and to solve jobs, you can not do by freehand scanning. This pages are an attempt to gather and construct Open Hardware useful for your scanning setup. Open Hardware means that it should be possible for a little skilled woman or man to rebuild this or that with simple parts available all over the world. Hardware for DAVID means electronics, mechanics and optical devices useful to build an automated 3D scanner. You freely may use the technical designs, expand or modify them as you like. But remember the disclaimer(at bottom): **You use this on your own risk.** For the designers of these things, it would be a great help if you´d give some feedback. To do this please post a few lines in the DAVID-forum ([[http://www.david-laserscanner.com/forum/viewtopic.php?f=9&t=919]]) **As this is a WIKI page, this is always work in progress.** ---- ===== Electronics ===== === Controlling your system with ARDUINO === == Where to get parts == ****Arduino** is an open hardware project itself [[http://www.arduino.cc/]]. You can build such a microcontroller by yourself from single parts, as well as to buy it. You may even produce a clone of the board commercially. So you can get different **duinos (as e.g the Freeduino, Boarduino...). For it is widely spread in different DIY projects (interesting: 3D printer Reprap[[http://reprap.org/bin/view/Main/WebHome]]; or a Mocap suite at: [[http://www.instructables.com/id/Puppeteer_Motion_Capture_Costume/]]) there are tons of example codes in the www. It uses an easy to learn programming interface based on the freeware Processing. Another module used in this design is the **Easydriver v.3**. This is open hardware as well [[http://schmalzhaus.com/EasyDriver/]], commercially produced by Sparkfun. All other stuff you should get of your local electronics distributor. (A potentiometer, some resistors, a MOS maybe a CREE high power LED...) == Way of function == This design is based on the idea to keep the dialog between PC (DAVID) and the controller as simple as possible. For this communication the microcontroller listens to a serial COM port (which one, you see in the Windows device manager). So when, some day, DAVID might send this or that character to that port, the microcontroller will execute preset actions (stored in its firmware) as going to an initial position, running a scanning circle (laser on, motion, laser off, motion back), turning a turntable and more. This way it will be easy to use. To modify these action, you will have to alter the controllers firmware on your PC and load it to Arduino. For all essential actions are stored on the controller, you may use the device as a standalone without PC as well. Pushing a button on the device by hand will start the actions as well. This way you´ve the option to use the controller together with a videocam to capture the 3D data without PC and postprocess them using the DAVID video grabber. It controlls two stepper motors: to move the beam and to turn a turntable. == List of functions: == - go to initial position ( when PC sends "i" or button is doubleclicked, endswitch) - do a scanning circle ( laser on - travel - laser off - travel back; when PC sends "g" or button is clicked) - stop the scanning circle ( laser off and go back to initial position; when PC sends "s" or button is clicked during circle) - turn the turntable at a preset degree (when PC sends "t") - switch photolight on and off (when PC sends "l" or "d") - set the speed of lasermotion using a potentiometer on the board === Circuit === (test phase: the parts that drive the Cree LED and the voltage reduction to 3.3V are not tested yet) {{:user_page:magweb:davstep.jpg?500x}} === Circuit on a breadboard === {{:user_page:magweb:davstep_12_02.jpg?500x}} === Arduino Code === {{:user_page:magweb:sketch_davstep_12_02.zip|}}}