Les solutions AMBILIGHT (Lightpack / LightBerry / Hyperion / Adalight etc...)

Posté par Dancorp le 17/10/2014 à 13h53

1867 commentaires

NOUVELLE REPONSE

Nombre de réponses par page

Ce paramètre s’applique automatiquement à l’ensemble des sujets.

Flux RSS des réponses

Page :

Pastek

Le 05/01/2017 à 11h16

#1761 Signaler
Tiens j'avais une question, sur la v2 du Lightpack les LEDS ne sont plus face au mur, collées dos à l'écran mais posées perpendiculairement et donc éclaire sur le côté. Est-ce que l'une des 2 dispositions est mieux que l'autre ? Il y a une grosse différence visuelle ?
Nephrite

Le 05/01/2017 à 18h47

#1762 Signaler
Tiens j'avais une question, sur la v2 du Lightpack les LEDS ne sont plus face au mur, collées dos à l'écran mais posées perpendiculairement et donc éclaire sur le côté. Est-ce que l'une des 2 dispositions est mieux que l'autre ? Il y a une grosse différence visuelle ?

Oui si ta télé est collé au mur lorsqu'il y a des flammes ou explosions le rendu sera mieux en étant perpendiculaire si t es loin du mur il vaut mieux les coller

Avec votre recul, la meilleure qualité ce trouve avec le pack bravekit / lightpack / lightberry HD?
J'ai classé du moins chère au plus chère, moi comme ça je dirai lightberry mais est ce que la différence justifie le prix.
Ayant le rasp 1/ 2 /3 .
Je vais tester uniquement sur rasp au debut puis ensuite pas PS4, en faisant le tour apparemment incompatibilité avec la PS4 pro et X box one S
Sur le pack bravikit il y a * Length of Lightpack cables, vous avez pris quelle longueur?

Le moins cher c est encore d'acheter un ruban led (ws2801 ou autre) et le brancher sur le RPI coût d un ruban de 5 m environ 30€ + un HDMI to HDMI to CVBS 35€ (Ou splitter et HDMI to av 20€ environ) + connectique et alim environ 25€
SparaFR

Le 05/01/2017 à 19h55

#1763 Signaler
Comment faire pour alimenter mes leds WS2801 ? je fais un projet avec un arduino que me conseillez vous d'acheter et comment faire merci
Nephrite

Le 05/01/2017 à 19h57

#1764 Signaler
Comment faire pour alimenter mes leds WS2801 ? je fais un projet avec un arduino que me conseillez vous d'acheter et comment faire merci

Bah avec une alim
yous13

Le 05/01/2017 à 20h10 (Modifié le 05/01/2017 à 20h22)

#1765 Signaler
Comment faire pour alimenter mes leds WS2801 ? je fais un projet avec un arduino que me conseillez vous d'acheter et comment faire merci

Tout depend du nombre de metre que tu veux installer.

Un metre de ws2801 a besoin de 10w/ max en full white pour fonctionner . Tu multiplie par le nombre de métre puis tu le divise par le voltage.

Si tu as besoin de 3 metres par exemple ca te donne ( 3 x 10 ) / 5 = 6 amperes max. .

Soi tu utilise un bloc chargeur comme celui la . il en existe de plusieurs amperages jusqu'a 10A ( 10A a 20-25€ voir moins si aliexpress )



ou un bloc alim si tu veux alimenter plusieurs composants




Quel type d'arduino veux tu utiliser et quel est ton projet ?
SparaFR

Le 07/01/2017 à 0h49

#1766 Signaler
J'ai 2m de led (3m pas sur) pour un écran 27" donc en ws2801, et j'ai un atmega 168, c'est plus pour savoir comment connecter les leds à l'alimentation qui me gène
anisdu25

Le 07/01/2017 à 1h15 (Modifié le 07/01/2017 à 2h27)

#1767 Signaler
Salut
tu connecte +5v a ton alimentation
le data a ton arduino
le GND a l'arduino et l'alimentation

moi je viens juste de finir le montage sur un 27" , je galère un peu avec ambibox

