LED-matris på en budget (4 / 5 steg)

Steg 4: programvara



Val...

När det gäller programvara har du flera alternativ, kan du antingen:

  1. köra matrisen som en fristående enhet
  2. Använd din PC för att driva bilder/animationer till matrisen
  3. eller komma med din egen idé (e.g ansluta det till en esp8266 att visa innehållet på internet

I. fristående


bara leka med den FastLED biblioteken för Arduino-plattformen. Det finns massor av goda exempel online, som du hittar här i mappen exempel. Du kan behöva ändra några rader i skisserna, som:

  1. vilken typ av LED du använder (bara ändra det till "WS2812").
  2. beloppet av din matris består av lysdioder.

II. kontroll matrisen via PC

Detta är det sätt som jag föredrar att göra det. GreatScott gjorde nyligen en bra handledning om hur du använder programvaran glediator. Han kom också med en skiss (en Arduino program) som fungerat bra för mig.

Men jag ville skriva min egen kod och kom upp med detta python-skript. Bara se till att du har valt rätt com-port i linje 95 och köra dessa på datorn med din matris ansluten till den. Det (script) fungerar också alldeles utmärkt med Greatscott's glediator skiss, så du slipper du reprogramm din Arduino. Observera att jag bara testat dem med Debian Linux, men det inte bör vara alltför komplicerat att få dem att fungera under Windows eller OSX. Känn dig fri att kopiera och ändra koden för att passa dina behov. Om du har några frågor angående koden, som är lite kryptiska, Välkommen att fråga i kommentarerna nedan. Se också till att kolla in nästa sida, där jag kör Conway's Game of Life på matrisen.

Men exakt hur är allt detta arbetssätt?

Lysdioderna används i detta projekt innehåller SKIFT-register, vilket är i princip små kretsar som kan innehålla en liten mängd data (i form av ettor och nollor). I denna ansökan data som lagras i varje led SKIFT register representerar dess färg och består av 24 bitar (8 bitar per färg). Den fasta programvaran körs på Arduino tar emot data via seriell kommunikation och sedan skiftar det genom seriekoppling av SKIFT register/lysdioder. Arduinoen själv behandlar matrisen som om det var en normal LED rand (1-dimensionell). Mitt manus nedan beräknas varje pixlar färger (RGB) och lagrar den i en 2-dimensionell array, vilket i princip motsvarar matrisen själv. Efter beräkning av varje pixel RGB-värden (varje representeras av ett värde mellan 0 och 255 [2⁸]) fortsätter det sedan genom att trycka dessa värden till Arduino via en seriell port på datorn. Detta händer på en viss ordning, eftersom Arduino skränande adress LEDs i ett cartesian slag av väg (x, y). Data skjuts med en viss hastighet av bilder per sekund, vilket leder till en illusion av ett flytta/blekning mönster på matrisen.

#-*-kodning: utf-8-*-

importera kopia
Importera tid
importera följetong < /p >< p > bredd = 6
HÖJD = 10
PIXLAR = BREDD * HÖJD
FPS = 120.0

#--RGB--objekt
klass RGB:
def __init__(self,red,green,blue):
Self.r=Red
Self.g=Green
Self.b=Blue
def setcolor(self,red,green,blue):
Self.r=Red
Self.g=Green
Self.b=Blue

#--skapa--matris
def new_m(w,h): #width/höjd / / returnerar 2 dimensionell lista
Matrix =]
rad =]
x i xrange(w):
Row.append(RGB(0,0,0))

för y i xrange(h):
Matrix.append(copy.deepcopy(Row))

returnera matrisen

#--Tryck - matris
def print_m (m): #matrix / / 2 dimensionell lista
h=len(m)
w=len(m[0])
för y i xrange(h):
Skriv ut y,"> |",
x i xrange(w):
Skriv ut x,"", m [y] [x] Rosencrantz, m [y] [x] t.ex, m [y] [x] spelar, "|",
Skriv ut""

def img_to_m(path,m): #path / / matrix / / bredd / / höjd
Jag = Image.open(path)
pixlar = i.load() < /p >< p > h=len(m)
w=len(m[0])

