Introduction: Power to Neurons
This activity makes the learning of the structure of a neuron, the transmission of nerve impulses, and the response of the target organ practical and intuitive. Additionally, it simplifies and makes concepts like potential difference and current intensity more applicable, while also developing skills in computer programming and the use of software for 3D printing and laser cutting.
By using innovative technologies, we simulate the functioning of the synapse: upon detecting a noise (nerve stimulus), the electronic system performs a series of operations. The neurons, reproduced through 3D printing, house a series of LEDs that light up to mimic the "moving" nerve impulse. Once the light sequence is completed, a small servo motor activates a mechanical lever, emulating the movement of a muscle. All components will be mounted and enclosed in a wooden box, specifically designed and created using laser cutting.
This tutorial assumes a preliminary knowledge in the field of design and the use of equipment typical of a school workshop, and aims to illustrate all the necessary phases for the realization of an educational project using STEM skills. Theoretical insights related to 3D modeling, 3D printing, laser cutting, and electronics will not be covered.
Supplies
Basic 3d printer FDM
Servomotor MG995 or basic servomotor
Breadboard + jumpers + resistors
Powerbank (to power expansion board, micro:bit and Leds) + Power supply (to power servomotor)
Lightburn or similar Lasercutting software controller
Basic lasercutting machine
Basic workshop tools
Step 1: Authors
Concept and development: Barbara Costanzo
Technical supervision and documentation: Massimiliano Ferré
In collaboration with We Do Fablab, Vco Formazione and IC Beltrami Omegna
Step 2: 2D Drawing of Neurons
The first step is to search for images of neurons that suit our needs. To be able to print the outline of the neurons, we will necessarily need a vector image. We can proceed by taking one of these steps:
- Find a silhouette in vector format on the internet (e.g., dxf, svg, ai)
- Find a silhouette in raster format on the internet (e.g., jpg, png, bmp) and convert it to vector format using Inkscape or online tools
- Find a silhouette in raster format on the internet and, if the automatic conversion mentioned in the previous point does not work, trace it using appropriate vector graphic software (e.g., Inkscape)
Using Inkscape, we proceed with vectorization (step b):
- Import the raster images into Inkscape's workspace
- Select one image at a time and activate the "Path / Trace Bitmap..." tool in the right panel
- If the silhouette is very well defined (good resolution and good contrast), you can use the "Autotrace" detection mode so that the software semi-automatically detects the contour of the image
- Use the "Update Preview" button to view a preview of the result
- Press "Apply" once and leave the default parameters unchanged, obtaining a vector outline placed over the raster image
- Move the vector outline, check for any gaps or defects, and delete the raster image
It is possible to proceed in the same manner with the second image as well.
It is possible to better understand the difference between raster and vector graphics by zooming in on the processed images within Inkscape.
Attachments
Step 3: 3D Design of Neurons
By deleting the original raster images, you can save the project in *.SVG format. Note: It is recommended to save the two outlines separately (two SVG files). SVG is the only 2D vector file format supported by Tinkercad, the 3D modeling platform we will use to transform the neurons into three dimensions.
To import the previously saved SVG file, proceed as follows:
- Access the website Tinkercad and, if you do not already have an account, register with your personal information.
- Create a new 3D project.
- Select the "Import" button at the top right and upload one SVG file at a time. During the import phase, it is recommended to select the "Center on Art" setting and leave the dimensions unchanged, which can be adjusted later if necessary.
- The silhouettes will automatically be extruded with a thickness along the Z-axis of 10mm.
Resize the two 3D shapes according to your needs and ensure they fit within the maximum volume available from your 3D printer. A height of 140 mm and a thickness of 5 mm for each shape should be sufficient.
Be careful not to shrink the shapes too much, as in the next steps, we will need to include holes for housing the LEDs representing the nerve impulse.
Draw "hollow cylinders" with a diameter of 3 mm and a height greater than 5 mm, placing them as shown in the figure:
Combine the hollow shapes with the solid shapes to create holes where we will insert the LEDs.
Note: In our project, we are using LEDs with a diameter of 3 mm. Presumably, due to the volumetric shrinkage of the plastic after 3D printing, the holes will have a diameter smaller than 3 mm. We can therefore plan for a slight enlargement of the holes during the design phase or re-drill the holes after printing using a drill press or screwdriver (3 mm drill bit).
Full project here
Attachments
Step 4: Slicing and 3d Printing
In Tinkercad, select one outline at a time, press the "Export" button, and select the ".STL" format to save the files locally. These files will need to be optimized for 3D printing in the next step.
For the slicing phase, which is the procedure for optimizing the files for 3D printing, we have decided to use Ultimaker Cura software.
Since we do not have specific requirements for print quality and the geometries to be printed are not complex, we proceed quickly by following these steps:
- In the CURA software, select the 3D printer you will be using.
- Open both previously saved STL files.
- Arrange the objects close enough to each other.
- Choose PLA as the material.
- For the main print settings, we recommend:
- Resolution: 0.2 mm
- Infill: 20%
You can observe the "Preview" phase in the CURA software and see, in the bottom right corner:
- Print time
- Weight of the printed objects
- Length of the necessary filament
By pressing the "Save to Disk" button, you will be able to save the .GCODE file containing all the instructions for the selected 3D printer.
Step 5: Electrical Connections
To create the circuit, we chose to use the micro:bit microcontroller for two main reasons:
- In the school where the project was implemented, it was the only microcontroller suitable for students aged 6 to 13.
- The microcontroller has a built-in noise sensor, which will be used as an input signal to start the system (nerve stimulus).
However, given the large number of LEDs involved and the technical characteristics of the Micro:bit board, it may be easier to use the Arduino microcontroller.
To emulate the nerve impulse, we decided to use fifteen LED diodes, which will turn on and off according to the following sequence:
- Five green LEDs on the first neuron
- Two intermediate yellow LEDs
- Seven green LEDs on the second neuron
- One final yellow LED
The green LEDs are inside the neurons: the nerve impulse is electrical, and neurons function somewhat like cables transmitting electrical energy; however, instead of electrons, there is a passage of ions, mainly sodium, potassium, and calcium. When the electrical signal reaches the end of the neuron's extension, it cannot directly pass to another neuron or the target organ (muscle or gland) because there is a gap. Here, the signal is transmitted not electrically but chemically, by molecules released from the neuron reaching the next neuron or the target organ. Therefore, yellow LEDs are introduced to signify the change in the type of signal being transmitted.
The provided LEDs have the following characteristics:
- Ø3mm - 20mA - 2.2V
A light-emitting diode (LED) is an electronic component that lights up when a current passes through it. It's easy to connect the LEDs to the micro:bit using alligator clips or a breadboard, but to avoid damaging the board or the LEDs, it's important to understand the electronic functioning of these devices. LEDs are diodes that emit light and, as diodes, allow current to pass in only one direction, so it's important to connect them correctly. They have a long pin (+, "anode") and a shorter pin (-, "cathode").
Micro:bit can turn the LED on/off by providing power from one of its pins, for example, pin0, using a digital write function. The reference documentation for the single LED used lists the nominal current. It's often around 20 mA, and a current higher than this risks burning the LED.
Micro:bit provides a maximum of 90mA (v1) and 190mA (V2) to be distributed among the connected peripherals. Exceeding this value could damage the device. Each pin of the micro:bit also has a current supply limit of 5mA, and a maximum of 3 pins can be configured as active simultaneously. To avoid drawbacks, we can introduce a current-limiting resistor in our circuit. For our project, we will use a 1kOhm resistor. It's possible to use a resistance value lower than 1kOhm, but this value is easy to remember.
The LED can be driven by connecting the pin to the resistor, then to the + pole of the LED, and connecting the - pole of the LED to GND.
To emulate muscle movement, we opted to use the MG995 servo motor, with the following characteristics:
- Operating voltage: from 4.8Vdc to 7.2Vdc
- Current draw without movement: 10mA
- Current draw with movement and no load: 170mA
- Current draw with movement and maximum load: 1200mA
- Rotation: 120°
- Weight: 55g
Regarding muscle contraction, the neuron's electrical impulse is transformed into a chemical signal, with the release of molecules (neurotransmitters) that reach a specific area of the muscle fiber, "activating" it and allowing contraction (in summary, the mechanism is much more complex). Immediately after contraction, in the absence of another impulse, the muscle fiber returns to its original state, relaxing.
The motor is powered through the VCC and GND power pins. The MG995 servo motor has a signal input pin for motor rotation. This motor operates through pulse modulation.
Given the large number of LEDs to be used, a dedicated expansion board will be necessary to utilize all the pins available on the micro:bit, without using alligator clips (which are not stable for this project).
Other components to use:
- Breadboard
- Jumper wires
- 1kOhm resistors
Note: The micro:bit provides 3V output from each pin, so it's not possible to power the servo motor, which operates at an average voltage of 5V, directly from the micro:bit. Even though using the expansion board can get 5V output from the micropins, the current drawn by the servo motor during operation is still higher than the maximum deliverable by the microcontroller. Therefore, the servo motor must be powered separately, with a battery pack, a power bank, or a power supply with the following characteristics: 5V and min 2A output. Otherwise, we risk damaging the devices.
Electrical connections diagram:
P0-->green led
P1-->green led
P2-->green led
P3-->green led
P4-->green led
P5-->yellow led
P6-->yellow led
P7-->green led
P8-->green led
P9-->green led
P10-->green led
P11-->green led
P12-->green led
P13-->green led
P14-->yellow led
P16-->servomotor (signal)
Step 6: Software Developing
Micro:bit needs to be programmed using the MAKECODE development environment, available in both online and desktop versions: MAKECODE for micro
P3, P4, P6, P7, P9, P10 are coupled to the LED matrix display, and also its associated ambient light sensing mode. To disable the display driver feature (which will automatically disable the light sensing feature) call the DAL function display.enable(false)
Full code blocks project here
Step 7: Containment Box
In order to hold all the electronic components, it was necessary to think of a box, which would also serve as a exhibitor.
Having taken the total overall dimensions, we decided to use laser cutting technology to make a wooden box.
For the design we used www.makercase.com, which allows to conceive boxes of various shapes and with various types of joints, in a parametric way.
The vector drawing was then imported into the laser cutting machine control software (LIGHTBURN) and cutting was then initiated on 4mm-thick plywood.
The box was then assembled and glued together using Vinavil. Do not glue the top part!
Attachments
Step 8: Mechanical Arm
Finally, using TINKERCAD software, we decided to design a simple linkage system, with simple shapes, to emulate a human arm, including joints:
Since we wanted to laser cut these two shapes as well, we exported the design in SVG format, directly from Tinkercad, by selecting the “Export” button in the upper right corner and selecting the .SVG format.
The holes in which to pass the LEDs and to attach the mechanical arm and servo motor housing can be digitally brought back to the project using INKSCAPE or made later manually, with analog tools (drill press, jigsaw or fretsaw, hot glue).
For proper simulation of the movement of the mechanical arm, we used a rubber band.
Arm wood 3d project here.
Attachments
Step 9: Final Outcome and Tricks
The project shown to the students in class raised curiosity and wonder.
The lessons allowed the students to acquire theoretical information in a inspiring way, stimulating interest in the possibility of making replicas of the project with new features, taking advantage of the material made available to the school.
In the final video we note some minor malfunctions on the LED on/off sequence, most likely caused by some improper electrical connections and the fact that a single power source (power bank) was used to power Micro:bit and LEDS - through the expansion board - and by connecting, improperly VCC and GND of the servomotor directly to the expansion board. It is necessary to connect the servomotor power supply to a separate power supply.
Teacher Barbara Costanzo has drafted a short LEARNING UNIT (in Italian) specifically on the assumption that this project can be implemented in the classroom with students.