la j'ai juste fait tourner un petit programme qui fait un arc en ciel
j'ai fini les réglages un petit test en jeu
https://www.youtube.com/watch?v=Csxfg4OsFcI
luna35

Le 07/01/2017 à 10h03

#1768 Signaler
@Nephrite Tout a fait mais le coté soudure m’embête un peu à moins qu'une solution existe maintenant?


yous13

Le 07/01/2017 à 10h12 (Modifié le 07/01/2017 à 10h25)

#1769 Signaler
Salut,

Ok c'est tres simple. Tu branche comme ceci et ça devrai allé.



Le connecteur d'alim femelle devrai déjà être présent sur ton ruban de LED.( voir même 2 )



Tu branche un bloc chargeur de 4 Ampère dessus puis tu fait les branchements sur ton atmega en utilisant le connecteur JST.
Pastek

Le 07/01/2017 à 11h21 (Modifié le 07/01/2017 à 11h22)

#1770 Signaler
Tiens j'avais une question, sur la v2 du Lightpack les LEDS ne sont plus face au mur, collées dos à l'écran mais posées perpendiculairement et donc éclaire sur le côté. Est-ce que l'une des 2 dispositions est mieux que l'autre ? Il y a une grosse différence visuelle ?
Oui si ta télé est collé au mur lorsqu'il y a des flammes ou explosions le rendu sera mieux en étant perpendiculaire si t es loin du mur il vaut mieux les coller
Qu'est-ce que tu appelles collé au mur ? J'ai 30-35 cm chez moi.
Remarque j'ai une Samsung dont les bords derrière sont un peu bombés donc je suppose que ça fera un mix entre les 2. :)
Nephrite

Le 07/01/2017 à 13h31 (Modifié le 07/01/2017 à 13h37)

#1771 Signaler
Tiens j'avais une question, sur la v2 du Lightpack les LEDS ne sont plus face au mur, collées dos à l'écran mais posées perpendiculairement et donc éclaire sur le côté. Est-ce que l'une des 2 dispositions est mieux que l'autre ? Il y a une grosse différence visuelle ?
Oui si ta télé est collé au mur lorsqu'il y a des flammes ou explosions le rendu sera mieux en étant perpendiculaire si t es loin du mur il vaut mieux les coller
Qu'est-ce que tu appelles collé au mur ? J'ai 30-35 cm chez moi.
Remarque j'ai une Samsung dont les bords derrière sont un peu bombés donc je suppose que ça fera un mix entre les 2. :)

Je voulais dire collé au mur comme moi ;-)

https://youtu.be/VwGMcpsWLng

Mais avant j étais à la meme distance que toi et meme config pour les bords télé mais j avais mis en perpendiculaire et ça donnait ça

https://youtu.be/k1zFE5LSknc

D'ailleurs les leds étaient placées avec du scotch et certaines étaient trop hautes et reflétaient dans le cadre transparent et du coup tu les vois (regarde en haut à droite ;-) )
SparaFR

Le 08/01/2017 à 19h27

#1772 Signaler
Merci pour les coups de mains ! je vais regarder tout ca merci
Mazda932

Le 09/01/2017 à 9h54 (Modifié le 09/01/2017 à 9h55)

#1773 Signaler
Bonjour à tous.
J'ai besoin d'une info, je pense que quelqu'un pourra m'aiguiller ici.

J'ai à disposition un kit led, ou est ce que je pourrais trouver uniquement une interface de gestion pour une utilisation via Kodi sur pc?
Je ne trouve que des kits complets dans mes recherches..
Pastek

Le 09/01/2017 à 10h02

#1774 Signaler
Bonjour à tous.
J'ai besoin d'une info, je pense que quelqu'un pourra m'aiguiller ici.

J'ai à disposition un kit led, ou est ce que je pourrais trouver uniquement une interface de gestion pour une utilisation via Kodi sur pc?
Je ne trouve que des kits complets dans mes recherches..
J'ai vu que Lightberry par exemple vendait aussi son système sans LED.
Mais après il faut que ce soit le bon type de LED à mon avis.
Mazda932

