LOL Shield
Moderators: Chuckt, Garth, bitfogav
-
- I practically live here!
- Posts: 1127
- Joined: Sun Mar 28, 2010 1:36 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
LOL Shield
I built my LOL Shield. It took more than one sitting. I tried the way the build instructions said and after doing it a while, I did it my way. The LOL Shield represents the difficulty of soldering something upside down and there are a lot of LEDs that you have to get in line or your work will show. I did the LEDs one at a time and after a while, I would solder one pin, turn the board around and then reheat the pin and straighten the LED. If I had to do this for production, the LOL Shield would cost a lot more than what I bought it for and to make every LED straight would take a long time. When it came time to put the pin headers in the Arduino, I didn't put them in all the way because there wouldn't be clearance for the board because the barrel jack sits up too high. At some point I will have to play and test it but it is all finished.
I had a little difficulty with the board. My solder started traveling up the iron instead of down the iron so I changed my solder tip. Solder had previously dripped into two of the vias so I put the board in my panavise, heated one end and forced an LED through the other end which worked. The board came with six extra LEDs so if I heated an LED too long, I can possibly replace them. I started this build with this board on top of a plastic CD case and even though I didn't touch the case, the case has a melt mark on it because there is a lot of heat coming off the iron. I will probably use this CD case (not shown here) as a safety example of the unknown dangers of soldering.
I will have to test it when I have more time and it is time for me to move on to other projects.
I had a little difficulty with the board. My solder started traveling up the iron instead of down the iron so I changed my solder tip. Solder had previously dripped into two of the vias so I put the board in my panavise, heated one end and forced an LED through the other end which worked. The board came with six extra LEDs so if I heated an LED too long, I can possibly replace them. I started this build with this board on top of a plastic CD case and even though I didn't touch the case, the case has a melt mark on it because there is a lot of heat coming off the iron. I will probably use this CD case (not shown here) as a safety example of the unknown dangers of soldering.
I will have to test it when I have more time and it is time for me to move on to other projects.
- brad
- Site Admin
- Posts: 2578
- Joined: Fri Mar 26, 2010 10:30 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
Well done Chuck and thanks for keeping us informed on the progress!
-
- I practically live here!
- Posts: 1127
- Joined: Sun Mar 28, 2010 1:36 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
My 9 volt battery to DC barrel jack cables came in the mail today and then I found the cable that was missing and I found another project that was missing. I had to use my hard drive A to B USB cable because that is the only cable I have for the Arduino.
Tonight I downloaded the Arduino software and I installed the drivers. I downloaded the code for the LOL shield. I spent some time because the instructions were written for people who already know what they are doing and I'm just a beginner who hasn't done this before. After being stuck on about two steps, I finally got it to work.
My lol shield works. I think I have two LEDs that don't light up so I may reheat the solder joints and replace them. I had tested them with a coin cell battery per your advice before doing any work and they worked before assembly. The non-working LEDs are the third one on the bottom left from the left and the second one on the top right from the right.
I now have a piece of new hardware to show off.
I think it is time to start thinking about playing my Gameduino
Tonight I downloaded the Arduino software and I installed the drivers. I downloaded the code for the LOL shield. I spent some time because the instructions were written for people who already know what they are doing and I'm just a beginner who hasn't done this before. After being stuck on about two steps, I finally got it to work.
My lol shield works. I think I have two LEDs that don't light up so I may reheat the solder joints and replace them. I had tested them with a coin cell battery per your advice before doing any work and they worked before assembly. The non-working LEDs are the third one on the bottom left from the left and the second one on the top right from the right.
I now have a piece of new hardware to show off.
I think it is time to start thinking about playing my Gameduino
- brad
- Site Admin
- Posts: 2578
- Joined: Fri Mar 26, 2010 10:30 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
Great to hear that it had fired up for you Chuck!
Any chance of some photos or perhaps a video to see the LOLShield in action?
Any chance of some photos or perhaps a video to see the LOLShield in action?
-
- I practically live here!
- Posts: 1127
- Joined: Sun Mar 28, 2010 1:36 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
This is my photo of the LOL shield in operation without me using a flash:
I had one of those eye opening moments once the microcontroller worked but not quite like this one:
If anyone watching has thought about getting involved, it is easy, someone here can help you get started and we would like to see you post your projects. Don't wait as long as I had getting started.
I had one of those eye opening moments once the microcontroller worked but not quite like this one:
If anyone watching has thought about getting involved, it is easy, someone here can help you get started and we would like to see you post your projects. Don't wait as long as I had getting started.
- brad
- Site Admin
- Posts: 2578
- Joined: Fri Mar 26, 2010 10:30 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
The cast away reference made me laugh!
I guess we all have a little celebration when we make something work
Great to see that yours is a success. Any plans for the LOL shield, maybe a game perhaps?
I guess we all have a little celebration when we make something work
Great to see that yours is a success. Any plans for the LOL shield, maybe a game perhaps?
-
- I practically live here!
- Posts: 1127
- Joined: Sun Mar 28, 2010 1:36 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
I only bought Arduino for the tutorials so that I could use it and have a point of reference to learn hardware but then came along the Gameduino and the Maple (microcontroller) to complicate things. I only got interested in electronics because of the computer aspect of it but I thought about adding microcontrollers for a future science fair. I looked into building the Lyra ( http://www.lira.cc/ ) for a low cost Arduino clone but I'm basically looking at spending $10 just to get BatchPCB into just setting up the boards in order to get low cost boards but that would require other people's involvement for me to break even. I found a part list here which can be ordered from Digikey or Mouser : http://www.ladyada.net/make/boarduino/dc-parts.htmlbrad wrote:Great to see that yours is a success. Any plans for the LOL shield, maybe a game perhaps?
It might possible to make a game for the LOL shield. They have all the pins mapped out on the program file so I would have to come up with a formula to use the charlieplexing. I believe there is enough memory to use a random number and a sine like command to move the lit LEDs back and forth. I would have to add inputs for human movement.
Right now, I don't have the time to learn the library structure and C for Arduino and Arduino is not high on my list even though I built the BoArduino to make the 3D LED cube.
- brad
- Site Admin
- Posts: 2578
- Joined: Fri Mar 26, 2010 10:30 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
Doesn't it already have the code to draw data to the LED's? I imagine it would just have an array that you could fill with data and it would keep outputting this data to the display.
-
- I practically live here!
- Posts: 1127
- Joined: Sun Mar 28, 2010 1:36 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
I don't think it is that simple.
Code: Select all
/*
Basic LoL Shield Test
Writen for the LoL Shield, designed by Jimmie Rodgers:
http://jimmieprodgers.com/kits/lolshield/
This needs the Charliplexing library, which you can get at the
LoL Shield project page: http://code.google.com/p/lolshield/
Created by Jimmie Rodgers on 12/30/2009.
Adapted from: http://www.arduino.cc/playground/Code/BitMath
History:
December 30, 2009 - V1.0 first version written at 26C3/Berlin
This is free software; you can redistribute it and/or
modify it under the terms of the GNU Version 3 General Public
License as published by the Free Software Foundation;
or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include <avr/pgmspace.h> //AVR library for writing to ROM
#include <Charliplexing.h> //Imports the library, which needs to be
//Initialized in setup.
int blinkdelay = 100; //Sets the time each frame is shown
/*
The BitMap array is what contains the frame data. Each line is one full frame.
Since each number is 16 bits, we can easily fit all 14 LEDs per row into it.
The number is calculated by adding up all the bits, starting with lowest on
the left of each row. 18000 was chosen as the kill number, so make sure that
is at the end of the matrix, or the program will continue to read into memory.
Here PROGMEM is called, which stores the array into ROM, which leaves us
with our RAM. You cannot change the array during run-time, only when you
upload to the Arduino. You will need to pull it out of ROM, which is covered
below. If you want it to stay in RAM, just delete PROGMEM
*/
uint16_t BitMap[][9] PROGMEM = {
//Diaganal swipe across the screen
{1, 0, 0, 0, 0, 0, 0, 0, 0},
{3, 1, 0, 0, 0, 0, 0, 0, 0},
{7, 3, 1, 0, 0, 0, 0, 0, 0},
{15, 7, 3, 1, 0, 0, 0, 0, 0},
{31, 15, 7, 3, 1, 0, 0, 0, 0},
{63, 31, 15, 7, 3, 1, 0, 0, 0},
{127, 63, 31, 15, 7, 3, 1, 0, 0},
{255, 127, 63, 31, 15, 7, 3, 1, 0},
{511, 255, 127, 63, 31, 15, 7, 3, 1},
{1023, 511, 255, 127, 63, 31, 15, 7, 3},
{2047, 1023, 511, 255, 127, 63, 31, 15, 7},
{4095, 2047, 1023, 511, 255, 127, 63, 31, 15},
{8191, 4095, 2047, 1023, 511, 255, 127, 63, 31},
{16383, 8191, 4095, 2047, 1023, 511, 255, 127, 63},
{16383, 16383, 8191, 4095, 2047, 1023, 511, 255, 127},
{16383, 16383, 16383, 8191, 4095, 2047, 1023, 511, 255},
{16383, 16383, 16383, 16383, 8191, 4095, 2047, 1023, 511},
{16383, 16383, 16383, 16383, 16383, 8191, 4095, 2047, 1023},
{16383, 16383, 16383, 16383, 16383, 16383, 8191, 4095, 2047},
{16383, 16383, 16383, 16383, 16383, 16383, 16383, 8191, 4095},
{16383, 16383, 16383, 16383, 16383, 16383, 16383, 16383, 8191},
{16383, 16383, 16383, 16383, 16383, 16383, 16383, 16383, 16383},
{16383, 16383, 16383, 16383, 16383, 16383, 16383, 16383, 16383},
{16382, 16383, 16383, 16383, 16383, 16383, 16383, 16383, 16383},
{16380, 16382, 16383, 16383, 16383, 16383, 16383, 16383, 16383},
{16376, 16380, 16382, 16383, 16383, 16383, 16383, 16383, 16383},
{16368, 16376, 16380, 16382, 16383, 16383, 16383, 16383, 16383},
{16352, 16368, 16376, 16380, 16382, 16383, 16383, 16383, 16383},
{16320, 16352, 16368, 16376, 16380, 16382, 16383, 16383, 16383},
{16256, 16320, 16352, 16368, 16376, 16380, 16382, 16383, 16383},
{16128, 16256, 16320, 16352, 16368, 16376, 16380, 16382, 16383},
{15872, 16128, 16256, 16320, 16352, 16368, 16376, 16380, 16382},
{15360, 15872, 16128, 16256, 16320, 16352, 16368, 16376, 16380},
{14336, 15360, 15872, 16128, 16256, 16320, 16352, 16368, 16376},
{12288, 14336, 15360, 15872, 16128, 16256, 16320, 16352, 16368},
{8192, 12288, 14336, 15360, 15872, 16128, 16256, 16320, 16352},
{0, 8192, 12288, 14336, 15360, 15872, 16128, 16256, 16320},
{0, 0, 8192, 12288, 14336, 15360, 15872, 16128, 16256},
{0, 0, 0, 8192, 12288, 14336, 15360, 15872, 16128},
{0, 0, 0, 0, 8192, 12288, 14336, 15360, 15872},
{0, 0, 0, 0, 0, 8192, 12288, 14336, 15360},
{0, 0, 0, 0, 0, 0, 8192, 12288, 14336},
{0, 0, 0, 0, 0, 0, 0, 8192, 12288},
{0, 0, 0, 0, 0, 0, 0, 0, 8192},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
//Horizontal swipe
{1, 1, 1, 1, 1, 1, 1, 1, 1} ,
{3, 3, 3, 3, 3, 3, 3, 3, 3},
{7, 7, 7, 7, 7, 7, 7, 7, 7},
{15, 15, 15, 15, 15, 15, 15, 15, 15},
{31, 31, 31, 31, 31, 31, 31, 31, 31},
{63, 63, 63, 63, 63, 63, 63, 63, 63},
{127, 127, 127, 127, 127, 127, 127, 127, 127},
{255, 255, 255, 255, 255, 255, 255, 255, 255},
{511, 511, 511, 511, 511, 511, 511, 511, 511},
{1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023},
{2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047},
{4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095},
{8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191, 8191},
{16383, 16383, 16383, 16383, 16383, 16383, 16383, 16383, 16383},
{16382, 16382, 16382, 16382, 16382, 16382, 16382, 16382, 16382},
{16380, 16380, 16380, 16380, 16380, 16380, 16380, 16380, 16380},
{16376, 16376, 16376, 16376, 16376, 16376, 16376, 16376, 16376},
{16368, 16368, 16368, 16368, 16368, 16368, 16368, 16368, 16368},
{16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352, 16352},
{16320, 16320, 16320, 16320, 16320, 16320, 16320, 16320, 16320},
{16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256},
{16128, 16128, 16128, 16128, 16128, 16128, 16128, 16128, 16128},
{15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872},
{15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360, 15360},
{14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336, 14336},
{12288, 12288, 12288, 12288, 12288, 12288, 12288, 12288, 12288},
{8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192, 8192},
{0, 0, 0, 0, 0, 0, 0, 0, 0},
{18000}
};
void setup() {
LedSign::Init(); //Initializes the screen
}
void loop() {
DisplayBitMap(); //Displays the bitmap
}
void DisplayBitMap()
{
boolean run=true; //While this is true, the screen updates
byte frame = 0; //Frame counter
byte line = 0; //Row counter
unsigned long data; //Temporary storage of the row data
while(run == true) {
for(line = 0; line < 9; line++) {
//Here we fetch data from program memory with a pointer.
data = pgm_read_word_near (&BitMap[frame][line]);
//Kills the loop if the kill number is found
if (data==18000){
run=false;
}
//This is where the bit-shifting happens to pull out
//each LED from a row. If the bit is 1, then the LED
//is turned on, otherwise it is turned off.
else for (byte led=0; led<14; ++led) {
if (data & (1<<led)) {
LedSign::Set(led, line, 1);
}
else {
LedSign::Set(led, line, 0);
}
}
}
//Delays the next update
delay(blinkdelay);
frame++;
}
}
- Saimaster13
- I practically live here!
- Posts: 176
- Joined: Mon Aug 13, 2012 4:23 am
- Location: Sarasota, Florida [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
That looks overly complicated and that specific code eems to have limited uses. If you wanted, I could probably write a simple code for displaying pictures or data. That is what I did for a Lights Out game I am working on. However, I would need to know what pins of the Arduino are controlling what on the matrix, and what Arduino is being used.
Joshua
- brad
- Site Admin
- Posts: 2578
- Joined: Fri Mar 26, 2010 10:30 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
Ah but it is that simple!Chuckt wrote:I don't think it is that simple.
Here are your key lines of code:
Code: Select all
#include <Charliplexing.h> //Imports the library, which needs to be initialized in setup.
Code: Select all
void setup() {
LedSign::Init(); //Initializes the screen
}
Code: Select all
LedSign::Set(0, 0, 1);
Code: Select all
LedSign::Set(0, 0, 0);
Code: Select all
LedSign::Set(7, 4, 1);
Does that make sense?
-
- I practically live here!
- Posts: 1127
- Joined: Sun Mar 28, 2010 1:36 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
The LOL shield uses all of the pins on the Arduino Uno; at least I soldered all the pin headers to the connections listed even though I'm sure 3.3v isn't used because I'm using 9 volts and I believe the board has a 5 Volt regulator:Saimaster13 wrote:That looks overly complicated and that specific code eems to have limited uses. If you wanted, I could probably write a simple code for displaying pictures or data. That is what I did for a Lights Out game I am working on. However, I would need to know what pins of the Arduino are controlling what on the matrix, and what Arduino is being used.
0 through 13, GND, AREF
Reset, 3.3v, 5V, GND, GND, VIN
A0 through A5
- brad
- Site Admin
- Posts: 2578
- Joined: Fri Mar 26, 2010 10:30 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
I'm very interested to see if this simple example works for you Chuck.
replace this code:
with this:
replace this code:
Code: Select all
void loop() {
DisplayBitMap(); //Displays the bitmap
}
Code: Select all
void loop() {
LedSign::Set(0, 0, 1); // should light up just one single LED
}
-
- I practically live here!
- Posts: 1127
- Joined: Sun Mar 28, 2010 1:36 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
I may try it if I get the time and chance to play with it.brad wrote:I'm very interested to see if this simple example works for you Chuck.
replace this code:
with this:Code: Select all
void loop() { DisplayBitMap(); //Displays the bitmap }
Code: Select all
void loop() { LedSign::Set(0, 0, 1); // should light up just one single LED }
I would have to put the LOL shield on an Arduino Mega to make a game because I would need more pins since the LOL shield takes up all of the pins of an Arduino Uno. I have read that the LOL Shield didn't initially work on the Arduino Mega so I wonder if they have that fixed or whether I would have to fix it.
- brad
- Site Admin
- Posts: 2578
- Joined: Fri Mar 26, 2010 10:30 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable
Re: LOL Shield
Okay, but be sure to let me know how you go
Who is online
Users browsing this forum: No registered users and 14 guests