restructure code base
This commit is contained in:
parent
41ea1007dd
commit
eae0d18bd1
4
README
Normal file
4
README
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
SPI has to be enabled:
|
||||||
|
|
||||||
|
sudo raspi-config -> Interface -> SPI
|
||||||
|
|
||||||
21
client/client.py
Normal file
21
client/client.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import socket
|
||||||
|
|
||||||
|
|
||||||
|
def client_program():
|
||||||
|
host = "192.168.188.61"
|
||||||
|
port = 5000
|
||||||
|
|
||||||
|
client_socket = socket.socket() # instantiate
|
||||||
|
client_socket.connect((host, port)) # connect to the server
|
||||||
|
|
||||||
|
message = input(" -> ") # take input
|
||||||
|
|
||||||
|
while message.lower().strip() != 'bye':
|
||||||
|
client_socket.send(message.encode()) # send message
|
||||||
|
message = input(" -> ") # again take input
|
||||||
|
|
||||||
|
client_socket.close() # close the connection
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
client_program()
|
||||||
2
install_on_pi.sh
Executable file
2
install_on_pi.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
scp server/* pi@192.168.188.61:~/led_controll/
|
||||||
|
#ws2801.py --daemon
|
||||||
5
requirements
Normal file
5
requirements
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
RPi.GPIO
|
||||||
|
Adafruit-WS2801
|
||||||
|
Adafruit-GPIO
|
||||||
|
|
||||||
|
|
||||||
30
server/color_mode.py
Normal file
30
server/color_mode.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
def color_cycle(speed):
|
||||||
|
if int(speed) == 0:
|
||||||
|
delay = 0
|
||||||
|
else:
|
||||||
|
delay = 1/int(speed) * 10
|
||||||
|
|
||||||
|
r = 255
|
||||||
|
g = 0
|
||||||
|
b = 0
|
||||||
|
while True:
|
||||||
|
while r > 0:
|
||||||
|
r = r-1
|
||||||
|
g = g+1
|
||||||
|
set_color(r,g,b)
|
||||||
|
time.sleep(delay)
|
||||||
|
while g > 0:
|
||||||
|
g = g-1
|
||||||
|
b = b+1
|
||||||
|
set_color(r,g,b)
|
||||||
|
time.sleep(delay)
|
||||||
|
while b > 0:
|
||||||
|
b = b-1
|
||||||
|
r = r+1
|
||||||
|
set_color(r,g,b)
|
||||||
|
time.sleep(delay)
|
||||||
|
|
||||||
|
def visualizer():
|
||||||
|
for volume in sys.stdin:
|
||||||
|
volume = int(volume)
|
||||||
|
set_color(volume,0,0)
|
||||||
45
server/led_controll.py
Executable file
45
server/led_controll.py
Executable file
@ -0,0 +1,45 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
import sys
|
||||||
|
import getopt
|
||||||
|
import time
|
||||||
|
|
||||||
|
import "ws2801"
|
||||||
|
import "server"
|
||||||
|
|
||||||
|
def helpmenu():
|
||||||
|
print("Options:")
|
||||||
|
print("-h show help")
|
||||||
|
print("-s <color> color in hex")
|
||||||
|
print("-c <speed> colorcycle")
|
||||||
|
|
||||||
|
def main(argv):
|
||||||
|
|
||||||
|
if not sys.stdin.isatty():
|
||||||
|
visualizer()
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
try:
|
||||||
|
opts, args = getopt.getopt(argv,"hds:c:r")
|
||||||
|
except getopt.GetoptError:
|
||||||
|
print("ws2801.py: invalid option")
|
||||||
|
print("Try 'ws2801.py -h' for help")
|
||||||
|
sys.exit(2)
|
||||||
|
|
||||||
|
for opt, arg in opts:
|
||||||
|
if opt == "-h":
|
||||||
|
helpmenu()
|
||||||
|
sys.exit()
|
||||||
|
elif opt == "-s":
|
||||||
|
r,g,b = hex_to_rgb(arg)
|
||||||
|
set_color(r,g,b)
|
||||||
|
sys.exit()
|
||||||
|
elif opt == "-c":
|
||||||
|
color_cycle(arg)
|
||||||
|
elif opt == "-d":
|
||||||
|
start_server()
|
||||||
|
|
||||||
|
helpmenu()
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main(sys.argv[1:])
|
||||||
21
server/server.py
Normal file
21
server/server.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
import socket
|
||||||
|
|
||||||
|
def start_server():
|
||||||
|
host = socket.gethostname()
|
||||||
|
port = 5000
|
||||||
|
|
||||||
|
server_socket = socket.socket()
|
||||||
|
server_socket.bind((host, port))
|
||||||
|
|
||||||
|
# configure how many client the server can listen simultaneously
|
||||||
|
server_socket.listen(1)
|
||||||
|
conn, address = server_socket.accept() # accept new connection
|
||||||
|
print("Connection from: " + str(address))
|
||||||
|
while True:
|
||||||
|
# receive data stream. it won't accept data packet greater than 1024 bytes
|
||||||
|
data = conn.recv(1024).decode()
|
||||||
|
print(str(data))
|
||||||
|
|
||||||
|
|
||||||
|
conn.close() # close the connection
|
||||||
|
|
||||||
25
server/ws2801.py
Normal file
25
server/ws2801.py
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
import RPi.GPIO as GPIO
|
||||||
|
import Adafruit_WS2801
|
||||||
|
import Adafruit_GPIO.SPI as SPI
|
||||||
|
|
||||||
|
PIXEL_COUNT = 32
|
||||||
|
|
||||||
|
SPI_PORT = 0
|
||||||
|
SPI_DEVICE = 0
|
||||||
|
pixels = Adafruit_WS2801.WS2801Pixels(PIXEL_COUNT, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE), gpio=GPIO)
|
||||||
|
|
||||||
|
def hex_to_rgb(hex):
|
||||||
|
r = int(hex[0:2],16)
|
||||||
|
g = int(hex[2:4],16)
|
||||||
|
b = int(hex[4:6],16)
|
||||||
|
print(r,g,b)
|
||||||
|
return r,g,b
|
||||||
|
|
||||||
|
def set_color(r,g,b):
|
||||||
|
for i in range(pixels.count()):
|
||||||
|
pixels.set_pixel(i, Adafruit_WS2801.RGB_to_color(r,g,b))
|
||||||
|
pixels.show()
|
||||||
|
|
||||||
|
def clear_pixels():
|
||||||
|
pixels.clear()
|
||||||
|
pixels.show()
|
||||||
Loading…
Reference in New Issue
Block a user