Le 09/01/2017 à 10h34 (Modifié le 09/01/2017 à 12h11)

#1775 Signaler
C'est ( pas forcément la même marque) la même chose que celui là ( ruban télécommande transfo tout pareil)


Je pense que ce dont j'ai besoin serait l'équivalent du lightpack mais sans les leds, mais je ne sais pas où trouver juste ça.
anisdu25

Le 09/01/2017 à 14h35 (Modifié le 09/01/2017 à 14h38)

#1776 Signaler
si tes bandes led on 3 pads 5V/DO/GND ou 4 pads 5V/DO/CO/GND c'est bon


si c'est 4 pads et c'est ecrit +12v/R/G/B c'est pas bon


les premier tu peu les contrôler une a une les couleurs / intensités
alors que les deuxième tu dois contrôler tout le bandeau de la même couleur / intensité
Mazda932

Le 09/01/2017 à 18h53 (Modifié le 09/01/2017 à 18h55)

#1777 Signaler
ok, merci pour ta reponse.
Pas de chance, c'est la version +12/R/G/B.

Sur ce systeme la, c'est plusieurs petites bandes de 3 leds, sur chaque petite bande, ca allume bien les trois leds de meme couleur/intensité? Donc ca pourrais convenir (en coupant plusieurs bandes comme sur la photo)?
anisdu25

Le 09/01/2017 à 19h20

#1778 Signaler
avec le light pack tu peu mais faut trouver le boitier seul et t'aura beaucoup de decoup et de câblage a faire
et le prix du kit est a 89$ avec les leds
ca te reviendrai moins chère des leds ws28xx avec une alim et une arduino
Mazda932

Le 09/01/2017 à 19h40 (Modifié le 09/01/2017 à 19h44)

#1779 Signaler
En fait, je me ferais bien un ambilight maison, je pensais donc utiliser ce que j'avais deja à disposition, mais au final ca collera pas.

Donc sinon, que me conseillerais tu pour:
-Utilisation depuis PC fixe pour Kodi et si possible jeux video OU autre (rapsberry etc) mais pouvant recuperer ma source hdmi du pc.
-Budget limité, ca m'interesse d'essayer, mais je suis pas pret à mettre 90e dedans.
-Je suis pas contre du bidouillage de rasp arduino etc

Un avis sur le systeme Adalight qui est moins cher?
anisdu25

Le 09/01/2017 à 19h47

#1780 Signaler
Mazda932

Le 09/01/2017 à 19h58 (Modifié le 09/01/2017 à 20h05)

#1781 Signaler
Je regarde tout ca
Et pour le Adalight t'en penses quoi par rapport au lightpack? D'apres les video ca à pas l'air mal.

(les liens marchent pas)
anisdu25

Le 09/01/2017 à 20h05

#1782 Signaler
l'adalight c'est une arduino avec des leds ws2812b c'est plus du DIY
alors que le lightpack c'est un kit tout prêt même si tu peu le faire toi même mais plus compliqué ( https://github.com/woodenshark/Lightpack )
le lightpack t'a 10 zone que tu peu contrôler

alors que le adalight tu peu avoir plusieurs zone car tu contrôle chaque leds indépendamment
Mazda932

Le 09/01/2017 à 20h08

#1783 Signaler
Ok donc une fois arduino acheter ca revient plus cher au final..
anisdu25

Le 09/01/2017 à 20h12

#1784 Signaler
qu’es qui reviens plus chère ?
Mazda932

Le 09/01/2017 à 20h14

