commit
This commit is contained in:
parent
068d3a6f70
commit
e92123ab22
9 changed files with 328 additions and 174 deletions
|
@ -1,7 +1,6 @@
|
||||||
-- charge le fichier principal
|
-- charge le fichier principal
|
||||||
|
dofile('out.lua')
|
||||||
dofile("main.lua")
|
dofile("main.lua")
|
||||||
dofile("neopixel.lua")
|
|
||||||
dofile("encoder.lua")
|
|
||||||
|
|
||||||
-- affiche la température du CPU
|
-- affiche la température du CPU
|
||||||
printTemp()
|
printTemp()
|
||||||
|
|
27
buzz.lua
Normal file
27
buzz.lua
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
-- écrit le 23/10/2024 par Lukian Leizour
|
||||||
|
-- ce programme doit tourner sur un ESP32 sous LUARTOS
|
||||||
|
|
||||||
|
-- fonction permettant d'allumer un buzzer pendant un temps donné
|
||||||
|
function buzz(pin, delay) -- pin : la patte sur laquelle le buzzer est connecté; delay : le temps pendant lequel le buzzer reste allumé
|
||||||
|
pinon(pin) -- on allume le buzzer
|
||||||
|
tmr.delayms(delay) -- on attend pendand le temps désiré
|
||||||
|
pinoff(pin) -- on étteint le buzzer une fois la durée atteinte
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction permettant de faire "clignoter" un buzzer sur un pin donné pour une durée donnée et un nombre d'itérations donné
|
||||||
|
function blink_buzz(pin, n, delay) -- pin : la patte du buzzer; n : le nombre d'itérations; delay : le délai en ms
|
||||||
|
for i=1,n do
|
||||||
|
buzz(pin, delay) -- on allume le buzzer pendant la durée désirée
|
||||||
|
tmr.delayms(delay) -- on attend avant de passer à la suite
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction qui envoie un signal SOS sonore sur un buzzer branché sur la patte D18 de l'ESP32
|
||||||
|
function sos_buzz(n) -- n : nombre de fois qu'on fait le signal SOS
|
||||||
|
for i=1,n do
|
||||||
|
pinblink_buzz(pio.GPIO18, 3, 400) -- on clignotte 3 fois longuement
|
||||||
|
pinblink_buzz(pio.GPIO18, 3, 200) -- on clignotte 3 fois courtement
|
||||||
|
pinblink_buzz(pio.GPIO18, 3, 400) -- on clignotte 3 fois longuement
|
||||||
|
tmr.delayms(400) -- on fait une longue pause de 400ms
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,4 +1,4 @@
|
||||||
-- écrit par Lukian Leizour le 22/10/2024
|
-- écrit par Lukian Leizour le 22/10/2024x
|
||||||
|
|
||||||
function print_temp()
|
function print_temp()
|
||||||
s = sensor.attach("DHT22", pio.GPIO18)
|
s = sensor.attach("DHT22", pio.GPIO18)
|
||||||
|
|
135
leds.lua
Normal file
135
leds.lua
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
-- écrit le 23/10/2024 par Lukian Leizour
|
||||||
|
-- ce programme doit tourner sur un ESP32 sous LUARTOS
|
||||||
|
|
||||||
|
-- fonction permettant d'allumer la led bleue du du circuit de l'ESP32
|
||||||
|
function ledon()
|
||||||
|
pinon(pio.GPIO2)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction permettant d'étteindre la led bleue du du circuit de l'ESP32
|
||||||
|
function ledoff()
|
||||||
|
pinoff(pio.GPIO2)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction permettant de faire clignoter la led bleue du circuit de l'ESP32
|
||||||
|
function blink(n) -- pin : la patte de sortie; n : int, nombre d'itérations
|
||||||
|
pinblink(pio.GPIO2, n, 200) -- appel de la fonciton blink en lui donnant la bonne patte en paramètre ainsi que le temps d'éclairage
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction permettant de faire clignoter la led sur la pin 18 4 fois brièvement
|
||||||
|
function blink_pwm1()
|
||||||
|
device = pwm.attach(pio.GPIO18, 1, 0.2) -- 1Hz et 20% de signal "haut"
|
||||||
|
device:start() -- départ
|
||||||
|
tmr.delayms(4000) -- on attend que la led ait finit de clignoter
|
||||||
|
device:stop() -- on arrête le signal
|
||||||
|
device:detach() -- on se détache de la pin
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction permettant de faire clignoter la led sur la pin 18 4 fois longuement
|
||||||
|
function blink_pwm2()
|
||||||
|
device = pwm.attach(pio.GPIO18, 1, 0.8) -- 1Hz et 80% de signal "haut"
|
||||||
|
device:start() -- départ
|
||||||
|
tmr.delayms(4000) -- on attend que la led ait finit de clignoter
|
||||||
|
device:stop() -- on arrête le signal
|
||||||
|
device:detach() -- on se détache de la pin
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction permettant d'allumer et étteindre progressivement une led sur la pin 18
|
||||||
|
function smooth()
|
||||||
|
device = pwm.attach(pio.GPIO18, 200, 0)
|
||||||
|
device:start()
|
||||||
|
i = 0
|
||||||
|
while i <= 1 do
|
||||||
|
device:setduty(i)
|
||||||
|
tmr.delayms(200)
|
||||||
|
i = i + 0.05
|
||||||
|
end
|
||||||
|
i = 1.
|
||||||
|
while i >= 0 do
|
||||||
|
device:setduty(i)
|
||||||
|
tmr.delayms(200)
|
||||||
|
i = i - 0.05
|
||||||
|
end
|
||||||
|
device:stop()
|
||||||
|
end
|
||||||
|
|
||||||
|
function rgb(r, g, b)
|
||||||
|
red = pwm.attach(pio.GPIO21, 2000, r / 256); red:start()
|
||||||
|
green = pwm.attach(pio.GPIO19, 2000, g / 256); green:start()
|
||||||
|
blue = pwm.attach(pio.GPIO18, 2000, b / 256); blue:start()
|
||||||
|
|
||||||
|
tmr.delayms(5000)
|
||||||
|
|
||||||
|
red:stop(); red:detach()
|
||||||
|
green:stop(); green:detach()
|
||||||
|
blue:stop(); blue:detach()
|
||||||
|
end
|
||||||
|
|
||||||
|
function allrgb()
|
||||||
|
red = pwm.attach(pio.GPIO21, 2000, 1.); red:start()
|
||||||
|
green = pwm.attach(pio.GPIO19, 2000, 0); green:start()
|
||||||
|
blue = pwm.attach(pio.GPIO18, 2000, 0); blue:start()
|
||||||
|
|
||||||
|
for i=0,255,5 do green:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
for i=255,0,-5 do red:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
for i=0,255,5 do blue:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
for i=255,0,-5 do green:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
for i=0,255,5 do red:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
|
||||||
|
red:stop(); red:detach()
|
||||||
|
green:stop(); green:detach()
|
||||||
|
blue:stop(); blue:detach()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction permettant d'afficher successivement les clouleurs Rouge, Vert et Bleu en connectant la led RGB sur les pins D18, D19 et D21
|
||||||
|
function triColors(n) -- n : nombre de fois qu'on réalise le paterne
|
||||||
|
for i=1,n do
|
||||||
|
pinblink(pio.GPIO21, 1, 200) -- appel de la fonciton blink pour faire clignoter une fois la led en rouge pendant 200ms
|
||||||
|
pinblink(pio.GPIO19, 1, 200) -- appel de la fonciton blink pour faire clignoter une fois la led en vert pendant 200ms
|
||||||
|
pinblink(pio.GPIO18, 1, 200) -- appel de la fonciton blink pour faire clignoter une fois la led en bleu pendant 200ms
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- fonction qui envoie un signal SOS lumineux sur la led bleu du circuit de l'ESP32
|
||||||
|
function sos_led(n) -- n : nombre de fois qu'on affiche le signal SOS
|
||||||
|
for i=1,n do
|
||||||
|
pinblink(pio.GPIO2, 3, 400) -- on clignotte 3 fois longuement
|
||||||
|
pinblink(pio.GPIO2, 3, 200) -- on clignotte 3 fois courtement
|
||||||
|
pinblink(pio.GPIO2, 3, 400) -- on clignotte 3 fois longuement
|
||||||
|
tmr.delayms(400) -- on fait une longue pause de 400ms
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function rgb(r, g, b)
|
||||||
|
-- on attache et démarre les pins
|
||||||
|
red = pwm.attach(pio.GPIO21, 2000, r / 256); red:start()
|
||||||
|
green = pwm.attach(pio.GPIO19, 2000, g / 256); green:start()
|
||||||
|
blue = pwm.attach(pio.GPIO18, 2000, b / 256); blue:start()
|
||||||
|
|
||||||
|
-- on attend 5 secondes
|
||||||
|
tmr.delayms(5000)
|
||||||
|
|
||||||
|
-- on stoppe et détache les pins
|
||||||
|
red:stop(); red:detach()
|
||||||
|
green:stop(); green:detach()
|
||||||
|
blue:stop(); blue:detach()
|
||||||
|
end
|
||||||
|
|
||||||
|
function allrgb()
|
||||||
|
-- on attache et démarre les pins
|
||||||
|
red = pwm.attach(pio.GPIO21, 2000, 1.); red:start()
|
||||||
|
green = pwm.attach(pio.GPIO19, 2000, 0); green:start()
|
||||||
|
blue = pwm.attach(pio.GPIO18, 2000, 0); blue:start()
|
||||||
|
|
||||||
|
-- on boucle pour afficher toutes les couleurs RGB
|
||||||
|
for i=0,255,5 do green:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
for i=255,0,-5 do red:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
for i=0,255,5 do blue:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
for i=255,0,-5 do green:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
for i=0,255,5 do red:setduty(i / 256); tmr.delayms(50) end
|
||||||
|
|
||||||
|
-- on stoppe et détache les pins
|
||||||
|
red:stop(); red:detach()
|
||||||
|
green:stop(); green:detach()
|
||||||
|
blue:stop(); blue:detach()
|
||||||
|
end
|
28
main.lua
28
main.lua
|
@ -1,10 +1,28 @@
|
||||||
-- charge les fonctions du fichier out.lua
|
-- programme principal qui charge les fonctions des autres programmes
|
||||||
dofile("out.lua")
|
|
||||||
dofile("neopixel.lua")
|
-- fonction de roue RGB
|
||||||
dofile("encoder.lua")
|
function wheelRGB(pos) -- pos 0 -> 255 couleur
|
||||||
dofile("dht22.lua")
|
pos = 255 - pos
|
||||||
|
if (pos < 85) then
|
||||||
|
return 255 - pos * 3, 0, pos * 3
|
||||||
|
elseif (pos < 170) then
|
||||||
|
pos = pos - 85
|
||||||
|
return 0, pos * 3, 255 - pos * 3
|
||||||
|
else
|
||||||
|
pos = pos - 170
|
||||||
|
return pos * 3, 255 - pos * 3, 0
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- fonction permettant d'afficher la température du CPU
|
-- fonction permettant d'afficher la température du CPU
|
||||||
function printTemp()
|
function printTemp()
|
||||||
print("Température du CPU :", cpu.temperature())
|
print("Température du CPU :", cpu.temperature())
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- charge tout nos fichiers lua
|
||||||
|
dofile("leds.lua")
|
||||||
|
dofile("buzz.lua")
|
||||||
|
dofile("neopixel.lua")
|
||||||
|
dofile("encoder.lua")
|
||||||
|
dofile("dht22.lua")
|
||||||
|
dofile("screen.lua")
|
||||||
|
|
13
neopixel.lua
13
neopixel.lua
|
@ -25,19 +25,6 @@ function feux()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function wheelRGB(pos)
|
|
||||||
pos = 255 - pos
|
|
||||||
if (pos < 85) then
|
|
||||||
return 255 - pos * 3, 0, pos * 3
|
|
||||||
elseif (pos < 170) then
|
|
||||||
pos = pos - 85
|
|
||||||
return 0, pos * 3, 255 - pos * 3
|
|
||||||
else
|
|
||||||
pos = pos - 170
|
|
||||||
return pos * 3, 255 - pos * 3, 0
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function arc()
|
function arc()
|
||||||
neo = neopixel.attach(neopixel.WS2812B, pio.GPIO18, 8)
|
neo = neopixel.attach(neopixel.WS2812B, pio.GPIO18, 8)
|
||||||
for i=0,7 do
|
for i=0,7 do
|
||||||
|
|
116
out.lua
116
out.lua
|
@ -14,7 +14,7 @@ function pinoff (pin) -- pin : la patte sur laquelle la led est branchée
|
||||||
end
|
end
|
||||||
|
|
||||||
-- fonction permettant de faire clignoter la led de l'ESP32
|
-- fonction permettant de faire clignoter la led de l'ESP32
|
||||||
function blink (pin, n, delay) -- pin : la patte de sortie; n : int, nombre d'itérations; delay : le temps en ms que la led reste allumé et étteinte
|
function pinblink (pin, n, delay) -- pin : la patte de sortie; n : int, nombre d'itérations; delay : le temps en ms que la led reste allumé et étteinte
|
||||||
for i=1,n do
|
for i=1,n do
|
||||||
pinon(pin) -- appel de la fonction ledon
|
pinon(pin) -- appel de la fonction ledon
|
||||||
tmr.delayms(delay) -- le programme attend en fonction du délai donné
|
tmr.delayms(delay) -- le programme attend en fonction du délai donné
|
||||||
|
@ -22,117 +22,3 @@ function blink (pin, n, delay) -- pin : la patte de sortie; n : int, nombre d'it
|
||||||
tmr.delayms(delay) -- le programme attend en fonction du délai donné
|
tmr.delayms(delay) -- le programme attend en fonction du délai donné
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- fonction permettant de faire clignoter la led sur la pin 18 4 fois brièvement
|
|
||||||
function blink_pwm1()
|
|
||||||
device = pwm.attach(pio.GPIO18, 1, 0.2) -- 1Hz et 20% de signal "haut"
|
|
||||||
device:start() -- départ
|
|
||||||
tmr.delayms(4000) -- on attend que la led ait finit de clignoter
|
|
||||||
device:stop() -- on arrête le signal
|
|
||||||
device:detach() -- on se détache de la pin
|
|
||||||
end
|
|
||||||
|
|
||||||
-- fonction permettant de faire clignoter la led sur la pin 18 4 fois longuement
|
|
||||||
function blink_pwm2()
|
|
||||||
device = pwm.attach(pio.GPIO18, 1, 0.8) -- 1Hz et 80% de signal "haut"
|
|
||||||
device:start() -- départ
|
|
||||||
tmr.delayms(4000) -- on attend que la led ait finit de clignoter
|
|
||||||
device:stop() -- on arrête le signal
|
|
||||||
device:detach() -- on se détache de la pin
|
|
||||||
end
|
|
||||||
|
|
||||||
-- fonction permettant d'allumer et étteindre progressivement une led sur la pin 18
|
|
||||||
function smooth()
|
|
||||||
device = pwm.attach(pio.GPIO18, 200, 0)
|
|
||||||
device:start()
|
|
||||||
i = 0
|
|
||||||
while i <= 1 do
|
|
||||||
device:setduty(i)
|
|
||||||
tmr.delayms(200)
|
|
||||||
i = i + 0.05
|
|
||||||
end
|
|
||||||
i = 1.
|
|
||||||
while i >= 0 do
|
|
||||||
device:setduty(i)
|
|
||||||
tmr.delayms(200)
|
|
||||||
i = i - 0.05
|
|
||||||
end
|
|
||||||
device:stop()
|
|
||||||
end
|
|
||||||
|
|
||||||
function rgb(r, g, b)
|
|
||||||
red = pwm.attach(pio.GPIO21, 2000, r / 256); red:start()
|
|
||||||
green = pwm.attach(pio.GPIO19, 2000, g / 256); green:start()
|
|
||||||
blue = pwm.attach(pio.GPIO18, 2000, b / 256); blue:start()
|
|
||||||
|
|
||||||
tmr.delayms(5000)
|
|
||||||
|
|
||||||
red:stop(); red:detach()
|
|
||||||
green:stop(); green:detach()
|
|
||||||
blue:stop(); blue:detach()
|
|
||||||
end
|
|
||||||
|
|
||||||
function allrgb()
|
|
||||||
red = pwm.attach(pio.GPIO21, 2000, 1.); red:start()
|
|
||||||
green = pwm.attach(pio.GPIO19, 2000, 0); green:start()
|
|
||||||
blue = pwm.attach(pio.GPIO18, 2000, 0); blue:start()
|
|
||||||
|
|
||||||
for i=0,255,5 do green:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
for i=255,0,-5 do red:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
for i=0,255,5 do blue:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
for i=255,0,-5 do green:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
for i=0,255,5 do red:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
|
|
||||||
red:stop(); red:detach()
|
|
||||||
green:stop(); green:detach()
|
|
||||||
blue:stop(); blue:detach()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- fonction permettant d'allumer un buzzer pendant un temps donné
|
|
||||||
function buzz(pin, delay) -- pin : la patte sur laquelle le buzzer est connecté; delay : le temps pendant lequel le buzzer reste allumé
|
|
||||||
pinon(pin) -- on allume le buzzer
|
|
||||||
tmr.delayms(delay) -- on attend pendand le temps désiré
|
|
||||||
pinoff(pin) -- on étteint le buzzer une fois la durée atteinte
|
|
||||||
end
|
|
||||||
|
|
||||||
-- fonction permettant de faire "clignoter" un buzzer sur un pin donné pour une durée donnée et un nombre d'itérations donné
|
|
||||||
function blink_buzz(pin, n, delay) -- pin : la patte du buzzer; n : le nombre d'itérations; delay : le délai en ms
|
|
||||||
for i=1,n do
|
|
||||||
buzz(pin, delay) -- on allume le buzzer pendant la durée désirée
|
|
||||||
tmr.delayms(delay) -- on attend avant de passer à la suite
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- fonction permettant de faire clignoter la led bleu du circuit de l'ESP32
|
|
||||||
function blink_2(n) -- pin : la patte de sortie; n : int, nombre d'itérations
|
|
||||||
blink(pio.GPIO2, n, 200) -- appel de la fonciton blink en lui donnant la bonne patte en paramètre ainsi que le temps d'éclairage
|
|
||||||
end
|
|
||||||
|
|
||||||
-- fonction permettant d'afficher successivement les clouleurs Rouge, Vert et Bleu en connectant la led RGB sur les pins D18, D19 et D21
|
|
||||||
function triColors(n) -- n : nombre de fois qu'on réalise le paterne
|
|
||||||
for i=1,n do
|
|
||||||
blink(pio.GPIO21, 1, 200) -- appel de la fonciton blink pour faire clignoter une fois la led en rouge pendant 200ms
|
|
||||||
blink(pio.GPIO19, 1, 200) -- appel de la fonciton blink pour faire clignoter une fois la led en vert pendant 200ms
|
|
||||||
blink(pio.GPIO18, 1, 200) -- appel de la fonciton blink pour faire clignoter une fois la led en bleu pendant 200ms
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- fonction qui envoie un signal SOS lumineux sur la led bleu du circuit de l'ESP32
|
|
||||||
function sos_led(n) -- n : nombre de fois qu'on affiche le signal SOS
|
|
||||||
for i=1,n do
|
|
||||||
blink(pio.GPIO2, 3, 400) -- on clignotte 3 fois longuement
|
|
||||||
blink(pio.GPIO2, 3, 200) -- on clignotte 3 fois courtement
|
|
||||||
blink(pio.GPIO2, 3, 400) -- on clignotte 3 fois longuement
|
|
||||||
tmr.delayms(400) -- on fait une longue pause de 400ms
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- fonction qui envoie un signal SOS sonore sur un buzzer branché sur la patte D18 de l'ESP32
|
|
||||||
function sos_buzz(n) -- n : nombre de fois qu'on fait le signal SOS
|
|
||||||
for i=1,n do
|
|
||||||
blink_buzz(pio.GPIO18, 3, 400) -- on clignotte 3 fois longuement
|
|
||||||
blink_buzz(pio.GPIO18, 3, 200) -- on clignotte 3 fois courtement
|
|
||||||
blink_buzz(pio.GPIO18, 3, 400) -- on clignotte 3 fois longuement
|
|
||||||
tmr.delayms(400) -- on fait une longue pause de 400ms
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
35
pwm.lua
35
pwm.lua
|
@ -1,35 +0,0 @@
|
||||||
-- écrit le 12/10/2024 par Lukian Leizour
|
|
||||||
|
|
||||||
function rgb(r, g, b)
|
|
||||||
-- on attache et démarre les pins
|
|
||||||
red = pwm.attach(pio.GPIO21, 2000, r / 256); red:start()
|
|
||||||
green = pwm.attach(pio.GPIO19, 2000, g / 256); green:start()
|
|
||||||
blue = pwm.attach(pio.GPIO18, 2000, b / 256); blue:start()
|
|
||||||
|
|
||||||
-- on attend 5 secondes
|
|
||||||
tmr.delayms(5000)
|
|
||||||
|
|
||||||
-- on stoppe et détache les pins
|
|
||||||
red:stop(); red:detach()
|
|
||||||
green:stop(); green:detach()
|
|
||||||
blue:stop(); blue:detach()
|
|
||||||
end
|
|
||||||
|
|
||||||
function allrgb()
|
|
||||||
-- on attache et démarre les pins
|
|
||||||
red = pwm.attach(pio.GPIO21, 2000, 1.); red:start()
|
|
||||||
green = pwm.attach(pio.GPIO19, 2000, 0); green:start()
|
|
||||||
blue = pwm.attach(pio.GPIO18, 2000, 0); blue:start()
|
|
||||||
|
|
||||||
-- on boucle pour afficher toutes les couleurs RGB
|
|
||||||
for i=0,255,5 do green:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
for i=255,0,-5 do red:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
for i=0,255,5 do blue:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
for i=255,0,-5 do green:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
for i=0,255,5 do red:setduty(i / 256); tmr.delayms(50) end
|
|
||||||
|
|
||||||
-- on stoppe et détache les pins
|
|
||||||
red:stop(); red:detach()
|
|
||||||
green:stop(); green:detach()
|
|
||||||
blue:stop(); blue:detach()
|
|
||||||
end
|
|
137
screen.lua
Normal file
137
screen.lua
Normal file
|
@ -0,0 +1,137 @@
|
||||||
|
-- introduction IOT / UBS
|
||||||
|
-- (c) Gildas Menier
|
||||||
|
-- gildas.menier@univ-ubs.fr
|
||||||
|
|
||||||
|
-- contient les définitions de
|
||||||
|
-- cls()
|
||||||
|
-- console()
|
||||||
|
|
||||||
|
-- changer les valeurs qui suivent en fonction de
|
||||||
|
-- vos branchements
|
||||||
|
|
||||||
|
-- GPIO pour I2C
|
||||||
|
local sda = 18
|
||||||
|
local scl = 19
|
||||||
|
|
||||||
|
-- adresse ecran I2C
|
||||||
|
i2cadd = 0x3C
|
||||||
|
|
||||||
|
-- configuration
|
||||||
|
local reset16 = false -- reset ecran
|
||||||
|
i2c.setpins(0,sda,scl) -- config i2C
|
||||||
|
|
||||||
|
-- ecran
|
||||||
|
if reset16 then -- reset pour l'ecran si necessaire
|
||||||
|
pio.pin.setdir(pio.OUTPUT, pio.GPIO16);
|
||||||
|
pio.pin.setlow(pio.GPIO16)
|
||||||
|
tmr.delayms(50);
|
||||||
|
pio.pin.sethigh(pio.GPIO16)
|
||||||
|
tmr.delayms(50);
|
||||||
|
end
|
||||||
|
|
||||||
|
pcall( function() -- pas d'erreur
|
||||||
|
gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.LANDSCAPE, false, i2cadd)
|
||||||
|
gdisplay.clear()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_LCD)
|
||||||
|
gdisplay.setwrap(false)
|
||||||
|
end)
|
||||||
|
|
||||||
|
local consolepos = 0
|
||||||
|
local consoletab = {}
|
||||||
|
local consolemax = 6
|
||||||
|
|
||||||
|
local oledflip = 1
|
||||||
|
|
||||||
|
function flip()
|
||||||
|
oledflip = oledflip+1; if oledflip > 3 then oledflip = 0 end
|
||||||
|
if oledflip==0 then
|
||||||
|
consolemax = 6
|
||||||
|
gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.LANDSCAPE_FLIP, false, i2cadd)
|
||||||
|
elseif oledflip==1 then
|
||||||
|
consolemax = 6
|
||||||
|
gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.LANDSCAPE, false, i2cadd)
|
||||||
|
elseif oledflip==2 then
|
||||||
|
consolemax = 13
|
||||||
|
gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.PORTRAIT, false, i2cadd)
|
||||||
|
else
|
||||||
|
consolemax = 13
|
||||||
|
gdisplay.attach(gdisplay.SSD1306_128_64, gdisplay.PORTRAIT_FLIP, false, i2cadd)
|
||||||
|
end
|
||||||
|
cls()
|
||||||
|
end
|
||||||
|
|
||||||
|
function cls()
|
||||||
|
if (consolemax==6) then gdisplay.clear()
|
||||||
|
else
|
||||||
|
gdisplay.rect( {0,0}, 128, 9*consolemax, {0,0,0}, {0,0,0} )
|
||||||
|
end
|
||||||
|
if oledflip ~= 1 then gdisplay.clear() end
|
||||||
|
consolepos = 0
|
||||||
|
consoletab={}
|
||||||
|
for i=0, consolemax do
|
||||||
|
consoletab[i] = ""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function console(msg)
|
||||||
|
if (consolepos <= consolemax) then
|
||||||
|
consoletab[consolepos] = msg
|
||||||
|
gdisplay.write({0, consolepos*9},msg)
|
||||||
|
consolepos = consolepos+1
|
||||||
|
else
|
||||||
|
for i = 1, consolemax do
|
||||||
|
consoletab[i-1] = consoletab[i]
|
||||||
|
end
|
||||||
|
consoletab[consolemax] = msg
|
||||||
|
if (consolemax==6) then gdisplay.clear()
|
||||||
|
else
|
||||||
|
gdisplay.rect( {0,0}, 128, 9*consolemax+9, {0,0,0}, {0,0,0} )
|
||||||
|
end
|
||||||
|
for i=0, consolemax do
|
||||||
|
gdisplay.write({0, i*9},consoletab[i])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function top()
|
||||||
|
local l = thread.list(true)
|
||||||
|
cls()
|
||||||
|
for k,v in pairs(l) do
|
||||||
|
console(l[k]["thid"].." "..l[k]["name"].." "..l[k]["used_stack"])
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function fonts()
|
||||||
|
cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_DEFAULT)
|
||||||
|
console("DEFAULT")
|
||||||
|
tmr.delay(5); cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_DEJAVU18)
|
||||||
|
console("DEJAVU18")
|
||||||
|
tmr.delay(5); cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_DEJAVU24)
|
||||||
|
console("DEJAVU24")
|
||||||
|
tmr.delay(5); cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_UBUNTU16)
|
||||||
|
console("UBUNTU16")
|
||||||
|
tmr.delay(5); cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_COMIC24)
|
||||||
|
console("COMIC24")
|
||||||
|
tmr.delay(5); cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_TOONEY32)
|
||||||
|
console("TOONEY32")
|
||||||
|
tmr.delay(5); cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_MINYA24)
|
||||||
|
console("MINYA24")
|
||||||
|
tmr.delay(5); cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_7SEG)
|
||||||
|
console("7SEG")
|
||||||
|
tmr.delay(5); cls()
|
||||||
|
gdisplay.setfont(gdisplay.FONT_LCD)
|
||||||
|
console("LCD")
|
||||||
|
end
|
||||||
|
|
||||||
|
pcall( function()
|
||||||
|
cls()
|
||||||
|
console(">")
|
||||||
|
end)
|
Loading…
Add table
Add a link
Reference in a new issue