FERRO SPIKES












Introduction


My biggest motivation for entering the Fabacademy was to try and complement my passion for art with some skills of digital fabrication,
it seemed like a chance to make something attracting, new, and different!

I saw some demos online of what Ferro-fluids could do, and it was at a moment that I saw the spikes rising up the surface that I felt I’m
seeing magic! I got fascinated by the phenomenon and although the details of what happens were like a black box, I felt much curiosity
to experiment with a new material with this much artistic potential!

Coming from a background in architecture, I first dreamt of something big and rather showy, a big sculpture that would impress anyone and
give an “awe” factor. Something like a big dynamic sculpture, for example!!



But After some research; I felt that I should rather experiment with a small model, just to master understand the fluid’s properties and
control it perfectly. Later on, I can make something more.
This is where I dove into the technical side of the Fabacademy, a completely new territory. And the journey was definitely full of new things to learn.
Read along and get to know my journey a bit more :)


Ferrofluids, what are they??!!



Ferrofluids are "colloidal liquids made of nanoscale ferromagnetic, particles suspended in a carrier fluid (usually an organic solvent or water).
Each tiny particle is thoroughly coated with a surfactant to inhibit clumping.

Introducing FerroSpikes


This project is a work of art, in continuous development and exploration. Composed mainly of a chamber containing some Ferrofluids.
Pre-specified spots on this fluid’s surface are set into motion by a Bluetooth connected remote controller which sends signals activating an
electromagnet that moves with the fluid.
The control over the fluid motion is minimal, leaving the fluid a space for randomness in motion, and much space for art to be witnessed!



Experiments


Part 1: Ferro fluids


Although my project was mainly about seeing how to control Ferro fluids and trying to make something artistic out of that; my growing curiosity
about the material got me to try making my own fluids from scratch.
So, here are the experiments with making a Ferro fluid from basic components at the lab:




While still researching the topic, a lucky coincident showed that a fellow Fab cacademy student from another lab was also working on a
project including Ferro fluids. This opened up a discussion and Professor Neil got interested in the experiment, and suggested that
I add dish washing soap and see if it helps the fluid flow better.So I tried:



The differences were:
1) The mixture became more homogeneous, meaning it didn’t look like the components are separated anymore
2) The fluids response to external motion became more obvious. It became less jelly-like and more fluid.
Yet, the desired change, which is to see spikes forming, still didn’t happen.

A bit of further research showed that there are many more variables to experiment with.
And since this was more of a personal wish to try making the fluid from scratch; and a considerable time constraint was pushing on my
schedule,I decided to rather buy a readily made sample so that I get to start working on a functional model
with the electromagnets and a working fluid mixture.

Part 2: making the electromagnets:


Since the electromagnets were the main active components of the project, and because of the big effect on the fluid motion
it was important for me to understand how they work. So I decided to make them from scratch on my own.

I first tried with a wire wrapped around a screw. This was a proof of concept before I decide on the exact specifications that I need.


The result from electromagnets and ferrofluid:




3D Design




I first started with drawing a 3d model of my wanted design so that I later would fabricate all the necessary parts one by one:
I wanted to keep it as simple as possible. Functionally, the main part was a holder for the electromagnets
which were 6 pieces.

There was also a base for the whole device, a container for the fluids, and some other bits and pieces that’ll be shown next.

The CAD modeling was done using Fusion

I started by drawing a sphere, and then made It semi spherical hollow shape with a thickness of 10 mm.




Afterwards, I sketched a pattern for a holder that’s going to lift the sphere and the fluid container.
I extruded it from creat menu with a thickness equal to 18 mm, which is my wood size of choice.




I made two of these, and put them at a90 degree angle to each other.Then I drew a simple base for that, just a simple box.




2D Design & Laser cutting


I used AutoCAD software, made a circular plate with holes to carry the electromagnets beneath the fluid container.
I decided on 4mm thickness wood because a 3d printed one wouldn' with stand the heat generated by the electromagnets