x i range(w):
för y i range(h):
m [y] [x] Rosencrantz, m [y] [x] t.ex, m [y] [x] spelar = pixlar [x, y]

def send_serial(ttyobj,m): #n = antal der pixel,m=matrix(liste) / / n = mängden pixlar, m = matrix (lista)
h=len(m)
w=len(m[0])
ttyobj.write(Chr(1)) #eine 1 pro antal aller pixel (hier 60) / / glediator protokoll
x i xrange(w): #layout der pixel: erst spalten, dann zeilen von oben rechts beginnend / / första rader och kolumner, start i det övre högra hörnet...
för y i xrange(h):

TTY.write(Chr(m[y][w-1-x].r))
TTY.write(Chr(m[y][w-1-x].g))
TTY.write(Chr(m[y][w-1-x].b))

def calc(f,m): #frame, matrix
h=len(m)
w=len(m[0])
samtidigt f > 255:
f=(f-255)
för y i xrange(h): #alle pixel durchgehen / / gå igenom alla pixlar
x i xrange(w):
m[y][x].SetColor(255-f,f,255)
returnera m #returns bearbetade bilden

#MAINLOOP

kör = sant
ram = 0
target_delta = 1/FPS

skriva ut "skapa matrix..."
Matrix=new_m(width,height)

skriva ut "öppna serieporten..."
TTY = följetong. Serial("/dev/ttyACM3", 500000) #EDIT till COMX
Time.Sleep(1)

medan du kör:
time_a=Time.Time()
Matrix=calc(Frame,Matrix)
#print ram
time_b=Time.Time()
Time.Sleep(target_delta-(time_b-time_a))

send_serial(TTY,Matrix)
skriva ut 1/(time.time()-time_a)
RAM = RAM + 1 < /p >

Se Steg
Relaterade Ämnen

8 x 40 LED matris klocka med kalender med fjärrkontrollen

Idag ska jag visa hur man gör rullning och animerade LED matris klocka med kalender för arduino. Detta projekt har följande funktionerVad är nytt i Version 2.0Extra IR-fjärr baserade justera tid/datumSmidig animationMånga buggfixar i programvaraVersi...

Baserade Arduino Bi-color LED matris orm spel

Vi demonstrerade hur en Arduino baserat Bi-color LED Matrix Tetris spel kan byggas i vårt senaste instructable. Vi var ganska överraskning det var med till Instructables hemsida och har samlat en hel handfull favoriter under en kort tidsperiod. Du ka...

LED-matris jacka

