-
Notifications
You must be signed in to change notification settings - Fork 0
/
progr-move-tasks1.py
73 lines (60 loc) · 2.22 KB
/
progr-move-tasks1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# pip install RPi.GPIO
import RPi.GPIO as GPIO
import time
# Configuração de pinos
entrada_pins = [5, 6, 13, 19] # Pinos GPIO de entrada
saida_pins = [12, 16, 20, 21, 26, 27] # Pinos GPIO de saída
# Configuração do GPIO
GPIO.setmode(GPIO.BCM) # Usar a numeração BCM dos pinos
# Configurar os pinos de entrada
for pin in entrada_pins:
GPIO.setup(pin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN)
# Configurar os pinos de saída
for pin in saida_pins:
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)
# Nome do arquivo onde os movimentos serão lidos
log_file = 'movimentos.txt'
# Função para ler o estado dos pinos de entrada
def ler_entradas():
estados = [GPIO.input(pin) for pin in entrada_pins]
print(f'Estados das entradas: {estados}')
return estados
# Função para executar movimentos com base nos dados lidos
def executar_movimentos(movimentos):
for movimento in movimentos:
pino, estado = movimento
GPIO.output(pino, estado)
print(f'Pino {pino} definido para {"HIGH" if estado else "LOW"}')
# Função principal que lê o arquivo de movimentos e executa
def processar_movimentos():
try:
with open(log_file, 'r') as f:
for linha in f:
movimentos = []
comandos = linha.strip().split(';')
for comando in comandos:
pino, estado = comando.split(',')
pino = int(pino)
estado = int(estado)
if pino in saida_pins:
movimentos.append((pino, estado))
executar_movimentos(movimentos)
time.sleep(1) # Espera entre cada movimento para ver as mudanças
except FileNotFoundError:
print("Arquivo de movimentos não encontrado.")
except Exception as e:
print(f"Erro ao processar movimentos: {e}")
# Executar a função principal
try:
while True:
entradas = ler_entradas()
processar_movimentos()
time.sleep(1) # Intervalo de leitura
except KeyboardInterrupt:
print("Execução interrompida pelo usuário.")
finally:
GPIO.cleanup() # Resetar a configuração dos GPIO
print("Script finalizado.")