Personal tools

LPD8806-Lan

From Frack - Hackerspace Friesland

Jump to: navigation, search
Project: LPD8806-Lan
LPD8806 lan interface.jpg
Status voltooid
Betrokkenen
Kennisgebied(en) LPD8806
, Arduino, Netwerken
, Python, ENC28J60
Projectcode lpd8806-ethernet
Afgeleid van: Bedlights
Afgeleide projecten Ldr2ethernet
ProjectoverzichtProject toevoegen

Interface om vanaf ethernet via een arduino direct de leds van een LPD8806 strip aan te sturen.

Hardware

De hardware in dit project is een Arduino gekoppeld aan een ENC28J60 netwerk module en een LPD8806 ledstrip.

Code

De code voor dit project is in 2 delen opgesplits, het ontvangende deel op de arduino welke een webserver op poort 80 opzet en wacht op "requests", en het deel dat de kleurtjes per led berekend en ze via telnet naar de webserver stuurt. De code is beschikbaar op: https://github.com/JanKlopper/lpd8806-ethernet

Protocol

  • Per http request wordt er een volledige string leds aangestuurd, leds waar geen data voor is ontvangen worden door de arduino uitgeschakeld.
  • Per led moeten er 3 ascii karakters gestuurd te worden. De waarde van deze karakers in de (extended) Ascii table - 65 is de intensiteit. (we beginnen met tellen bij A om het protocol leesbaar te houden)
  • De eerste van 3 karakters is de rode bit, de tweede de groene en de derde de blauwe.
  • Bij een A (ascii 65) wordt de intensiteit 0, bij een z(ascii 122) is deze dus 122-65 = 57, ongeveer de helft van de maximale (127, want 7 bit) intensiteit van de kleur.
  • Met een enter (\r of \n) wordt de request afgesloten en zal de ledstrip oplichten.

Telnet voorbeeld

telnet 192.168.2.16 80
AAzAzAzAA

Dit zet de eerste 3 leds elk in een kleur, de eerste blauw, de tweede groen en de derde rood.