Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| chipkit_ledboard [2015/03/10 17:51] – created Joshua Woldstad | chipkit_ledboard [2022/10/04 11:38] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 50: | Line 50: | ||
| {{ : | {{ : | ||
| - | ===== Step 3: Building ===== | + | ===== Step 3: Building |
| - | Picture of Building | ||
| - | {{: | + | Using one strip as a guide, mark all four edges of the acrylic with the gaps between each LED to center each LED on the board where it needed to go to make a square array. Space the first strip lengthwise so that the first and last LEDs on it were the same distance away from the bottom and top edges of the panel. The weatherproof casing and even the strips themselves are not all perfectly 1m in length, nor is the distance from the end of the strip to the first LED consistent between strips, so just lining up one end of each strip would not have resulted in a square array. |
| + | {{ : | ||
| + | |||
| + | Determine the distance from the top and bottom, then mark where the wires are coming out of the end of the strip, but back in toward the center of the strip about 1/2" (12.7mm). The connectors for the data are about 1/2" wide. By moving the hole back about 1/2" it allows for the strip to cover most of the hole, giving a cleaner look. Use the standing drill press and some clamps to give a much cleaner cut to the holes. | ||
| + | {{ : | ||
| + | |||
| + | With the LEDs glued, create and attach the power buses. For each bus, use a length of 12AWG wire as long as the panel is wide plus enough to reach the power supply. This results in the panels all having different total lengths, but the part attached to each panel was identical. Slice and remove little gaps into the insulation of the bus wires at intervals of one LED, leaving the insulation in place between each connection. The wire was laid down on the back of the panel and the bare wires on the LED strips that had been pushed through from the front were measured, cut, stripped, and then soldered to the bus wire. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Once all ten supply wires were soldered to the supply bus wire, the whole wire was glued down. This process was repeated for the ground bus, but the buses were placed so that the gaps were staggered between the supply and ground buses to minimize shorting. On the other end of the LED strips at the top of the panel, where there is no need for bus wires, the bare wires were trimmed as close to the silicone casing as possible to prevent shorting on that end. The bus wires and the AC supply cable were all fitted with spade connectors to connect to the terminal blocks on the 75A power supply. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | ---- | ||
| + | |||
| + | ======Step 4: Building the Stand and Controller ====== | ||
| + | |||
| + | ==== Latches ==== | ||
| + | |||
| + | When connecting the panels together, use three latches per seam, six in total. After figuring out where to put them and trimming the internal spring to reduce the tension, drill screw holes for the larger piece that contained the spring into the panel, just deep enough to not go all the way through the panel. Then, use a rotary tool with a cutoff wheel to trim the screws so that they would not go through the acrylic panel. | ||
| + | |||
| + | For the other piece of the latch, build small blocks out of acrylic to attach them as they mount perpendicular to the panel. Using some acrylic cement and some scrap pieces of acrylic cut to fit the base of the smaller piece of the latch, these blocks will be cemented in place on the back of the panel. Then drilled holes into these blocks and used screws, slightly trimmed this time, to attach the second piece to the adjacent panel. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ==== Stand ==== | ||
| + | |||
| + | Now that the panel was finished and working (code development will be in step 5), it needed a stand, which was a simple collapsible design that is nice and compact for shipping. Each stand has four pieces, two legs and two braces. The spacing between the legs for the two smaller panels places them in between the 3rd and 4th LED strip from each side with 4 strips in between them, or about 6 1/2" (16.5cm). The spacing on the third stand is about 5" wider since that panel is about 5" wider than the other two. Use a simple mated-notch design to build the stands, wherein the legs and braces have corresponding notches, all cut to a depth of 1/2 the width of the brace. These notches line up when assembled, making the stand simple yet strong. Once completed, the stands can be given a coat of flat black enamel paint. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | |||
| + | ==== Controller ==== | ||
| + | |||
| + | The last thing to build is the game controller. Start by placing the push buttons in a standard up/ | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | ====== Step 5: Software ====== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | In order to run the Snake program correctly, you must first install the [[https:// | ||
| + | PICxel name_of_the_set_of_LEDs( how_many_LEDs_we_have, | ||
| + | |||
| + | Here we can provide how LEDs we are running (900), which pin the data is going to be used to connect to the data line on the LEDs (pin 3 in our case), and the desired color mode. Marshall' | ||
| + | We can get the LEDs lit up and running by first calling in our setup the name_of_the_set_of_LEDs.begin(); | ||
| + | |||
| + | function and then choose the settings of the LEDs and subsequently update the strip of LEDs with our new values. | ||
| + | For HSV color mode, you can set the hue, saturation, and value. For those of you that might not know, these values roughly translate to the color, how " | ||
| + | |||
| + | This function will only set (but not yet update) the values on just one LED, so it's recommend to use a for loop to change multiple LED values. To update the LEDs so that they all show their new settings (or old if that particular LED was not updated), simply issue the following command: name_of_the_set_of_LEDs.refreshLEDs(); | ||
| + | |||
| + | The refresheLEDs() function utilizes port manipulation and assembly code to make for a tight library so very little time is wasted in sending out the new information to the WS2812 LEDs at their designated data rate. You can check out a screen shot of the HSV demo for this library in the picture for this step. | ||
| + | |||
| + | Go [[http:// | ||
| + | |||
| + | Download [[http:// | ||

