NeoPixel Assisted String Art Weaving
One interesting form of string art starts from a circular or square canvas with nails on its perimeter. The strings/yarns are only wound around nails on the perimeter. The repeated straight lines can sketch out a portrait nicely(link to Petros Vrellis).
Here are bunch of other examples on Hackaday.
This is a cool algorithm implemented in Processing language (github link). Basically, you input an image, the program will output a list of sequential nail locations that the string needs to traverse, which is also called a weaving pattern.
(Additional Hough transformation may reduce the thread count, to be explored https://rosettacode.org/wiki/Hough_transform#J)
Interestingly computational machinery and the idea of programming came from weaving (https://www.youtube.com/watch?v=itd-4lMoXgI). A nice loop back (pun intended).
Unless you have built a machine to automate weaving, the usual approach is to print out that numbers list and manually wind the string/yarn through the nails one by one, for thousands of times, in order to complete the art work.
Let me introduce a semi-automatic way for weaving. The idea is that instead of reading from a sheet of numbers, finding the nails and winding the string through. A program reads that number sheet and lights up LEDs in sequence. You simply follow the LEDs to find out where the next nail locations are.
The hardware to implement this is minimal:
- FT232H breakout board (https://www.adafruit.com/product/2264)
- 144 NeoPixel string (https://www.amazon.com/Arkare-Individually-Addressable-Programmable-Controller/dp/B088381P7G/ref=sr_1_7?dchild=1&keywords=144+led+strip&qid=1616330363&sr=8-7)
That 144 NeoPixel string has LEDs 7mm apart. You can cut it into four pieces. And with some wire soldering, you can make a frame of 36 LEDs along each side of a 9.6" square canvas.
I used RED, GREEN and BLUE to indicate a single weaving action. RED is the previous end-point, thus the starting point. BLUE is the mid-point to traverse, and GREEN is the new end-point. Once it is done, you can step to the next set of tuple of RED, GREEN, BLUE.
Here is the code to drive 144 NeoPixel with a tuple. The next step is to import the number list from the weaving program and step through.
Note that although this is a 144-NeoPixel string, only 3 LEDs are light up at one time, so the USB power is enough to deliver the needed current.