att infoga en LED-matris i en militär jacka. Ser cool, och kommer sannolikt att få dig arresterad på flygplatser!Detta är ett ganska enkelt projekt.Delar som behövs:MAX6952 LED Array förarenMikrokontroller (jag använde en boarduino)280 lysdioder (jag...

Styra en RGB LED-matris med Android och IOIO

Produktversion av detta projekt finns på http://ledpixelart.com ***En Android kontrollerade interaktiva mirror. Kör olika Android apps, visar interaktiva spegeln bilder, löpande text, enkla spel och video som strömmas från en Android-enhet via Blueto...

Arduino binär klocka med LED-matris

Denna webbplats har många fina inlägg som beskriver byggandet av armbandsur. Jag är oerhört skakig, emellertid, och har svårt med någon lödning. Jag ville därför göra mig från en 8 x 8 MAX7219-kontrollerade ledde matrisen.Steg 1: Läsa BCD binär klock...

Spektrometern/LED-matris med Charlieplexed LED

I detta instructable vi konstruera en mängd leds som sedan kan kontrolleras med en Arduino, eller några andra AVR baserat mikrokontroller, eller Raspberry Pi eller vad du vill. Vi helt enkelt bygga verktyget här och du kan tillämpa det som du önskar....

LED-matris-skärm

detta är ett enkelt steg för steg göra egna personliga LED Dot-Matrix display. Jag kommer att lägga till det fullständiga programmet med en förklaring att tända lysdioder med. Det är också ganska hacka, du kan ändra den för att passa dig.Jag decieded...

LED-matris blixtsko till gängad anslutning

jag plockade nyligen upp en 60-LED -ljus från DealExtreme. Denna billiga ljus har energiinställningar, är extremt portabel och kan laddas via usb. Denna LED array kastar en massa ljus och är perfekt för fotografering eftersom botten av LED matrisen h...

Den LED-matris Panel, eller LMP, för Arduino mikrodator, fortsatte.

Sista gången i del 1 som vi infört dig till LMP, en enkel, förlorade kostnad del som ansluts direkt till Arduino. Denna tid, kommer att vi fortsätta med ett enkelt program som jag kallar Musicator.Det är en enkel spektralanalysator, helt utkört progr...

LED-matris Program

detta är min första instructable med elektronik, jag har gjort en på hemsidan utveckling dock. Jag försöker fortfarande att få kläm på skapa instructables och arbeta med elektronik men jag är ganska nöjd med detta projekt är att dess min första en. O...

Ansluta ett 8 x 8 LED-matris till en liten skärbräda

dessa matriser är roliga att leka med, men deras storlek gör dem svåra att använda på de flesta brödunderläggen. Här är ett sätt att montera den på en liten Skärbräda i ett (relativt) snyggt sätt.Du behöver:1 set av brödunderläggen1 8 x 8 ledde matri...

LED-projektor lampa v.2.0

för dig som snubbla på detta instructable, lite historia är obligatoriskt för att bättre förstå mina mål med denna LED projektor lampa. Jag rekommenderar därför att du först läser den LED projektor lampa v.1.0 instructable jag postat ett tag sedan. K...

Kontrollerbar RGB LED-system för ditt hem eller kontor

Är belysningen i ditt hem eller utrymme tråkiga? Vill du lägga lite energi eller stämningsskapande belysning till ditt rum? Detta Instructable visar hur du skapar en kontrollerbar RGB LED-matris för användning i ditt hem eller kontor. Din röda, gröna...

Carlitos' projekt: RGB LED Mood Cube

detta är först i en rad elektroniska / robot DIY projekt. Dessa projekt åtföljs av instruktions videor som hjälper dig genom de många steg som ingår i att slutföra uppgiften. För denna första iteration gör vi en RGB LED Mood kub.Glödande färgskiftand...

8 * 8 LED Dot Matrix Clock

Jag fick en LED-modul för några dagar sedan och tänkte använda den för att spela Tetris eller en orm spel, men jag trodde det skulle vara lamt. Så jag tänkte: "varför inte göra en klocka?"Det finns bara sextio-fyra prickar på en Matrix modul, ja...

32 x 32 RGB LED Plasma w / STM32F4.

Det finns redan några tutorials ute visar hur man styr en 32 x 32 RGB LED-skärm.Detta projekt har några små variationer med följande funktioner:Baserat på en STM32F401RE eval styrelseProgramvara BSP genereras av STM32CubeMX (v1.4.0 används här, nyare...

Arduino 8 x 8 Matrix LED spelet

för en klass jag tar jag var tvungen att göra ett spel med en 8 x 8 LED-matris. Spelet bygger runt släppa en "bomb" på ett mål bläddra längst ner på skärmen.Varje nivå målet rör sig snabbare och du flyttas längre bort från målet. Efter 4 nivåer...

8 x 8 LED Pong med Arduino

Av Justin Ou, kreativa tekniker (praktikant)Denna klassiska Pong spelet skapades med en Arduino ansluten till en 8 x 8 ledde matrisen. Pong paddlar styrs med joystick och avslutas när bollen går förbi en spelares paddel. Som en utmaning ökar bollen h...

Klockan LED Transit - aldrig missa bussen igen!

Vi kommer att bygga en rullning LED-display för busstider. Du kanske har sett en av dessa på din subway station eller hållplats. Du kan bygga en för hemmet till hjälp du vet exakt hur mycket tid du har kvar--speciellt om du tenderar att slå snooze al...