Mudanças entre as edições de "Ferrovia controlada por RaspberryPi"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
Linha 31: Linha 31:
 
</pre>
 
</pre>
 
*Instalar o pluguin thonny-py5mode (para o código ser mais legível)
 
*Instalar o pluguin thonny-py5mode (para o código ser mais legível)
  +
 
<pre>
 
<pre>
 
# Arquivo Teste do py5-mode
 
# Arquivo Teste do py5-mode
Linha 37: Linha 38:
 
def draw():
 
def draw():
 
rect(mouse_x,mouse_y,10,10)
 
rect(mouse_x,mouse_y,10,10)
  +
</pre>
  +
*Teste dos dois ao mesmo tempo
  +
<pre>
  +
# Arquivo Teste do gpio-and-py5
  +
from gpiozero import LED
  +
from time import sleep
  +
  +
led = LED(15)
  +
  +
def setup():
  +
size(200,200)
  +
background(124)
  +
  +
def draw():
  +
if is_mouse_pressed:
  +
background(0,255,0)
  +
led.on()
  +
else:
  +
background(255,0,0)
  +
led.off()
 
</pre>
 
</pre>

Edição das 17h56min de 18 de julho de 2025

Objetivo

Usar um RaspberryPi para controlar uma Ferrovia utilizando um painel virtual.

Requisitos

  • py5
    • Pillow
      • libjpeg-dev
    • JDK? - em teoria o Thonny já instala o jdk preciso testar.
  • gpiozero
    • lgpio

Instalando o py5 para criar painel

No raspberry tive alguns problemas para instalar o py5 (paifaive):

  • Criar um env
  • Atualizar o pip pip install --upgrade pip
  • Atualizar o thonny para a versão 4.1.7
  • Instalar jdk java (testar se é nescessário)
  • Instalar libjpeg-dev (para instalar o Pillow)
  • Instalar o Pillow (para instalar o py5)
  • Instalar o py5.
# Arquivo de test do py5
import py5
def setup():
    py5.size(200,200)

def draw():
    py5.rect(py5.mouse_x,py5.mouse_y,10,10)

py5.run_sketch()
  • Instalar o pluguin thonny-py5mode (para o código ser mais legível)
# Arquivo Teste do py5-mode
def setup():
    size(200,200)
def draw():
    rect(mouse_x,mouse_y,10,10)
  • Teste dos dois ao mesmo tempo
# Arquivo Teste do gpio-and-py5
from gpiozero import LED
from time import sleep

led = LED(15)

def setup():
    size(200,200)
    background(124)

def draw():
    if is_mouse_pressed:
        background(0,255,0)
        led.on()
    else:
        background(255,0,0)
        led.off()