Affordable CAT scan machine built with an Arduino
A CT (computed tomography), or CAT (computed axial tomography), scan is a type of medical imaging technique in which multiple X-ray “slices” come together to form a pseudo-3D model. CT scanners are the kinds of medical equipment that are so expensive that manufacturers don’t even bother listing prices on their websites. Suffice it to say that new CT scanners can cost several million dollars — not exactly within the budget of many hobbyists. So Pyrotechnical used an Arduino to build his own CT scanner.
Disclaimer: X-ray emitters are potentially dangerous. Don’t play with them if you don’t know what you’re doing!
Pyrotechnical’s CT scanner design relies on taking X-ray “slice” images rotationally, as opposed to a stack of slices like a resin 3D printer. The reason is that X-ray images penetrate an entire object and there isn’t any way to capture a true cross-sectional slice. But by snapping X-ray photos of an object from many different angles, it is possible to create what looks like a 3D view. It is even possible to use those to construct a 3D model.
The X-ray emitter and screen for this project came from an old mammography machine. After the X-rays pass through the imaged object, they collide with the special screen that emits light. That screen makes it easy to take pictures of the X-ray projection. The Arduino Uno board performs three functions. First, it spins a stepper motor to rotate a turntable on which the scanned object rests. Second, it activates the X-ray emitter’s power supply via a relay. Third, it activates a Bluetooth remote through another relay and that Bluetooth remote tells Pyrotechnical’s smartphone to snap a photo.
Capturing an X-ray image every eight degrees of rotation yields 45 photos. By converting those into frames of a video, one ends up with a pretty cool clip that gives viewers a “3D” X-ray look into the object. With a nifty program akin to photogrammetry software, one can even create a true 3D model from the images — though it is very low-resolution.