#1785 Signaler
Adalight. (50$ + prix de l'Arduino non inclus)
anisdu25

Le 09/01/2017 à 20h17

#1786 Signaler
ah tu parle du kit sur adafruit
t'en a pas besoin tu peu le faire toi même avec la liste que je t'ai montrer en haut, apres t'a plus qu'a programmer l'arduino avec le programme de l'adalight c'est tout
Mazda932

Le 09/01/2017 à 20h19

#1787 Signaler
les liens me renvoi des pages mortes, je cherche tout ca manuellement
anisdu25

Le 09/01/2017 à 20h24

#1788 Signaler
http://pastebin.com/equQjFQT
la t'aura normalment les bon liens
Mazda932

Le 09/01/2017 à 20h31

#1789 Signaler
Nickel, merci pour les liens et les infos.

Pour la carte nano v3, il faut acheter un arduino en plus? je comprends pas bien la. Dsl
anisdu25

Le 09/01/2017 à 20h34

#1790 Signaler
la carte nano v3 c'est une arduino
Mazda932

Le 09/01/2017 à 20h40

#1791 Signaler
ok, je vais regarder un peu tout ca.
Merci !
yous13

Le 09/01/2017 à 21h29 (Modifié le 09/01/2017 à 21h34)

#1792 Signaler
Nickel, merci pour les liens et les infos.

Pour la carte nano v3, il faut acheter un arduino en plus? je comprends pas bien la. Dsl


Tu peux aussi remplacer ton arduino par un Nodemcu v3 ( arduino avec carte wifi ) pour pas plus cher.

Tu pourra :
- soit le connecter en usb comme un arduino normal. ( bande de LED a 3 fils seulement ).
- soit le faire fonctionner en wifi pour :
----> de l'ambilight
----> du Hue Like
----> de l'Ambilight multizones
----> du forwarding

https://fr.aliexpress.com/wholesale?catId=0&initiative_id=SB_20170109122140&SearchText=nodemcu+v3



La programmation se fait de la même façon qu'avec un arduino.
anisdu25

Le 09/01/2017 à 21h35

#1793 Signaler
tu fais comment pour switcher entre le mode ambilight et le Hue like ?
yous13

Le 09/01/2017 à 22h36 (Modifié le 10/01/2017 à 9h31)

#1794 Signaler
En fait tu utilise le mode multicast d'hyperion et tu programme le nodemcu avec un sketch adapté à l'esp8266. AtmoOrb

Plus d'info ici https://forum.team-mediaportal.com/threads/diy-atmoorb-a-hue-like-mood-lamp-based-on-arduino-esp8266-wifi-module-and-ws2812b-rgb-leds.129229/
ou la https://forum.team-mediaportal.com/threads/diy-atmoorb-a-hue-like-mood-lamp-based-on-particle-photon-with-neopixel-tutorial-added.131901/

et le sketch arduino pour avoir un apercu :

Ce message a été masqué par son auteur. Cliquez pour l’afficher.
// AtmoOrb by Lightning303 & Rick164
//
// ESP8266 Standalone Version
//
//
// You may change the settings that are commented

#define FASTLED_ALLOW_INTERRUPTS 0
// To make sure that all leds get changed 100% of the time, we need to allow FastLED to disabled interrupts for a short while.
// If you experience problems, please set this value to 1.
// This is only needed for 3 wire (1 data line + Vcc and GND) chips (e.g. WS2812B). If you are using WS2801, APA102 or similar chipsets, you can set the value back to 1.

#include <ESP8266WiFi.h>
#include <WiFiUDP.h>
#include <FastLED.h>

#define NUM_LEDS 24 // Number of leds
#define DATA_PIN 7 // Data pin for leds (the default pin 7 might correspond to pin 13 on some boards)
#define SERIAL_DEBUG 0 // Serial debugging (0=Off, 1=On)

#define ID 1 // Id of this lamp

// Smoothing
#define SMOOTH_STEPS 20 // Steps to take for smoothing colors
#define SMOOTH_DELAY 10 // Delay between smoothing steps
#define SMOOTH_BLOCK 0 // Block incoming colors while smoothing

// Startup color
#define STARTUP_RED 255 // Color shown directly after power on
#define STARTUP_GREEN 175 // Color shown directly after power on
#define STARTUP_BLUE 100 // Color shown directly after power on

// White adjustment
#define RED_CORRECTION 220 // Color Correction
#define GREEN_CORRECTION 255 // Color Correction
#define BLUE_CORRECTION 180 // Color Correction

// RC Switch
#define RC_SWITCH 0 // RF transmitter to swtich remote controlled power sockets (0=Off, 1=On)
#if RC_SWITCH == 1
#include <RCSwitch.h>
#define RC_PIN 2 // Data pin for RF transmitter
#define RC_SLEEP_DELAY 900000 // Delay until RF transmitter send signals
char* rcCode0 = "10001"; // First part of the transmission code
char* rcCode1 = "00010"; // Second part of the transmission code
RCSwitch mySwitch = RCSwitch();
boolean remoteControlled = false;
#endif

// Network settings
const char* ssid = "XXXXXXX"; // WiFi SSID
const char* password = "XXXXXXXX"; // WiFi password
const IPAddress multicastIP(239, 15, 18, 2); // Multicast IP address
const int multicastPort = 49692; // Multicast port number

CRGB leds[NUM_LEDS];
WiFiUDP Udp;
byte nextColor[3];
byte prevColor[3];
byte currentColor[3];
byte smoothStep = SMOOTH_STEPS;
unsigned long smoothMillis;

void setColor(byte red, byte green, byte blue);
void setSmoothColor(byte red, byte green, byte blue);
void smoothColor();
void clearSmoothColors();

void setup()
{
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
//FastLED.setCorrection(TypicalSMD5050);
FastLED.setCorrection(CRGB(RED_CORRECTION, GREEN_CORRECTION, BLUE_CORRECTION));
FastLED.showColor(CRGB(STARTUP_RED, STARTUP_GREEN, STARTUP_BLUE));

#if RC_SWITCH == 1
mySwitch.enableTransmit(RC_PIN);
#endif

#if SERIAL_DEBUG == 1
Serial.begin(115200);
#endif

WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
#if SERIAL_DEBUG == 1
Serial.print(F("."));
#endif
}
#if SERIAL_DEBUG == 1
Serial.println("");
Serial.print(F("Connected to "));
Serial.println(ssid);
Serial.print(F("IP address: "));
Serial.println(WiFi.localIP());
#endif
Udp.beginMulticast(WiFi.localIP(), multicastIP, multicastPort);
}

