Justin Rimmer

DIY 3D Scanner

by Justin on Mar.14, 2010, under 3D Modeling


High-resolution Webcam

There exist, online, resources and instructions on building your own DIY (do-it-yourself) 3D scanner. All you need is: a webcam, a sight-line laser and white foam-core board. The webcam will watch how the laser falls across the object being scanned and the white backing, to triangulate individual points in space. The board has an alignment pattern that the camera also sees, so that the program understands the spacial orientation of any laser lines that it will see. The concept is quite ingenious. A commercial scanner will cost you hundreds of dollars. The DIY version does the same thing, though it is a tad temperamental to work with. My friend, Donovan, lent his assistance with the project. We used a deer skull for our scan subject. The software available for this project, as well as instructions and support can be found at http://www.david-laserscanner.com .

Sight-line Laser

A green laser is recommended; all we had to work with was a red laser. And the laser has to be a sight-line laser, that is, a laser that beams a spread of light, instead of a single point. The spread projects a line across the object being scanned. It makes it possible to observe the angles that exist between the object being scanned, and the backdrop. The backdrop must be a 90-degree corner with the calibration pattern. It can be any scale. When a scan starts, the operator sweeps the laser across the object, and the image will take shape on the computer screen. Since the camera and object must remain stationary, only one side of the object can be scanned at a time. After a scan is complete, the 3-dimensional representation of the face can be viewed from different angels. Once all of the scans are completed, the the sides can be combined to form the final object, viewable from any angle. This software even has the ability to take an image snapshot of the face, to wrap the model with. So that colors and textures can be represented. I didn’t happen to play with that feature. And also, since I’m only working off of the trial software, my scans are significantly limited in resolution.

Deer Skull

I do 3D modeling for hobby. This has been a neat experience and a fascinating tool to try out.

Scanner Setup

Skull in front of alignment pattern

Scanner in operation

Scan of a face

Leave a Comment more...

Apple I Clone by Brial Computers

by Justin on Dec.05, 2009, under Electronics

Apple I Clone

Apple I Clone

A couple of years ago I built this single-board computer from a kit. The computer is a clone of an original Apple computer, designed by Steve Wozniak. Brial Computers sells this kit and other hobbyist projects.

This computer was a great learning experience. It uses the 6502 microprocessor as its brain. Not only did the kit teach me about computer design, but it also yielded a fully function low-level computer. I learned the 6502 assembly language so that I could write my own programs for it. The “Replica I” comes with three pieces of software. It comes with the Woz Monitor, Interger Basic and an Assembler. Each one of these programs teaches programming concepts. When the machine “boots” (if you can call it that), it drops you into the Woz Monitor, which is a memory editor and program entry point. From here you can load your programs into memory, by

Building the Replica I

Building the Replica I

hand and execute them. This program was the only piece of code on the original Apple computer. The original model had a ROM that was limited to 256 bytes of code. The replica has a much larger ROM, with room for all three of the program. The original Apple computer could also run Integer Basic, but it had to be loaded by hand, or with the use of an optional cassette drive.

Code execution

Code execution

Here I’ve entered the command, 300.30F which instructs the Woz Monitor to display the contents of memory addresses $0300 through $030F. The addresses are represented in hexadecimal. This means that there are 65536 1-byte memory blocks, addressable. The 6502 has a special mode that will allow it to access the first 256 bytes in less instruction cycles. This particular machine has 32KB of RAM (addresses $0000-7FFF) and 8KB of ROM (addresses $8000-9FFF). And this machine uses memory addresses higher than $9FFF to send and receive instructions from peripherals, as if they were mapped in memory. The output peripheral being the video controller which drives the television monitor, and the input peripheral being the keyboard. The video controller is a slow shift-register. It has to weight for all of the text to slide through before a new character can be displayed on the screen. This introduces about a

Opcode table

Opcode table

17ms delay with each character that presented on the screen. This creates a noticeable lag when large amounts of text are drawn. The Replica intentionally duplicates the effect using a specially programmed Atmel microcontroller to drive the video signal. The original Apple had an ASCII keyboard, while the Replica I has a more conventional PS/2 style keyboard. You can also see that I issued the command 300:FF. This will write the value FF to memory block $0300. And I typed 300 to have the computer display the contents of that block, verifying that the contents were written to memory. If I were to append an R to the end of that command, making it 300R, the Replica I would begin execution of code starting at that point.

For the novelty and experience of using an Apple computer, I wrote a few small programs, and assembled them by hand, just like the original Apple. The Replica I comes with an assembler so this level of

Ports

Ports

tediousness is no longer necessary. But I wanted the experience of it. Using a table of op-codes for the hexadecimal values to be entered in memory, I wrote my first simple program that does nothing more than output a character that the user types on the keyboard. From there, and using my original program as a modular component, I was able to write a program that could store a string of text and then output it. The concepts can be built upon. I considered porting my “Stock Buddy” program that I had written for the TI-89 Graphing calculator to my Replica I for the novelty of it. The lack of a non-volitile storage media is what most deturs me from the endeavor. Brial Computers has an CF card drive as an optional peripheral that I may eventually purchase.

Wooden stand-offs

Wooden stand-offs

I built a wooden backing and placed the computer on display atop my server shelf. The Replica I also includes a serial and USB interface the original Apple computer did not. These are here to interface the device with a PC so that the programs can be loaded with the aid of a PC, instead of by hand, for development purposes.

Replica I

Replica I

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

    Archives

    All entries, chronologically...