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

Steg 5: Livets spel

Game of Life, även känt som liv, är en cellulär automat som utarbetats av Britishmathematician John Horton Conway 1970. [Wikipedia]

Bara kopiera dessa rader eller ladda ner game_of_matrix.py nedan:

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

importera kopia
från random importera randint
Importera tid
importera följetong

BREDD = 6
HÖJD = 10
PIXLAR = BREDD * HÖJD
FPS = 3,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)
h=len(m)
w=len(m[0])
ttyobj.write(Chr(1)) #eine 1 pro antal aller pixel (hier 60)
x i xrange (w): #layout der pixel: erst spalten, dann zeilen von oben rechts beginnend
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 populate(c,m): #anzahl der startzellen, matrix
h=len(m)
w=len(m[0])
för y i xrange(h): #alle pixel durchgehen
x i xrange(w):
m [y] [x] spelar = 127
m [y] [x] Rosencrantz = 127
h=len(m)
w=len(m[0])
för i i xrange(c): #zufaelliges besetzen
y=randInt(0,h-1)
x=randInt(0,w-1)
m[y][x].SetColor(255,0,0)
returnera m

def isPopulated(m,y,x,yBorder,xBorder):
om 0 < = y < yBorder:
om 0 < = x < xBorder:
om m [y] [x] Rosencrantz == 255: #schwellwert für lebende zelle
Return True
annat:
returnera False

def checkNeighbours(m,y,x):
h=len(m)
w=len(m[0])
c = 0
om isPopulated(m,y-1,x-1,h,w):
c = c + 1
om isPopulated(m,y-1,x,h,w):
c = c + 1
om isPopulated(m,y-1,x+1,h,w):
c = c + 1

om isPopulated(m,y,x-1,h,w):
c = c + 1
om isPopulated(m,y,x+1,h,w):
c = c + 1

om isPopulated(m,y+1,x-1,h,w):
c = c + 1
om isPopulated(m,y+1,x,h,w):
c = c + 1
om isPopulated(m,y+1,x+1,h,w):
c = c + 1
returnera c

def nextGen(f,m): #frame, matrix
equalPixels = 0
h=len(m)
w=len(m[0])
bufferMatrix=new_m(w,h)
för y i xrange(h): #alle pixel durchgehen
x i xrange(w):
n=checkNeighbours(m,y,x)
om n < 2 eller n > 3:
bufferMatrix [y] [x] spelar = 127
bufferMatrix[y][x].r=m[y][x].r/2
Elif m [y] [x] Rosencrantz < 255 och n == 3:
bufferMatrix [y] [x] Rosencrantz = 255
Elif m [y] [x] Rosencrantz == 255 och 2 < = n < = 3:
bufferMatrix [y] [x] Rosencrantz = 255
annat:
bufferMatrix [y] [x] spelar = 127
bufferMatrix[y][x].r=m[y][x].r/2

om bufferMatrix [y] [x] Rosencrantz == m [y] [x]. r:
equalPixels = equalPixels + 1
om equalPixels == h * w:
återgå populate(randint(0,60),new_m(WIDTH,HEIGHT))
återgå bufferMatrix #returns bearbetade bilden

#MAINLOOP

kör = sant
ram = 0
target_delta = 1/FPS
skriva ut "skapa matrix..."
Matrix=new_m(width,height)
skriva ut "fylla..."
Matrix=Populate(40,Matrix)
print_m(Matrix)
skriva ut "öppna serieporten..."
TTY = följetong. Serial ("/ dev/ttyACM3", 500000)
Time.Sleep(1)
send_serial(TTY,Matrix)
Time.Sleep(target_delta) < /p >< p > medan du kör:
time_a=Time.Time()
Matrix=nextGen(Frame,Matrix)
#print_m(matrix)

time_b=Time.Time() < /p >< p >
Time.Sleep(target_delta-(time_b-time_a)) < /p >< p > 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...