void loop()
{
#if SERIAL_DEBUG == 1
if (WiFi.status() != WL_CONNECTED)
{
Serial.print(F("Lost connection to "));
Serial.print(ssid);
Serial.println(F("."));
Serial.println(F("Trying to reconnect."));
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(F("."));
}
Serial.println("");
Serial.println(F("Reconnected."));
}
#endif
if (Udp.parsePacket())
{
byte len = Udp.available();
byte rcvd[len];
Udp.read(rcvd, len);

#if SERIAL_DEBUG == 1
Serial.print(F("UDP Packet from "));
Serial.print(Udp.remoteIP());
Serial.print(F(" to "));
Serial.println(Udp.destinationIP());
for (byte i = 0; i < len; i++)
{
Serial.print(rcvd);
Serial.print(F(" "));
}
Serial.println("");
#endif
if (len >= 8 && rcvd[0] == 0xC0 && rcvd[1] == 0xFF && rcvd[2] == 0xEE && (rcvd[4] == ID || rcvd[4] == 0))
{
switch (rcvd[3])
{
case 1:
setColor(0, 0, 0);
smoothStep = SMOOTH_STEPS;
break;
case 2:
default:
setSmoothColor(rcvd[5], rcvd[6], rcvd[7]);
break;
case 4:
setColor(rcvd[5], rcvd[6], rcvd[7]);
smoothStep = SMOOTH_STEPS;
break;
case 8:
Udp.beginPacket(Udp.remoteIP(), Udp.remotePort());
Udp.write(ID);
Udp.endPacket();
break;
}
}
}
if (smoothStep < SMOOTH_STEPS && millis() >= (smoothMillis + (SMOOTH_DELAY * (smoothStep + 1))))
{
smoothColor();
}
#if RC_SWITCH == 1
if (remoteControlled && currentColor[0] == 0 && currentColor[1] == 0 && currentColor[2] == 0 && millis() >= smoothMillis + RC_SLEEP_DELAY)
{
// Send this signal only once every seconds
smoothMillis += 1000;
mySwitch.switchOff(rcCode0, rcCode1);
}
#endif
}

