diff options
author | unknown <Adam Martindale@.(none)> | 2011-09-12 15:58:18 +0100 |
---|---|---|
committer | unknown <Adam Martindale@.(none)> | 2011-09-12 15:58:18 +0100 |
commit | 7d06a1bb2ef15c57766886831f47fdc83519e6de (patch) | |
tree | 4f0e84d02eea21a292a2b0ed290e8bd8845fff6b | |
parent | 7cab7709fd96a6c12f2d4b7ac73e224b79dd0385 (diff) | |
parent | 223480547e0c3e54f729356dce80bd40d401cf79 (diff) | |
download | punchingbag-7d06a1bb2ef15c57766886831f47fdc83519e6de.tar punchingbag-7d06a1bb2ef15c57766886831f47fdc83519e6de.tar.gz |
Merge branch 'master' of gitorious.org:punchingbag/punchingbag
Conflicts:
PunchingBag/src/PunchingBagGUI.java
-rw-r--r-- | Arduino/LEDMatrix/LEDMatrix.pde | 27 | ||||
-rw-r--r-- | PunchingBag/src/PunchingBag.java | 92 | ||||
-rw-r--r-- | PunchingBag/src/PunchingBagGUI.java | 11 |
3 files changed, 99 insertions, 31 deletions
diff --git a/Arduino/LEDMatrix/LEDMatrix.pde b/Arduino/LEDMatrix/LEDMatrix.pde index 4a07bfc..1a709be 100644 --- a/Arduino/LEDMatrix/LEDMatrix.pde +++ b/Arduino/LEDMatrix/LEDMatrix.pde @@ -24,10 +24,29 @@ void setup ( ) void loop ( ) { - for (int i=0; i<(chips * 8); i++) { - buffer[i] = 0b10101010;//random(-128,127); // Just Green + /*buffer[0] = 127; + buffer[1] = 0b10101010; + buffer[2] = 0b01010101; + for (int i=3; i<(chips * 8); i++) { + buffer[i] = 0;//random(-128,127); // Just Green 0b10101010 + } + matrix.Update();*/ + + + while (true) { + int read = Serial.read(); + if ((byte) read == (byte) 108) { + for (int b=0; b< (chips * 8); ) { + if ((read = Serial.read()) != -1) { + buffer[b] = (byte) read; + b++; + } + } + break; + } } matrix.Update(); + } @@ -38,3 +57,7 @@ void loop ( ) + + + + diff --git a/PunchingBag/src/PunchingBag.java b/PunchingBag/src/PunchingBag.java index dc4573f..e5b8011 100644 --- a/PunchingBag/src/PunchingBag.java +++ b/PunchingBag/src/PunchingBag.java @@ -6,6 +6,7 @@ import java.awt.Rectangle; import java.awt.geom.Area; import java.io.IOException; +import java.math.BigInteger; import java.util.ArrayList; import java.util.Arrays; @@ -405,22 +406,35 @@ public class PunchingBag implements Runnable { } private void calculateRawLeds() { - for (int y = 0; y <= 18; y++) { - for (int x = 0; x <= 6; x++) { - if ((y % 2) == 0) { - if (leds[x][y] == Colour.Green - || leds[x][y] == Colour.Yellow) { - rawLeds[(int) Math.floor(y / 4)] = (byte) (rawLeds[(int) Math - .floor(y / 4)] | (1 << (7 - x))); - } - } else { - if (leds[x][y] == Colour.Red || leds[x][y] == Colour.Yellow) { - rawLeds[(int) Math.floor(y / 4)] = (byte) (rawLeds[(int) Math - .floor(y / 4)] | (1 << (7 - x))); + // First clear everything + Arrays.fill(rawLeds, (byte) 0); + // First loop through the 5 easy arrays + for (int grid=0; grid<5; grid++) { + for (int x = 0; x < 8; x++) { + for (int y = 0; y < 8; y++) { + if ((y % 2) == 0) { + if (leds[1 + x][(grid * 4) + (y/2)] == Colour.Green || leds[1 + x][(grid * 4) + (y/2)] == Colour.Yellow ) { + rawLeds[(grid*8) + x] = (byte) (rawLeds[(grid*8) + x] | (1 << (7-y))); + } + } else { + if (leds[1 + x][(grid * 4) + (y/2)] == Colour.Red || leds[1 + x][(grid * 4) + (y/2)] == Colour.Yellow ) { + rawLeds[(grid*8) + x] = (byte) (rawLeds[(grid*8) + x] | (1 << (7-y))); + } } } } } + + + /* + * for (int y = 0; y <= 18; y++) { for (int x = 0; x <= 6; x++) { if ((y + * % 2) == 0) { if (leds[x][y] == Colour.Green || leds[x][y] == + * Colour.Yellow) { rawLeds[(int) Math.floor(y / 4)] = (byte) + * (rawLeds[(int) Math .floor(y / 4)] | (1 << (7 - x))); } } else { if + * (leds[x][y] == Colour.Red || leds[x][y] == Colour.Yellow) { + * rawLeds[(int) Math.floor(y / 4)] = (byte) (rawLeds[(int) Math + * .floor(y / 4)] | (1 << (7 - x))); } } } } + */ /* * int x = 7; // TODO: Complete and test, or rethink the following? for * (int startY = 0; startY <= 4; startY++) { for (int y = 0; y <= 3; @@ -475,6 +489,13 @@ public class PunchingBag implements Runnable { } public boolean connectToArduinos() { + try { + ledArduino.connect("COM6"); + buttonArduino.connect("COM7"); + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } HashSet<CommPortIdentifier> serialPorts = Arduino .getAvailableSerialPorts(); for (Iterator iter = serialPorts.iterator(); iter.hasNext();) { @@ -485,9 +506,8 @@ public class PunchingBag implements Runnable { System.out.println(comPort.getName()); } try { - buttonArduino.connect(comPort.getName()); - // System.out.println("ID: " + buttonArduino.getID()); + System.out.println(comPort.getName()); } catch (Exception e) { e.printStackTrace(); } @@ -528,13 +548,33 @@ public class PunchingBag implements Runnable { buttonsChanged = true; } } + + private void printByte(byte b) { + //System.out.println("Byte: " + b); + String str; + for (int j = 0; j < 8; j++) { + byte val = (byte) (b & (1 << (7-j))); + //System.out.println("Val: " + val + " " + (1 << (7-j))); + if (val > 0) { + str = "1"; + } else { + str = "0"; + } + System.out.print(str); + } + } + + private void printlnByte(byte b) { + printByte(b); + System.out.println(""); + } public void run() { while (true) { // System.out.println("R"); synchronized (leds) { clearLEDGrid(); - clearButtonGrid(); + // clearButtonGrid(); synchronized (runningEffects) { // Should prevent // ConcurrentModificationException's @@ -568,7 +608,7 @@ public class PunchingBag implements Runnable { // sb.append((char) read); } // System.out.println(""); - readAccelData(str); + //readAccelData(str); // String[] nums = sbString.trim().split(" "); // System.out.println(nums); // for (int x=0; x<4; x++) { @@ -595,11 +635,18 @@ public class PunchingBag implements Runnable { e.printStackTrace(); } } - + calculateRawLeds(); + String str; + for (int i = 0; i < (6 * 8); i++) { + //printByte(rawLeds[i]); + } + //System.out.println(""); + + //Arrays.fill(rawLeds, (byte) -42); if (ledArduino.out != null) { + //calculateRawLeds(); try { ledArduino.write(((byte) 108)); - ledArduino.write(((byte) 101)); ledArduino.write(rawLeds); } catch (IOException e1) { e1.printStackTrace(); @@ -627,14 +674,7 @@ public class PunchingBag implements Runnable { } } - // TODO: Hack? - for (int x = 0; x < buttonWidth; x++) { - for (int y = 0; y < buttonHeight; y++) { - buttons[x][y] = false; - } - } - - // TODO: Hack? + clearButtonGrid(); try { Thread.sleep(1000 / 60); diff --git a/PunchingBag/src/PunchingBagGUI.java b/PunchingBag/src/PunchingBagGUI.java index cfe9706..5ba30a8 100644 --- a/PunchingBag/src/PunchingBagGUI.java +++ b/PunchingBag/src/PunchingBagGUI.java @@ -48,7 +48,6 @@ public class PunchingBagGUI implements MouseListener, MouseMotionListener, final boolean useDebugScreen = true;
public static void main(String[] args) throws InterruptedException {
-
new PunchingBagGUI();
}
@@ -534,9 +533,15 @@ public class PunchingBagGUI implements MouseListener, MouseMotionListener, @Override
public void buttonPressed(int x, int y) {
- System.out.println("Button Pressed: " + x + " " + y);
- bag.circleExpand(x, y, 16);
+ System.out.println("Button Pressed: " + x + " " + y); + //bag.circleExpand(x, y, 16);
+ bag.setLED(x, y, PunchingBag.Colour.Red);
//bag.noise(new Rectangle(0, 0, 9, 20), 5000);
+ /*for (int bx=0; bx<bag.ledWidth; bx++) {
+ for (int by=0; by<bag.ledHeight; by++) {
+ bag.setLED(bx, by, PunchingBag.Colour.Red);
+ }
+ }*/ //bag.squareExpand(x,y, 16, PunchingBag.Colour.Red);
}
|