Ik begon met rechthoekige 2200 gat PCB's van RadioShack en het gebruik van snijden dijken maakte ik halve cirkel boards met een uitsparing in het midden aan te passen de verwerking module, lipo accu en lader. Elk segment bestaat uit 2 - verschuiving van de 8-bits registers, 16 LED's & 16 weerstanden. Er zijn 8 plakjes in totaal dus daar zijn 128 onder leiding van, ik gebruik en Arduino nano 3.1 van makershed.com samen met een lipo slagman & lader beschikbaar op sparkfun.com. Om te passen deze segmenten samen om te vormen van een bol gebruikt ik circulaire PCB's die ik gevonden op radioshack. Ik gebruikte een dremel te knippen Zijsplitjes elke 45-graden voor elk van de segmenten te glijden in het pakket wordt geleverd met 3 maten & 2 van elk, ik gebruikte de middelgroot. Ik heb een parallax mesmic 2125 versnellingsmeter toegevoegd aan het moederbord in het midden zodat oriëntatie naar het gebied. Je opladen de LiPo slagman via een USB-mini poort, gelegen in het centrum, opladen duurt ongeveer 1 uur en 45 minuten duurt.
Ik wilde dank aan Nikolai voor de insperation & Null ruimte Labs HackerSpace voor de te nemen over het project. Ik schreef ook Charlie daar te krijgen zijn input op de spiraal animatie & was hij zeer leuk & nuttig. I 'm gonna post alle code die ik gebruikte voor het geval iemand geïnteresseerd is. Ik zou niet zeggen dat ik de meest bedreven programmeur & am nog steeds leren zo vriendelijk zijn.
Links: www.hackaday.com/2011/10/16/we-want-this-led-ball/ //Original
http://charliex2.WordPress.com/2012/02/11/the-Blinky-Ball-nullspacelabs/ //Null ruimte Labs In LA maakte een echt cool versie
Code:
int clockPin = 13; IC-Pin 11, gele trui
int dataPin = 11; IC-Pin 14, blauwe trui
int latchPin = 8; IC-Pin 12, groene Jumper
Const int xPin = 2; X output van de versnellingsmeter
Const int yPin = 3; Y-uitgang van de versnellingsmeter
woord patronen [176] = {}
0b1100000000000000,
0b0110000000000000,
0b0011000000000000,
0b0001100000000000,
0b0000110000000000,
0b0000011000000000,
0b0000001100000000,
0b0000000110000000,
0b0000000011000000,
0b0000000001100000,
0b0000000000110000,
0b0000000000011000,
0b0000000000001100,
0b0000000000000110,
0b0000000000000011,
0b0000000000000001,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b1010111010001101,
0b0110101010011010,
0b0101010010011100,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b1010111010001101,
0b0110101010011010,
0b0101010010011100,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b1100000000000000,
0b0110000000000000,
0b0011000000000000,
0b0001100000000000,
0b0000110000000000,
0b0000011000000000,
0b0000001100000000,
0b0000000110000000,
0b0000000011000000,
0b0000000001100000,
0b0000000000110000,
0b0000000000011000,
0b0000000000001100,
0b0000000000000110,
0b0000000000000011,
0b0000000000000001,
0b0000000000000001,
0b0000000000000011,
0b0000000000000110,
0b0000000000001100,
0b0000000000011000,
0b0000000000110000,
0b0000000001100000,
0b0000000011000000,
0b0000000110000000,
0b0000001100000000,
0b0000011000000000,
0b0000110000000000,
0b0001100000000000,
0b0011000000000000,
0b0110000000000000,
0b1100000000000000,
0b1100000000000000,
0b0110000000000000,
0b0011000000000000,
0b0001100000000000,
0b0000110000000000,
0b0000011000000000,
0b0000001100000000,
0b0000000110000000,
0b0000000011000000,
0b0000000001100000,
0b0000000000110000,
0b0000000000011000,
0b0000000000001100,
0b0000000000000110,
0b0000000000000011,
0b0000000000000001,
0b0000000000000001,
0b0000000000000011,
0b0000000000000110,
0b0000000000001100,
0b0000000000011000,
0b0000000000110000,
0b0000000001100000,
0b0000000011000000,
0b0000000110000000,
0b0000001100000000,
0b0000011000000000,
0b0000110000000000,
0b0001100000000000,
0b0011000000000000,
0b0110000000000000,
0b1100000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b1010100100111110,
0b1010110100100101,
0b1010101001101111,
0b1100101111010101,
0b1111011010101010,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000,
0b0000000000000000
};
int index = 17;
int count = sizeof (patronen) / 2;
unsigned int oldy = 0;
VOID Setup
{
Initialiseer seriële communicatie:
Serial.begin(9600);
initialiseren van de pinnen aangesloten op de versnellingsmeter
als input:
pinMode (xPin, INPUT);
pinMode (yPin, INPUT);
pinMode (latchPin, OUTPUT);
pinMode (clockPin, OUTPUT);
pinMode (dataPin, OUTPUT);
}
void loop
{
accelorometer();
}
VOID accelorometer()
{
variabelen om te lezen van de puls breedte:
int pulseX, pulseY;
variabelen bevatten de resulterende versnellingen
int accelerationX, accelerationY;
Lees puls van x - en y - assen:
pulseX = pulseIn(xPin,HIGH);
pulseY = pulseIn(yPin,HIGH);
de pulsbreedte omzetten in versnelling
accelerationX en accelerationY zijn in milli-g's:
aardse zwaartekracht is 1000 milli-g's, of 1 g.
accelerationX = ((pulseX / 10) - 500) * 8;
accelerationY = ((pulseY / 10) - 500) * 8;
afdrukken van de versnelling
Serial.Print ("X:");
Serial.Print(accelerationX);
een tab-teken afdrukken
Serial.Print("\t");
Serial.Print ("Y:");
Serial.Print(accelerationY);
Serial.println();
if(accelerationY == oldy) {}
count = count + 1;
Als (graaf > = 500) {}
voor (int keer = 0; keer < = 160; keer ++) {}
idleTime();
}
count = count - 50;
}
} else {}
count = count - 1;
Als (graaf < = 0) {}
Graaf = 0;
}
}
int ywordPos = kaart (accelerationY,-1023, 1023, 0, 16);
byte registerOne = highByte(patterns[ywordPos]);
byte registerTwo = lowByte(patterns[ywordPos]);
digitalWrite (latchPin, laag);
shiftOut (dataPin, clockPin, MSBFIRST, registerOne);
shiftOut (dataPin, clockPin, MSBFIRST, registerTwo);
digitalWrite (latchPin, hoge);
OldY = accelerationY;
}
VOID idleTime()
{
byte registerOne = highByte(patterns[index]);
byte registerTwo = lowByte(patterns[index]);
digitalWrite (latchPin, laag);
shiftOut (dataPin, clockPin, MSBFIRST, registerOne);
shiftOut (dataPin, clockPin, MSBFIRST, registerTwo);
digitalWrite (latchPin, hoge);
delay(65);
index ++;
Als (index > count =) {}
index = 17;
}
}