// Display color on leds
void setColor(byte red, byte green, byte blue)
{
// Is the new color already active?
if (currentColor[0] == red && currentColor[1] == green && currentColor[2] == blue)
{
return;
}
currentColor[0] = red;
currentColor[1] = green;
currentColor[2] = blue;

FastLED.showColor(CRGB(red, green, blue));
}

// Set a new color to smooth to
void setSmoothColor(byte red, byte green, byte blue)
{
if (smoothStep == SMOOTH_STEPS || SMOOTH_BLOCK == 0)
{
// Is the new color the same as the one we already are smoothing towards?
// If so dont do anything.
if (nextColor[0] == red && nextColor[1] == green && nextColor[2] == blue)
{
return;
}
// Is the new color the same as we have right now?
// If so stop smoothing and keep the current color.
else if (currentColor[0] == red && currentColor[1] == green && currentColor[2] == blue)
{
smoothStep = SMOOTH_STEPS;
return;
}

prevColor[0] = currentColor[0];
prevColor[1] = currentColor[1];
prevColor[2] = currentColor[2];

nextColor[0] = red;
nextColor[1] = green;
nextColor[2] = blue;

smoothMillis = millis();
smoothStep = 0;

#if RC_SWITCH == 1
if (!remoteControlled)
{
remoteControlled = true;
}
#endif
}
}

// Display one step to the next color
void smoothColor()
{
smoothStep++;

byte red = prevColor[0] + (((nextColor[0] - prevColor[0]) * smoothStep) / SMOOTH_STEPS);
byte green = prevColor[1] + (((nextColor[1] - prevColor[1]) * smoothStep) / SMOOTH_STEPS);
byte blue = prevColor[2] + (((nextColor[2] - prevColor[2]) * smoothStep) / SMOOTH_STEPS);

setColor(red, green, blue);
}

Apres dans hyperion tu defini le nombre de lampes que tu as avec les ID.

Plus d'infos ici : https://hyperion-project.org/wiki/AtmoOrb-Device

fragment de config d'hyperion

Ce message a été masqué par son auteur. Cliquez pour l’afficher.
.....
"output" : "239.15.18.2", <-- Your Orb multicast group IP address, should match that of your Orb
"transitiontime" : 0, <-- not used / required but may allow for future delay configuration
"useOrbSmoothing" : true, <-- use Orbs own (external) smoothing algorithm when true
"skipSmoothingDiff" : 0, <-- minimal color (0-255) difference to override smoothing so that if current and previously received colors are higher than set dif we override smoothing (only used when useOrbSmoothing = true)
"port" : 49692, <-- Default multicast port, should match that of your Orb
"numLeds" : 24, <-- Number of leds per Orb, should match that of your Orb
"orbIds" : "1,2", <-- Comma separated list of all your Orbs, in example we only use a single id (1)
.....
"leds" :
[
{
"index" : 0,
"hscan" : { "minimum" : 0.0000, "maximum" : 0.5000 },
"vscan" : { "minimum" : 0.0000, "maximum" : 0.5000 }
},
{
"index" : 1,
"hscan" : { "minimum" : 0.5000, "maximum" : 1.0000 },
"vscan" : { "minimum" : 0.5000, "maximum" : 1.0000 }
}
],



Pour ma part je prefere le multizones. il utilise des arduinos mais j'utilise des nodemcu.

https://www.youtube.com/watch?v=VqgWH9E7EC0
https://www.youtube.com/watch?v=4r5LH0HgOiQ


Pour le mode usb ( adalight ) les infos ici :

https://github.com/sticilface/Adalight-ESP8266


et pour le sans fil la :

https://github.com/SciLor/ESP8266_Hyperion_LED-Controller

yous13

Le 11/01/2017 à 14h19 (Modifié le 11/01/2017 à 14h24)

#1795 Signaler
Meme si ça intéresse pas grand monde je le post quand même pour ceux qui serait interessés.

