- fait de l'ordre dans les scripts ir_send*

- fait le script ir_send qui permet d'envoyer un code IR de 4 bits en zproto
- fait un tableau de calculs pour le protocole zproto
This commit is contained in:
Christian Zufferey
2018-09-16 17:11:13 +02:00
parent e4601dcbd4
commit 04f7369cfc
9 changed files with 74 additions and 16 deletions

2
.gitignore vendored
View File

@@ -2,7 +2,7 @@ Icon?
Tools*
.DS_Store
ESPlorer.Log*
ESPlorer*Log*
# Compiled Lua sources
luac.out

1
IR/IR_zproto.gsheet Normal file
View File

@@ -0,0 +1 @@
{"url": "https://docs.google.com/open?id=1RlgDPMh1dUCrIPxytMd2KCYdcttVdvh2LTuZecwriN4", "doc_id": "1RlgDPMh1dUCrIPxytMd2KCYdcttVdvh2LTuZecwriN4", "email": "christian.zufferey@gmail.com"}

View File

@@ -1,6 +1,6 @@
-- Petit script pour recevoir la LED IR
-- Petit script pour recevoir la LED IR
print("\n ir_receive2.lua zf180909.1936 \n")
print("\n ir_receive2.lua zf180915.1321 \n")
pin_hp = 8
@@ -10,17 +10,23 @@ gpio.write(pin_hp,gpio.LOW)
pin_ir_receive = 7
gpio.mode(pin_ir_receive, gpio.INT, gpio.PULLUP)
i=1 j=i
function pulse_detected()
gpio.write(pin_hp,gpio.HIGH)
tmr.delay(500)
--print("pulse")
gpio.write(pin_hp,gpio.LOW)
-- gpio.write(pin_hp,gpio.HIGH)
--tmr.delay(500)
i=i+1
-- gpio.write(pin_hp,gpio.LOW)
end
gpio.trig(pin_ir_receive,"down",pulse_detected)
--adctimer1=tmr.create()
--tmr.alarm(adctimer1, 50, tmr.ALARM_AUTO, function()
-- print(adc.read(0))
--end)
ir_receive_tmr1=tmr.create()
tmr.alarm(ir_receive_tmr1, 500, tmr.ALARM_AUTO, function()
if i~=j then
gpio.write(pin_hp,gpio.HIGH)
print(i)
j=i
gpio.write(pin_hp,gpio.LOW)
end
end)

51
IR/ir_send.lua Normal file
View File

@@ -0,0 +1,51 @@
-- Script pour la gestion de l'émetteur IR à 38kHz (LED, infrared, infrarouge)
-- permet l'envoi d'un code avec le protocole zIR, protocole de mon invention ;-)
-- exprès pas standard afin de ne pas être parasité par les autres sources IR !
-- ATTENTION, on utilise ici l'astuce du gpio.serout pour faire la pulse de 26uS (38kHz),
-- car on n'arrive pas avec le gpio.write à faire une pulse plus courte que 400uS
print("\n ir_send.lua zf180916.1706 \n")
pin_ir_send = 7
gpio.mode(pin_ir_send,gpio.OUTPUT)
gpio.write(pin_ir_send,gpio.HIGH)
Mark_Coeff = 0.5
-- en mS/uS
Mark_Start = 3 *Mark_Coeff *1000
Mark_Bit1 = 1 *Mark_Coeff *1000
Mark_Bit0 = 2 *Mark_Coeff *1000
Mark_Space = 1 *Mark_Coeff *1000
-- envoi une série de pulses à 38kHz de durée zduration en uS
function pulse_ir(zduration)
-- print("pulse: "..zduration)
gpio.serout(pin_ir_send,gpio.LOW,{1,25},zduration/26)
end
-- attention, 4 bits seulement
function send_code_ir(zcode)
pulse_ir(Mark_Start)
print("Mark_Space:"..Mark_Space)
tmr.delay(Mark_Space)
for i=0, 3 do
if bit.isset(zcode,i) then
-- print("bit: "..i..",1")
pulse_ir(Mark_Bit1)
else
-- print("bit: "..i..",0")
pulse_ir(Mark_Bit0)
end
-- print("Mark_Space:"..Mark_Space)
tmr.delay(Mark_Space)
end
end
sendir_tmr1=tmr.create()
tmr.alarm(sendir_tmr1, 1000, tmr.ALARM_AUTO, function()
send_code_ir(0x05)
end)

View File

@@ -2,7 +2,7 @@
-- ATTENTION, on utilise ici l'astuce du gpio.serout pour faire la pulse,
-- car on n'arrive pas avec le gpio.write à faire une pulse plus courte que 400uS
print("\n ir_send4.lua zf180909.2308 \n")
print("\n ir_send4.lua zf180915.1330 \n")
pin_ir_send = 7
gpio.mode(pin_ir_send,gpio.OUTPUT)

View File

@@ -1,7 +1,7 @@
-- super mini bootstrap
print("\n init_minizf1.lua zf180909.1921 \n")
print("\n init_minizf1.lua zf180915.1341 \n")
tmr.alarm(0, 5000, tmr.ALARM_SINGLE, function()
tmr.alarm(0, 7000, tmr.ALARM_SINGLE, function()
dofile("disp_oled.lua")
oled_line1="RESET"
@@ -14,6 +14,6 @@ disp_oled()
--dofile("wifi_ap_start.lua")
--dofile("telnet_srv.lua")
dofile("start_demo.lua")
dofile("ir_send4.lua")
dofile("ir_send.lua")
end)