Sitting for Plywood 4.00 mm thickness is :


Power = 100% Frequency = 50000 speed = 0.35



I made a design for the base, I used black acrylic 3 mm thickness.





3D Printing


The part that carried most of the components and gave a good aesthetic look was a half sphere ,printed from PLA plastic.
I decided to use Ultimaker +2

This is the setting which I use:



Layer view of my half sphere :



This is the final result:




So I had a holder for the electromagnets:




CNC


Cut wooden holders
An interesting challenge was how to mate the two pieces on each other?
they couldn't be identical, to allow for a joint as shown in the picture !


Creating the toolpath for SHOPBOT:


In our fablab we have ShopBot machine





I used s shop bot wood cutter to make the holders that kept the plastic sphere high from the base.
This part needed to be strong, so that's why I made it out of 18 mm thickness wood.
so the first thing was to take the dxf file and uploading it to VCarve in order to get the profile toolpath and the pocket toolpath to start milling.

I upload the .dxf file from file menu then press on import - import vectors
I edit the job size to (2440,1220mm) the dimension of the borad I chose 18 mm thickness and click on the right Z-zero.


I decide to use 1/4inch end mil

I set the cutting depth (C) to 3mm with 6 passes .



Outside cute


The total time :

Milling with the SHOPBOT:

Now the file is ready to be cut. For machine we have to set X,Y,Z.

We manually moved the head to the very bottom left of the wood piece and zeroed the X and Y axis


For Z axis we use probing plate to set the machine zero of the Z axis








The final result after painting:

While fabricating the parts, I decided not to make the base out of a box as thought before
(which should've been made with a shop bot too) . I wanted something more aesthetic and also stable.
The alternative will be described in the molding section.

Moulding and Casting


I thought of replacing the box with rubber made piece, just for aesthetic reasons. The material which I used is Mold Star 30 .

Main feature for this material is :

Mold Star silicones cure to soft, strong rubbers which are tear resistant and exhibit very low long term shrinkage.
Temperature : (73°F/23°C). Warmer temperatures will drastically reduce working time and cure time.
Curing Time: must be allowed to cure for 6 hours at room temperature (73°F/23°C) before demolding.


I made a hollow box and placed the wooden holders in their place, then poured the mixture in place and let it cure for 24 hours.






I was still not sure whether this would succeed in carrying the weight. But, when I pulled the new base out of the mold box
it actually was as good looking as I hoped for it , and better yet, could carry the weight without any deformation.

That was very pleasing for me, Just look how happy I was!



Putting All Together



Electronics Design & Production


To design the board, the software which I will be using for this is Eagle

Eagle has two windows that are used simultaneously to design a board:
Schematic (.sch) - logical components
Board Layout (.brd) for the actual board that we mil

I chose ATmega328/P Following Daniele Ingrassia's Satshakit which is an improved and fabbable
ATmega328/P is a low-power CMOS 8-bit microcontroller
Downloaded the library of the component for eagle and I used Atmega328P.






I add these components :
I follow the data sheet to chose the components and connect them.





This is the circuit for the 16MHz crystal, reinforced from both sides with 22 pF capacitors, and connected using labels to the microcontroller.



AVR_ISP pinheaders connect it with the microcontroller.



Connected other capacitors with values of (100nF, 10uF & 1uF)





I added 2 voltage regulators.
One will regulate the voltage from 12V to 5V for power using a power adapter with 12 voltage .
The other voltage regulator, regulates the voltage from 5V to 3.3V to power the on board bluetooth chip.





After the routing, this is how my board looks:


Milling the board
Export the file as PNG file I use Fab modules to convert the png file to G-code



This is how the final result looks like:


Troubleshooting:
A project with as many components as this is never expected to function perfectly from the first try.
After soldering all the parts on the Bluetooth receiver module on the device, it turned out I had forgotten to include a resistor in the ciruit
while drawing on the eagle software. I couldn't make a whole new board becaue of a shortage in parts, so I had to improvise.

I cut the connection on the board using a manual cutter and then soldered the needed resistors using wires on top of the board.



To control the electromagnet with my board I made a Relay board
Downloaded the Relay library and make the schematic for the relay circuit.




The final result after soldering






Output Device, Networking and Communications


Electromagnet


The main factors that affect the strength of an electromagnet are:
Number of turns on the coil of wire around the core.
Strength of the current applied.
The material of the coil.



Connect the electromagnet with my board.The code is seen below.

 
				  
#include <SoftwareSerial.h>

SoftwareSerial mySerial(0,1); // RX, TX
char x;

void setup() {
  // put your setup code here, to run once:
pinMode(10,OUTPUT);
pinMode(9,OUTPUT);
pinMode(8,OUTPUT);
pinMode(7,OUTPUT);

pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
mySerial.begin(9600);
Serial.begin(9600);

}
int d =50;
void loop() {
  // put your main code here, to run repeatedly:
if(mySerial.available())
x = mySerial.read();

if(x == '1')
{
  
digitalWrite(10,0);
digitalWrite(9,0);
digitalWrite(8,0);
digitalWrite(7,1);
digitalWrite(6,1);
digitalWrite(5,1);
delay(d);
Serial.println("1");
}

if(x == '2')
{
digitalWrite(10,1);
digitalWrite(9,1);
digitalWrite(8,0);
digitalWrite(7,0);
digitalWrite(6,0);
digitalWrite(5,1);
delay(d);
Serial.println("2");
}

if(x == '3')
{
digitalWrite(10,1);
digitalWrite(9,1);
digitalWrite(8,0);
digitalWrite(7,1);
digitalWrite(6,0);
digitalWrite(5,0);

delay(d);
Serial.println("3");
}

if(x == '4')
{
digitalWrite(10,1);
digitalWrite(9,0);
digitalWrite(8,0);
digitalWrite(7,0);
digitalWrite(6,1);
digitalWrite(5,1);
delay(d);
Serial.println("4");
}


if(x == 'A')
{
digitalWrite(10,0);
digitalWrite(9,0);
digitalWrite(8,0);
digitalWrite(7,1);
digitalWrite(6,1);
digitalWrite(5,1);
delay(d);
Serial.println("A");
}

if(x == 'B')
{
digitalWrite(10,1);
digitalWrite(9,1);
digitalWrite(8,0);
digitalWrite(7,0);
digitalWrite(6,0);
digitalWrite(5,1);
delay(d);
Serial.println("B");
}

if(x == 'C')
{
digitalWrite(10,1);
digitalWrite(9,1);
digitalWrite(8,0);
digitalWrite(7,1);
digitalWrite(6,0);
digitalWrite(5,0);

delay(d);
Serial.println("C");
}


if(x == 'D')
{
digitalWrite(10,1);
digitalWrite(9,0);
digitalWrite(8,0);
digitalWrite(7,0);
digitalWrite(6,1);
digitalWrite(5,1);
delay(d);
Serial.println("D");
}

if(x == 'E')
{
digitalWrite(10,1);
digitalWrite(9,0);
digitalWrite(8,1);
digitalWrite(7,1);
digitalWrite(6,0);
digitalWrite(5,1);
delay(d);
Serial.println("E");
}


if(x == 'F')
{
digitalWrite(10,0);
digitalWrite(9,1);
digitalWrite(8,0);
digitalWrite(7,1);
digitalWrite(6,1);
digitalWrite(5,0);
delay(d);
Serial.println("F");
}


Another error appeared while first using the bluethooth receiver on the device. I uploaded the a script written with AT commands
then ran the Bluetooth receiver.
But then, when I tried sending a character like “A” for example, it wouldn’t respond as expected and it would give an error message.

It turned out, that the receiver being used is not compatible with such characters and commands
so I switched to using “HC-05”


And it worked!


I used an Android Application called Arduino Bluetooth Control to communicate between the bluetooth and the ferro spikes








Download All Design and Code Files:
3D Design
3D Printing file
CNC file
Electromagatic