From e13c623adae97eac353b6a3dafb91a0d1c2d8702 Mon Sep 17 00:00:00 2001 From: Christian Zufferey Date: Fri, 30 Oct 2020 13:56:44 +0100 Subject: [PATCH] =?UTF-8?q?Commenc=C3=A9=20le=20projet=20d=C3=A9mo=20pour?= =?UTF-8?q?=20les=20Portes=20ouvertes=202020=20du=20Makerspace=20Lausanne?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../train_ver1/train effect/README.md | 21 +++ .../train effect/effect1/a_test_fill.lua | 30 ++++ .../train effect/effect1/a_test_train.lua | 29 ++++ .../train effect/effect1/az_init_led.lua | 81 +++++++++++ .../train effect/effect1/blink_led2.lua | 17 +++ .../train_ver1/train effect/effect1/boot.lua | 33 +++++ .../train_ver1/train effect/effect1/cat.lua | 17 +++ .../train_ver1/train effect/effect1/dir.lua | 15 ++ .../train effect/effect1/initz - copie.lua | 19 +++ .../train_ver1/train effect/effect1/initz.lua | 31 ++++ .../train effect/effect1/repair.lua | 16 +++ .../train effect/effect1/rm_files.lua | 12 ++ .../train effect/effect2/nicolas_train.lua | 132 ++++++++++++++++++ .../train effect/effect3/a_test_fill.lua | 30 ++++ .../train effect/effect3/a_train3.lua | 68 +++++++++ .../train effect/effect3/az_init_led.lua | 81 +++++++++++ .../train effect/effect3/blink_led2.lua | 17 +++ .../train_ver1/train effect/effect3/boot.lua | 33 +++++ .../train_ver1/train effect/effect3/cat.lua | 17 +++ .../train_ver1/train effect/effect3/dir.lua | 15 ++ .../train effect/effect3/initz - copie.lua | 19 +++ .../train_ver1/train effect/effect3/initz.lua | 31 ++++ .../train effect/effect3/repair.lua | 16 +++ .../train effect/effect3/rm_files.lua | 12 ++ LED_RGB_WS2812/guirlandes noël/README.md | 1 + LED_RGB_WS2812/train effect/README.md | 2 + 26 files changed, 795 insertions(+) create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/README.md create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/a_test_fill.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/a_test_train.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/az_init_led.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/blink_led2.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/boot.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/cat.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/dir.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/initz - copie.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/initz.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/repair.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/rm_files.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect2/nicolas_train.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/a_test_fill.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/a_train3.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/az_init_led.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/blink_led2.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/boot.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/cat.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/dir.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/initz - copie.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/initz.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/repair.lua create mode 100644 LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/rm_files.lua diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/README.md b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/README.md new file mode 100644 index 0000000..90dd235 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/README.md @@ -0,0 +1,21 @@ +# Train effects + +Différents tests de train effect + +## Mon premier que j'ai trouvé dans la docu NodeMCU sous la lib WS2812 +effect1 + +## Celui à Ponsfrilus +effect2 + +## Mon deuxième basé sur celui à Ponsfrilus +effect3 + +Fonctionne sur le build: +build created on 2018-11-05 09:45 + + +zf181201.1153 + + + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/a_test_fill.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/a_test_fill.lua new file mode 100644 index 0000000..b015d37 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/a_test_fill.lua @@ -0,0 +1,30 @@ +-- Scripts juste pour tester des effets à la mano +-- tout sur la couleur: https://www.w3schools.com/colors/default.asp +-- roue des couleurs: https://iro.js.org/?ref=oldsite + +print("\n a_tst_fill.lua zf181125.1632 \n") + +znbled=300 + +function RGB_clear() + ws2812.init() + buffer = ws2812.newBuffer(znbled, 3) + buffer:fill(0, 0, 0) + ws2812.write(buffer) +end + +function RGB_fill(nbled, Red, Green, Blue) + buffer = ws2812.newBuffer(nbled, 3) + buffer:fill(Green, Red, Blue) -- Green, Red , Blue + ws2812.write(buffer) +end + +RGB_clear() +RGB_clear() ; RGB_fill(100, 255, 0, 0) +RGB_clear() ; RGB_fill(100, 0, 255, 0) +RGB_clear() ; RGB_fill(100, 0, 0, 255) +RGB_clear() ; l=0.10 ; R=l*(255) ; G=l*(80*0.99) ; B=l*(0*0.99) ; RGB_fill(300, R, G, B) + + + + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/a_test_train.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/a_test_train.lua new file mode 100644 index 0000000..826cd62 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/a_test_train.lua @@ -0,0 +1,29 @@ +-- Scripts juste pour tester des effets à la mano +-- tout sur la couleur: https://www.w3schools.com/colors/default.asp +-- roue des couleurs: https://iro.js.org/?ref=oldsite + +print("\n a_tst_train.lua zf181201.1146 \n") + +znbled=36 + +function RGB_clear() + ws2812.init() + buffer = ws2812.newBuffer(znbled, 3) + buffer:fill(0, 0, 0) + ws2812.write(buffer) +end + +RGB_clear() + +j=1 +local i, buffer = 0, ws2812.newBuffer(znbled, 3); buffer:fill(0, 0, 0); tmr.create():alarm(20, 1, function() + i = i + j + buffer:fade(2) + buffer:set(i % buffer:size() + 1, 255, 255, 255) + ws2812.write(buffer) + if i>=buffer:size()-1 or i<=0 then + j=j*-1 + end +end) + + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/az_init_led.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/az_init_led.lua new file mode 100644 index 0000000..e9df15c --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/az_init_led.lua @@ -0,0 +1,81 @@ +-- Scripts juste pour tester des effets à la mano +-- tout sur la couleur: https://www.w3schools.com/colors/default.asp +-- roue des couleurs: https://iro.js.org/?ref=oldsite + +print("\n az_init_led.lua zf181125.1333 \n") + +znbled=300 + +function RGB_clear() + ws2812.init() + buffer = ws2812.newBuffer(znbled, 3) + buffer:fill(0, 0, 0) + ws2812.write(buffer) +end + +print("Initializing LED strip...") +RGB_clear() +print("done.") + + + +--[[ +znbled_tst=60 +zlumino=1 --luminosité 0 <> 1 +zR=255*zlumino +zG=255*zlumino +zB=255*zlumino +buffer = ws2812.newBuffer(znbled_tst, 3) +buffer:fill(zG, zR, zB) -- Green, Red , Blue +ws2812.write(buffer) + + + + + +print("toto") + +ws2812.init() +strip_buffer = ws2812.newBuffer(300, 3) +ws2812_effects.init(strip_buffer) +-- initially all leds off +ws2812_effects.set_speed(255) +ws2812_effects.set_brightness(0) +ws2812_effects.set_color(0,0,0) +ws2812_effects.start() +print("done.") +print() + +ws2812.init() + +local i, buffer = 0, ws2812.newBuffer(300, 3) +buffer:fill(0, 0, 0, 0) + +exit + + +ws2812.init() +j=1 +local i, buffer = 0, ws2812.newBuffer(300, 3); buffer:fill(0, 0, 0, 0); tmr.create():alarm(20, 1, function() + i = i + j + buffer:fade(2) + buffer:set(i % buffer:size() + 1, 255, 255, 255) + ws2812.write(buffer) + if i>=buffer:size()-1 or i<=0 then + j=j*-1 + end +end) + + + + +ws2812.write(string.char(255, 0, 0, 0, 255, 0, 0, 0, 255)) -- RGB positionnement naturel + +ws2812.write(string.char(0, 255, 0, 0, 0, 255, 255, 0, 0, 255, 0, 255, 255, 255, 0, 0, 255, 255)) -- GBR and CMY en GBR WS2813! + +ws2812.write(string.char(0, 255, 0, 0, 0, 255/3, 255, 0, 0, 255, 0, 255, 255, 255, 0, 0, 255, 255)) -- vert compensé GBR and CMY en GBR WS2813! + +ws2812.write(string.char(128, 255, 128, 200, 200, 255, 255, 200, 200, 255, 255, 255, 40, 40, 40, 5, 5, 5)) -- White RGB & White 100/50/10% + +ws2812.write(string.char(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)) -- LED OFF +]] diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/blink_led2.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/blink_led2.lua new file mode 100644 index 0000000..70fa251 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/blink_led2.lua @@ -0,0 +1,17 @@ +-- programme pour faire clignoter une LED version simplifiée + +print("\n blink_led2.lua zf181015.1138 \n") + +zLED=0 +gpio.mode(zLED, gpio.OUTPUT) +ztmr_LED = tmr.create() +value = true + +tmr.alarm(ztmr_LED, 100, tmr.ALARM_AUTO, function () + if value then + gpio.write(zLED, gpio.HIGH) + else + gpio.write(zLED, gpio.LOW) + end + value = not value +end) diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/boot.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/boot.lua new file mode 100644 index 0000000..a6fe229 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/boot.lua @@ -0,0 +1,33 @@ +-- Scripts à charger après le boot pour démarrer son appli + +print("\n boot.lua zf181125.1635 \n") + +--f= "wifi_ap_stop.lua" if file.exists(f) then dofile(f) end +--f= "wifi_cli_conf.lua" if file.exists(f) then dofile(f) end +--f= "wifi_cli_start.lua" if file.exists(f) then dofile(f) end +--f= "telnet_srv.lua" if file.exists(f) then dofile(f) end +--f= "web_ide2.lua" if file.exists(f) then dofile(f) end +--f= "dsleep.lua" if file.exists(f) then dofile(f) end + +f= "a_test_train.lua" if file.exists(f) then dofile(f) end +--f= "a_test_fill.lua" if file.exists(f) then dofile(f) end + + + + +--[[ +x_dsleep=7 y_dsleep=30 dsleep() + +i=1 +jobtimer1=tmr.create() +tmr.alarm(jobtimer1, 1*1000, tmr.ALARM_AUTO, function() + print(i) i=i+1 + if wifi.sta.getip() ~= nil then + tmr.stop(jobtimer1) + tmr.stop(ztmr_SLEEP) + x_dsleep=300 y_dsleep=30 dsleep() + print("c'est connecté...") + end +end) +]] + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/cat.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/cat.lua new file mode 100644 index 0000000..7c309b9 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/cat.lua @@ -0,0 +1,17 @@ +-- fonction cat() pour afficher le contenu d'un fichier dans la flash +print("\n cat.lua zf180826.1109 \n") + +function cat(zfile) + print("\n"..zfile.."\n-------------------------------") + + zfilei = file.open(zfile, "r") + i=1 + zline=file.readline() + repeat + print(i..": "..string.sub(zline,1,string.len(zline)-1)) + i=i+1 zline=file.readline() + until zline== nil + file.close(zfilei) + + print("-------------------------------") +end diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/dir.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/dir.lua new file mode 100644 index 0000000..8bf9414 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/dir.lua @@ -0,0 +1,15 @@ +-- fonction dir() pour afficher les fichiers dans la flash +print("\n dir.lua zf180826.1019 \n") + +function dir() + print("\n-------------------------------") + l=file.list() i=0 + for k,v in pairs(l) do + i=i+v + print(k..string.rep(" ",19-string.len(k)).." : "..v.." bytes") + end + print("-------------------------------") + print('\nUsed: '..i..' bytes\nusage: dofile("file.lua")\n') +end + +dir() diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/initz - copie.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/initz - copie.lua new file mode 100644 index 0000000..80d817d --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/initz - copie.lua @@ -0,0 +1,19 @@ +--Script de bootstrap, test au moment du boot qui a été la cause de boot. +-- Si la cause est un power on ou une connexion depuis l'IDE, alors +-- le script repair.lua pendant 30 secondes avant de continuer +--Source: https://nodemcu.readthedocs.io/en/master/en/modules/node/#nodebootreason + +print("\n init.lua zf181125.1340 \n") + +_, reset_reason = node.bootreason() +print("reset_reason:",reset_reason) +if reset_reason == 6 or reset_reason == 6 then + print("seconde chance...") + f= "repair.lua" if file.exists(f) then dofile(f) end + initalarme=tmr.create() + tmr.alarm(initalarme, 8*1000, tmr.ALARM_SINGLE, function() + f= "boot.lua" if file.exists(f) then dofile(f) end + end) +else + f= "boot.lua" if file.exists(f) then dofile(f) end +end diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/initz.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/initz.lua new file mode 100644 index 0000000..10066de --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/initz.lua @@ -0,0 +1,31 @@ +--Script de bootstrap, test au moment du boot qui a été la cause de boot. +-- Si la cause est un power on ou une connexion depuis l'IDE, alors +-- le script repair.lua pendant xx secondes avant de continuer +--Source: https://nodemcu.readthedocs.io/en/master/en/modules/node/#nodebootreason + +print("\n init.lua zf181125.1428 \n") + +function second_chance() + print("seconde chance...") + f= "repair.lua" if file.exists(f) then dofile(f) end + initalarme=tmr.create() + tmr.alarm(initalarme, 8*1000, tmr.ALARM_SINGLE, function() + f= "boot.lua" if file.exists(f) then dofile(f) end + end) +end + +_, reset_reason = node.bootreason() +print("reset_reason:",reset_reason) +if reset_reason == 0 then + print("power on") + second_chance() +elseif reset_reason == 4 then + print("node.restart") + f= "boot.lua" if file.exists(f) then dofile(f) end +elseif reset_reason == 6 then + print("reset") + second_chance() +else + print("autre raison") +end + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/repair.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/repair.lua new file mode 100644 index 0000000..626b5e5 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/repair.lua @@ -0,0 +1,16 @@ +-- Scripts de seconde chance pour réparer une boucle dans le restart + +print("\n repair.lua zf181119.2356 \n") + +--f= "wifi_ap_start.lua" if file.exists(f) then dofile(f) end +--f= "telnet_srv.lua" if file.exists(f) then dofile(f) end + +f= "az_init_led.lua" if file.exists(f) then dofile(f) end + + +--[[ +jobtimer1=tmr.create() +tmr.alarm(jobtimer1, 5*1000, tmr.ALARM_AUTO, function() + print("repair...") +end) +]] \ No newline at end of file diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/rm_files.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/rm_files.lua new file mode 100644 index 0000000..81241cb --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect1/rm_files.lua @@ -0,0 +1,12 @@ +-- pour effacer TOUS les fichiers qui se trouve dans la flash du NodeMCU + +print("\n rm_files.lua zf180907.1511 \n") + + +l=file.list() i=0 +for k,v in pairs(l) do + i=i+v + file.remove(k) +end +print("-------------------------------") +print("\nC'est tout effaced :-) \n") diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect2/nicolas_train.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect2/nicolas_train.lua new file mode 100644 index 0000000..0c5f325 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect2/nicolas_train.lua @@ -0,0 +1,132 @@ +--[[ + + This file is a test for a led strip WS2813 + Intelligent control LED integrated light source + + This use the module ws2812: + https://nodemcu.readthedocs.io/en/master/en/modules/ws2812/ + +]] + +-- define the led strip total length +stripLength=24 + + +-- Test 1 +-- This turn off the led strip for 1 second +ws2812.init() +myLedStrip = ws2812.newBuffer(stripLength, 3) -- 6 leds with 3 colors +myLedStrip:fill(0,0,0) +ws2812.write(myLedStrip) +tmr.delay(1 * 1000000) -- wait for 1 s + + +-- Test 2 +-- This is the minimal test: it will initialize and turn on the first +-- 3 leds to: +-- 1. 255, 0, 0 +-- 2. 0, 255, 0 +-- 3. 0, 0, 255 +-- Note: The leds strip are not necessarily in RGB, this test aim to +-- find out what the type of led you have. In my case, it's BRG. +ws2812.init() +ws2812.write(string.char(255, 0, 0, --[[ ]] 0, 255, 0, --[[ ]] 0, 0, 255)) +tmr.delay(1 * 1000000) -- wait for 1 s +-- Now you can see that the luminosity is very different according to the main color. +-- In fact, you need to correct the luminosity for the humain eye, something as +ws2812.write(string.char(180, 0, 0, --[[ ]] 0, 255, 0, --[[ ]] 0, 0, 60)) +tmr.delay(3 * 1000000) -- wait for 3 s + + +-- Test 3 +-- Traffic lights +ws2812.init() +ws2812.write(string.char(0, 255, 0, --[[]] 0, 0, 0, --[[]] 0, 0, 0)) -- RED +tmr.delay(2 * 1000000) -- wait for 2 s +ws2812.write(string.char(0, 0, 0, --[[]] 0, 255, 44, --[[]] 0, 0, 0)) -- ORANGE B0 R255 G88 +tmr.delay(1 * 1000000) -- wait for 1 s +ws2812.write(string.char(0, 0, 0, --[[]] 0, 0, 0, --[[]] 0, 0, 255)) -- GREEN +tmr.delay(3 * 1000000) -- wait for 3 s + + +-- Test 4 +-- This show the luminosity gradient +-- The first arg: led position, then: color +myLedStrip = ws2812.newBuffer(stripLength, 3) -- 6 leds with 3 colors +myLedStrip:fill(0,0,0) +ws2812.write(myLedStrip) +-- RED +myLedStrip:set( 1, 0, 10, 0) +myLedStrip:set( 2, 0, 20, 0) +myLedStrip:set( 3, 0, 40, 0) +myLedStrip:set( 4, 0, 80, 0) +myLedStrip:set( 5, 0, 160, 0) +myLedStrip:set( 6, 0, 255, 0) +-- GREEN +myLedStrip:set( 7, 0, 0, 10) +myLedStrip:set( 8, 0, 0, 20) +myLedStrip:set( 9, 0, 0, 40) +myLedStrip:set(10, 0, 0, 80) +myLedStrip:set(11, 0, 0, 160) +myLedStrip:set(12, 0, 0, 255) +-- BLUE +myLedStrip:set(13, 10, 0, 0) +myLedStrip:set(14, 20, 0, 0) +myLedStrip:set(15, 40, 0, 0) +myLedStrip:set(16, 80, 0, 0) +myLedStrip:set(17, 160, 0, 0) +myLedStrip:set(18, 255, 0, 0) + +ws2812.write(myLedStrip) +tmr.delay(3 * 1000000) -- wait for 3 s + + +-- Test 5 +-- k2000 fx (Brace yourself, David Hasselhoff!) +ws2812.init() +fadeLevel=3 +timerSpeed=20 -- timer speed in milliseconds +mode = ws2812.SHIFT_CIRCULAR -- ws2812.SHIFT_LOGICAL / ws2812.SHIFT_CIRCULAR + +-- Buffer Train 1 +myLedStrip1 = ws2812.newBuffer(stripLength, 3) -- 6 leds with 3 colors +myLedStrip1:fill(0,0,0) +myLedStrip1:set(1, 100,100,100) +myLedStrip1:fade(fadeLevel) +myLedStrip1:set(2, 100,100,100) +myLedStrip1:fade(fadeLevel) +myLedStrip1:set(3, 100,100,100) +myLedStrip1:fade(fadeLevel) +myLedStrip1:set(4, 100,100,100) +-- debug: ws2812.write(myLedStrip1) + +-- Buffer Train 2 +myLedStrip2 = ws2812.newBuffer(stripLength, 3) -- 6 leds with 3 colors +myLedStrip2:fill(0,0,0) +myLedStrip2:set(stripLength, 0,0,120) +myLedStrip2:fade(fadeLevel) +myLedStrip2:set(stripLength-1, 0,0,120) +myLedStrip2:fade(fadeLevel) +myLedStrip2:set(stripLength-2, 0,0,120) +myLedStrip2:fade(fadeLevel) +myLedStrip2:set(stripLength-3, 0,0,120) +myLedStrip2:fade(fadeLevel) +-- debug: ws2812.write(myLedStrip2) + +-- Buffer Train Total +myLedStrip = ws2812.newBuffer(stripLength, 3) -- 6 leds with 3 colors +myLedStrip:mix(255, myLedStrip1, 255, myLedStrip2) +-- debug: ws2812.write(myLedStrip) + +tmr.create():alarm(timerSpeed, 1, function() + + myLedStrip1:shift(1, mode) -- direction → + myLedStrip2:shift(-1, mode) -- direction ← + + myLedStrip:mix(255, myLedStrip1, 255, myLedStrip2) -- mix both train + ws2812.write(myLedStrip) + +end) + + +-- end of file \ No newline at end of file diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/a_test_fill.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/a_test_fill.lua new file mode 100644 index 0000000..b015d37 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/a_test_fill.lua @@ -0,0 +1,30 @@ +-- Scripts juste pour tester des effets à la mano +-- tout sur la couleur: https://www.w3schools.com/colors/default.asp +-- roue des couleurs: https://iro.js.org/?ref=oldsite + +print("\n a_tst_fill.lua zf181125.1632 \n") + +znbled=300 + +function RGB_clear() + ws2812.init() + buffer = ws2812.newBuffer(znbled, 3) + buffer:fill(0, 0, 0) + ws2812.write(buffer) +end + +function RGB_fill(nbled, Red, Green, Blue) + buffer = ws2812.newBuffer(nbled, 3) + buffer:fill(Green, Red, Blue) -- Green, Red , Blue + ws2812.write(buffer) +end + +RGB_clear() +RGB_clear() ; RGB_fill(100, 255, 0, 0) +RGB_clear() ; RGB_fill(100, 0, 255, 0) +RGB_clear() ; RGB_fill(100, 0, 0, 255) +RGB_clear() ; l=0.10 ; R=l*(255) ; G=l*(80*0.99) ; B=l*(0*0.99) ; RGB_fill(300, R, G, B) + + + + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/a_train3.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/a_train3.lua new file mode 100644 index 0000000..7015d13 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/a_train3.lua @@ -0,0 +1,68 @@ +-- Scripts juste pour tester l'effet train +-- tout sur la couleur: https://www.w3schools.com/colors/default.asp +-- roue des couleurs: https://iro.js.org/?ref=oldsite + +print("\n a_train3.lua zf181205.1903 \n") + +nbleds=36 +fade1=0.05 ; fade2=0.2 ; fade3=0.4 ; fade4=1 +R1=255 ; G1=0 ; B1=0 +R2=255 ; G2=0 ; B2=0 +train_speed=50 +ws2812.init() +myLedStrip = ws2812.newBuffer(nbleds, 3) +myLedStrip1 = ws2812.newBuffer(nbleds, 3) +myLedStrip2 = ws2812.newBuffer(nbleds, 3) + +function RGB_clear() + myLedStrip:fill(0, 0, 0) ; ws2812.write(myLedStrip) +end + +function train1_fill() + myLedStrip1:fill(0,0,0) + myLedStrip1:set(1, G1*fade1, R1*fade1, B1*fade1) + myLedStrip1:set(2, G1*fade2, R1*fade2, B1*fade2) + myLedStrip1:set(3, G1*fade3, R1*fade3, B1*fade3) + myLedStrip1:set(4, G1*fade4, R1*fade4, B1*fade4) +end + +function train2_fill() + myLedStrip2:fill(0,0,0) + myLedStrip2:set(nbleds, G2*fade1, R2*fade1, B2*fade1) + myLedStrip2:set(nbleds-1, G2*fade2, R2*fade2, B2*fade2) + myLedStrip2:set(nbleds-2, G2*fade3, R2*fade3, B2*fade3) + myLedStrip2:set(nbleds-3, G2*fade4, R2*fade4, B2*fade4) +end + +function train_mix() + myLedStrip:mix(255, myLedStrip1, 255, myLedStrip2) +end + +function train_shift() + myLedStrip1:shift(1, ws2812.SHIFT_CIRCULAR) + myLedStrip2:shift(-1, ws2812.SHIFT_CIRCULAR) +end + +function train_write() + ws2812.write(myLedStrip) +end + +function train_start() + train3timer1=tmr.create() + tmr.alarm(train3timer1, train_speed, tmr.ALARM_AUTO, function() + train_shift() + train_mix() + train_write() + end) +end + +function train_stop() + tmr.unregister(train3timer1) + RGB_clear() +end + +RGB_clear() +train1_fill() +train2_fill() +train_start() + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/az_init_led.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/az_init_led.lua new file mode 100644 index 0000000..e9df15c --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/az_init_led.lua @@ -0,0 +1,81 @@ +-- Scripts juste pour tester des effets à la mano +-- tout sur la couleur: https://www.w3schools.com/colors/default.asp +-- roue des couleurs: https://iro.js.org/?ref=oldsite + +print("\n az_init_led.lua zf181125.1333 \n") + +znbled=300 + +function RGB_clear() + ws2812.init() + buffer = ws2812.newBuffer(znbled, 3) + buffer:fill(0, 0, 0) + ws2812.write(buffer) +end + +print("Initializing LED strip...") +RGB_clear() +print("done.") + + + +--[[ +znbled_tst=60 +zlumino=1 --luminosité 0 <> 1 +zR=255*zlumino +zG=255*zlumino +zB=255*zlumino +buffer = ws2812.newBuffer(znbled_tst, 3) +buffer:fill(zG, zR, zB) -- Green, Red , Blue +ws2812.write(buffer) + + + + + +print("toto") + +ws2812.init() +strip_buffer = ws2812.newBuffer(300, 3) +ws2812_effects.init(strip_buffer) +-- initially all leds off +ws2812_effects.set_speed(255) +ws2812_effects.set_brightness(0) +ws2812_effects.set_color(0,0,0) +ws2812_effects.start() +print("done.") +print() + +ws2812.init() + +local i, buffer = 0, ws2812.newBuffer(300, 3) +buffer:fill(0, 0, 0, 0) + +exit + + +ws2812.init() +j=1 +local i, buffer = 0, ws2812.newBuffer(300, 3); buffer:fill(0, 0, 0, 0); tmr.create():alarm(20, 1, function() + i = i + j + buffer:fade(2) + buffer:set(i % buffer:size() + 1, 255, 255, 255) + ws2812.write(buffer) + if i>=buffer:size()-1 or i<=0 then + j=j*-1 + end +end) + + + + +ws2812.write(string.char(255, 0, 0, 0, 255, 0, 0, 0, 255)) -- RGB positionnement naturel + +ws2812.write(string.char(0, 255, 0, 0, 0, 255, 255, 0, 0, 255, 0, 255, 255, 255, 0, 0, 255, 255)) -- GBR and CMY en GBR WS2813! + +ws2812.write(string.char(0, 255, 0, 0, 0, 255/3, 255, 0, 0, 255, 0, 255, 255, 255, 0, 0, 255, 255)) -- vert compensé GBR and CMY en GBR WS2813! + +ws2812.write(string.char(128, 255, 128, 200, 200, 255, 255, 200, 200, 255, 255, 255, 40, 40, 40, 5, 5, 5)) -- White RGB & White 100/50/10% + +ws2812.write(string.char(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)) -- LED OFF +]] diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/blink_led2.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/blink_led2.lua new file mode 100644 index 0000000..70fa251 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/blink_led2.lua @@ -0,0 +1,17 @@ +-- programme pour faire clignoter une LED version simplifiée + +print("\n blink_led2.lua zf181015.1138 \n") + +zLED=0 +gpio.mode(zLED, gpio.OUTPUT) +ztmr_LED = tmr.create() +value = true + +tmr.alarm(ztmr_LED, 100, tmr.ALARM_AUTO, function () + if value then + gpio.write(zLED, gpio.HIGH) + else + gpio.write(zLED, gpio.LOW) + end + value = not value +end) diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/boot.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/boot.lua new file mode 100644 index 0000000..a6fe229 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/boot.lua @@ -0,0 +1,33 @@ +-- Scripts à charger après le boot pour démarrer son appli + +print("\n boot.lua zf181125.1635 \n") + +--f= "wifi_ap_stop.lua" if file.exists(f) then dofile(f) end +--f= "wifi_cli_conf.lua" if file.exists(f) then dofile(f) end +--f= "wifi_cli_start.lua" if file.exists(f) then dofile(f) end +--f= "telnet_srv.lua" if file.exists(f) then dofile(f) end +--f= "web_ide2.lua" if file.exists(f) then dofile(f) end +--f= "dsleep.lua" if file.exists(f) then dofile(f) end + +f= "a_test_train.lua" if file.exists(f) then dofile(f) end +--f= "a_test_fill.lua" if file.exists(f) then dofile(f) end + + + + +--[[ +x_dsleep=7 y_dsleep=30 dsleep() + +i=1 +jobtimer1=tmr.create() +tmr.alarm(jobtimer1, 1*1000, tmr.ALARM_AUTO, function() + print(i) i=i+1 + if wifi.sta.getip() ~= nil then + tmr.stop(jobtimer1) + tmr.stop(ztmr_SLEEP) + x_dsleep=300 y_dsleep=30 dsleep() + print("c'est connecté...") + end +end) +]] + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/cat.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/cat.lua new file mode 100644 index 0000000..7c309b9 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/cat.lua @@ -0,0 +1,17 @@ +-- fonction cat() pour afficher le contenu d'un fichier dans la flash +print("\n cat.lua zf180826.1109 \n") + +function cat(zfile) + print("\n"..zfile.."\n-------------------------------") + + zfilei = file.open(zfile, "r") + i=1 + zline=file.readline() + repeat + print(i..": "..string.sub(zline,1,string.len(zline)-1)) + i=i+1 zline=file.readline() + until zline== nil + file.close(zfilei) + + print("-------------------------------") +end diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/dir.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/dir.lua new file mode 100644 index 0000000..8bf9414 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/dir.lua @@ -0,0 +1,15 @@ +-- fonction dir() pour afficher les fichiers dans la flash +print("\n dir.lua zf180826.1019 \n") + +function dir() + print("\n-------------------------------") + l=file.list() i=0 + for k,v in pairs(l) do + i=i+v + print(k..string.rep(" ",19-string.len(k)).." : "..v.." bytes") + end + print("-------------------------------") + print('\nUsed: '..i..' bytes\nusage: dofile("file.lua")\n') +end + +dir() diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/initz - copie.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/initz - copie.lua new file mode 100644 index 0000000..80d817d --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/initz - copie.lua @@ -0,0 +1,19 @@ +--Script de bootstrap, test au moment du boot qui a été la cause de boot. +-- Si la cause est un power on ou une connexion depuis l'IDE, alors +-- le script repair.lua pendant 30 secondes avant de continuer +--Source: https://nodemcu.readthedocs.io/en/master/en/modules/node/#nodebootreason + +print("\n init.lua zf181125.1340 \n") + +_, reset_reason = node.bootreason() +print("reset_reason:",reset_reason) +if reset_reason == 6 or reset_reason == 6 then + print("seconde chance...") + f= "repair.lua" if file.exists(f) then dofile(f) end + initalarme=tmr.create() + tmr.alarm(initalarme, 8*1000, tmr.ALARM_SINGLE, function() + f= "boot.lua" if file.exists(f) then dofile(f) end + end) +else + f= "boot.lua" if file.exists(f) then dofile(f) end +end diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/initz.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/initz.lua new file mode 100644 index 0000000..10066de --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/initz.lua @@ -0,0 +1,31 @@ +--Script de bootstrap, test au moment du boot qui a été la cause de boot. +-- Si la cause est un power on ou une connexion depuis l'IDE, alors +-- le script repair.lua pendant xx secondes avant de continuer +--Source: https://nodemcu.readthedocs.io/en/master/en/modules/node/#nodebootreason + +print("\n init.lua zf181125.1428 \n") + +function second_chance() + print("seconde chance...") + f= "repair.lua" if file.exists(f) then dofile(f) end + initalarme=tmr.create() + tmr.alarm(initalarme, 8*1000, tmr.ALARM_SINGLE, function() + f= "boot.lua" if file.exists(f) then dofile(f) end + end) +end + +_, reset_reason = node.bootreason() +print("reset_reason:",reset_reason) +if reset_reason == 0 then + print("power on") + second_chance() +elseif reset_reason == 4 then + print("node.restart") + f= "boot.lua" if file.exists(f) then dofile(f) end +elseif reset_reason == 6 then + print("reset") + second_chance() +else + print("autre raison") +end + diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/repair.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/repair.lua new file mode 100644 index 0000000..626b5e5 --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/repair.lua @@ -0,0 +1,16 @@ +-- Scripts de seconde chance pour réparer une boucle dans le restart + +print("\n repair.lua zf181119.2356 \n") + +--f= "wifi_ap_start.lua" if file.exists(f) then dofile(f) end +--f= "telnet_srv.lua" if file.exists(f) then dofile(f) end + +f= "az_init_led.lua" if file.exists(f) then dofile(f) end + + +--[[ +jobtimer1=tmr.create() +tmr.alarm(jobtimer1, 5*1000, tmr.ALARM_AUTO, function() + print("repair...") +end) +]] \ No newline at end of file diff --git a/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/rm_files.lua b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/rm_files.lua new file mode 100644 index 0000000..81241cb --- /dev/null +++ b/LED_RGB_WS2812/PO_MsL_2020/train_ver1/train effect/effect3/rm_files.lua @@ -0,0 +1,12 @@ +-- pour effacer TOUS les fichiers qui se trouve dans la flash du NodeMCU + +print("\n rm_files.lua zf180907.1511 \n") + + +l=file.list() i=0 +for k,v in pairs(l) do + i=i+v + file.remove(k) +end +print("-------------------------------") +print("\nC'est tout effaced :-) \n") diff --git a/LED_RGB_WS2812/guirlandes noël/README.md b/LED_RGB_WS2812/guirlandes noël/README.md index 97a6f50..30fcfdc 100644 --- a/LED_RGB_WS2812/guirlandes noël/README.md +++ b/LED_RGB_WS2812/guirlandes noël/README.md @@ -7,6 +7,7 @@ Problème, j'ai 5 mètres de ruban avec 300 LED RGB et quand je les allume tous Il faut donc jouer sur la puissance des LED et l'écartement, c'est à dire allumer que une sur deux ou trois. attention, fonctionne avec le firmware du 5 novembre 2018 ! +build created on 2018-11-05 09:45 zf181201.1153 zf201019.1838 diff --git a/LED_RGB_WS2812/train effect/README.md b/LED_RGB_WS2812/train effect/README.md index 09befb2..90dd235 100644 --- a/LED_RGB_WS2812/train effect/README.md +++ b/LED_RGB_WS2812/train effect/README.md @@ -11,6 +11,8 @@ effect2 ## Mon deuxième basé sur celui à Ponsfrilus effect3 +Fonctionne sur le build: +build created on 2018-11-05 09:45 zf181201.1153