Pour ceux qui veulent utiliser un Nodemcu ou autre esp8266 en connection usb ( usb-uart) à la place d'un arduino , je viens de faire les tests et ça marche plutôt bien.( avec une bande de led ws2812b et une sk6812.)

Le baudrate est configuré à 2 000 000. ( // a mon arduino nano configurer a 500 000).

Le connexion DATA se fait sur le gpio2 ( D4 sur le nodemcu).

Voici le sketch ino ou il faut juste modifier le nombre de LED, ou éventuellement l’ordre des couleurs ( mais cela peut se faire directement dans hyperion).

NeoPixelBus<NeoGrbFeature, NeoEsp8266Uart800KbpsMethod> strip(pixelCount);

en par exemple

NeoPixelBus<NeoRgbFeature, NeoEsp8266Uart800KbpsMethod> strip(pixelCount);



Ce message a été masqué par son auteur. Cliquez pour l’afficher.


/*
* Adalight implementation for the ESP arduino environment.
* Adjust Serial speed, number of LEDs, and PIN out.
* Use with the NEOPIXELBUS libruary found here....https://github.com/Makuna/NeoPixelBus
* Inspiration for this came from
* https://github.com/adafruit/Adalight.git
*
* This sketch is designed to recieve LED colour information by serial.
* ORDER OF LEDS MUST BE GREEN - RED - BLUE . This can be changed in the hyperion set up.
*
*
*
* This code can be used however, anyone wants. Consider it BEERWARE!
*
*/




#include <NeoPixelBus.h>

#define pixelCount 24 // Modifier le nombre de LED
.
#define pixelPin 2 // Gpio2 , D4 sur Nodemcu

const int SerialSpeed = 2000000;

// for esp8266 omit the pin

NeoPixelBus<NeoGrbFeature, NeoEsp8266Uart800KbpsMethod> strip(pixelCount);


uint8_t* pixelsPOINT = (uint8_t*)strip.Pixels(); /// used for direct access to pixelbus buffer...



uint8_t prefix[] = {'A', 'd', 'a'}, hi, lo, chk, i;
uint16_t effectbuf_position = 0;
enum mode { MODE_INITIALISE = 0, MODE_HEADER, MODE_CHECKSUM, MODE_DATA, MODE_SHOW, MODE_FINISH};
mode state = MODE_INITIALISE;
int effect_timeout = 0;
uint8_t prefixcount = 0;
unsigned long ada_sent = 0;
unsigned long pixellatchtime = 0;
const unsigned long serialTimeout = 15000;
long update_strip_time = 0;

void Adalight_Flash() {
for (uint16_t i = 0; i < strip.PixelCount(); i++) {
strip.SetPixelColor(i,RgbColor(255,0,0));
}
strip.Show();
delay(200);
for (uint16_t i = 0; i < strip.PixelCount(); i++) {
strip.SetPixelColor(i,RgbColor(0,255,0));
}
strip.Show();
delay(200);
for (uint16_t i = 0; i < strip.PixelCount(); i++) {
strip.SetPixelColor(i,RgbColor(0,0,255));
}
strip.Show();

delay(200);
for (uint16_t i = 0; i < strip.PixelCount(); i++) {
strip.SetPixelColor(i,RgbColor(0,0,0));
}
strip.Show();
}



void Adalight () {

switch (state) {

case MODE_INITIALISE:
Serial.println("Begining of Adalight");
Adalight_Flash();
state = MODE_HEADER;

case MODE_HEADER:

effectbuf_position = 0; // reset the buffer position for DATA collection...

if(Serial.available()) { // if there is serial available... process it... could be 1 could be 100....

for (int i = 0; i < Serial.available(); i++) { // go through every character in serial buffer looking for prefix...

if (Serial.read() == prefix[prefixcount]) { // if character is found... then look for next...
prefixcount++;
} else prefixcount = 0; // otherwise reset.... ////

if (prefixcount == 3) {
effect_timeout = millis(); // generates START TIME.....
state = MODE_CHECKSUM; // Move on to next state
prefixcount = 0; // keeps track of prefixes found... might not be the best way to do this.
break;
} // end of if prefix == 3

} // end of for loop going through serial....
} else if (!Serial.available() && (ada_sent + 5000) < millis()) {
Serial.print("Ada\n"); // Send "Magic Word" string to host every 5 seconds...
ada_sent = millis();
}

break;

case MODE_CHECKSUM:

if (Serial.available() >= 3) {
hi = Serial.read();
lo = Serial.read();
chk = Serial.read();
if(chk == (hi ^ lo ^ 0x55)) {
state = MODE_DATA;
} else {
state = MODE_HEADER; // ELSE RESET.......
}
}

if ((effect_timeout + 1000) < millis()) state = MODE_HEADER; // RESET IF BUFFER NOT FILLED WITHIN 1 SEC.

break;

case MODE_DATA:

while (Serial.available() && effectbuf_position < 3 * strip.PixelCount()) {
pixelsPOINT[effectbuf_position++] = Serial.read();
}

if (effectbuf_position >= 3*pixelCount) { // goto show when buffer has recieved enough data...
state = MODE_SHOW;
break;
}

if ((effect_timeout + 1000) < millis()) state = MODE_HEADER; // RESUM HEADER SEARCH IF BUFFER NOT FILLED WITHIN 1 SEC.

break;

case MODE_SHOW:

strip.Dirty(); // MUST USE if you're using the direct buffer version...
pixellatchtime = millis();
state = MODE_HEADER;
break;

case MODE_FINISH:

// nothing in here...

break;
}

}



void setup()
{
// this resets all the neopixels to an off state
Serial.begin(SerialSpeed);

strip.Begin();
strip.Show();

}


void loop()
{


if (millis() - update_strip_time > 30) {
strip.Show();
update_strip_time = millis();
};


Adalight();

}

et la partie device d'hyperion :

Ce message a été masqué par son auteur. Cliquez pour l’afficher.


"device" :
{
"name" : "Esp8266_Serial_Conf",
"type" : "adalight",
"output" : "/dev/ttyUSB0",
"rate" : 2000000,
"colorOrder" : "grb"

yous13

Le 11/01/2017 à 20h49 (Modifié le 11/01/2017 à 22h44)

#1796 Signaler
kjo81

Le 12/01/2017 à 7h34

#1797 Signaler
Hello,

Question con, mais y'a une différence qualitative entre le lightpack et ses clones ?
Comme y'a une reduc de 30 dollars sur le site, la différence de prix est moindre et la question se pose...
SparaFR

Le 12/01/2017 à 16h04 (Modifié le 12/01/2017 à 17h22)

#1798 Signaler
Yop,

J'ai vu sur amazon des connecteurs pour les coins (https://www.amazon.fr/LEORX-Connecteurs-Plats-unités-forme/dp/B01CKR4O84/ref=sr_1_1?ie=UTF8&qid=1484233440&sr=8-1&keywords=connecteur+led) ca sera ok pour du ws2801 ? pas envie de souder merci
Pastek

Le 12/01/2017 à 17h10

#1799 Signaler
Yop,

J'ai vu sur amazon des connecteurs pour les coins (https://www.amazon.fr/LEORX-Connecteurs-Plats-unités-forme/dp/B01CKR4O84/ref=sr_1_1?ie=UTF8&qid=1484233440&sr=8-1&keywords=connecteur+led) ca sera ok pour du ws2801 ? pas envie de soudre merci
Soudre ? xD Souder ça sera mieux. :D
Faut regarder le nombre de connexions, sur l'image j'en vois 4. Il me semble que le WS2801 c'est 3 non ?
SparaFR

Le 12/01/2017 à 17h23

#1800 Signaler
Ouuuppsss :P

Ws2801 c'est 4 , +5v clock data gnd, je suppose qu'il y ai marqué r g b ne change rien c'est la connectique qui compte ?
1
...

Aller page :

42 43 44 45 46 47

Laisser une réponse

Des champs obligatoires n’ont pas été remplis, ou l’ont été incorrectement.