Python Anfänger benötigt hilfe beim Script
Verfasst: Dienstag 25. März 2014, 20:23
Hallo zusammen,
erstmal möchte ich mich kurz vorstellen, ich bin Informatiker vom Beruf aber zuletzt richtig Programmiert habe ich wohl vor 10 Jahren. Meine Sprachen waren damals Java und C++.
Durch meinen Raspberry bin ich wieder zum programmieren gekommen. Ich habe ein Script von Adafruit genommen was auch sehr gut läuft. Ich möchte das Script für meine Bedürfnisse anpassen, und zwar das die Ausgabe einmal durchläuft und das danach das Script beendet wird. Probiert habe ich das durch eine Zählschleife, aber irgendwie mache ich wohl noch einen dummen Fehler
Daher wäre ich dankbar, wenn mir jemand meinen Fehler aufzeigt
Und hier das Script:
erstmal möchte ich mich kurz vorstellen, ich bin Informatiker vom Beruf aber zuletzt richtig Programmiert habe ich wohl vor 10 Jahren. Meine Sprachen waren damals Java und C++.
Durch meinen Raspberry bin ich wieder zum programmieren gekommen. Ich habe ein Script von Adafruit genommen was auch sehr gut läuft. Ich möchte das Script für meine Bedürfnisse anpassen, und zwar das die Ausgabe einmal durchläuft und das danach das Script beendet wird. Probiert habe ich das durch eine Zählschleife, aber irgendwie mache ich wohl noch einen dummen Fehler
Daher wäre ich dankbar, wenn mir jemand meinen Fehler aufzeigt
Und hier das Script:
Code: Alles auswählen
#!/usr/bin/env python
# Light painting / POV demo for Raspberry Pi using
# Adafruit Digital Addressable RGB LED flex strip.
# ----> http://adafruit.com/products/306
from bootstrap import *
import RPi.GPIO as GPIO, Image, time
# Configurable values
filename = "fry.jpg"
dev = "/dev/spidev0.0"
dl = 1
# Open SPI device, load image in RGB format and get dimensions:
spidev = file(dev, "wb")
print "Loading..."
img = Image.open(filename).convert("RGB")
pixels = img.load()
width = img.size[0]
height = img.size[1]
print "%dx%d pixels" % img.size
# To do: add resize here if image is not desired height
# Calculate gamma correction table. This includes
# LPD8806-specific conversion (7-bit color w/high bit set).
gamma = bytearray(256)
for i in range(256):
gamma[i] = 0x80 | int(pow(float(i) / 255.0, 2.5) * 127.0 + 0.5)
# Create list of bytearrays, one for each column of image.
# R, G, B byte per pixel, plus extra '0' byte at end for latch.
print "Allocating..."
column = [0 for x in range(width)]
for x in range(width):
column[x] = bytearray(height * 3 + 1)
# Convert 8-bit RGB image into column-wise GRB bytearray list.
print "Converting..."
for x in range(width):
for y in range(height):
value = pixels[x, y]
y3 = y * 3
column[x][y3] = gamma[value[2]]
column[x][y3 + 1] = gamma[value[0]]
column[x][y3 + 2] = gamma[value[1]]
# Then it's a trivial matter of writing each column to the SPI port.
print "Displaying..."
while True:
if dl < 2:
for x in range(width):
spidev.write(column[x])
spidev.flush()
time.sleep(0.101)
time.sleep(3.5)
dl = dl + 2