-
Este site é dedicado ao Projeto de Desenho Técnico Avançado do IFC Campus SBS. Aqui, você encontrará informações sobre o processo de criação, os componentes utilizados e a aplicação prática e virtualizada do Controlador MIDI desenvolvido.
-
Principais Componentes
Caixa Plástica Pb-900
Gabinete injetado de alta resistência, ideal para montagem de eletrônicos. Possui painel removível.
Raspberry Pi Pico
Microcontrolador compacto e versátil. Com extensão adaptadora, com 40 pinos macho e fêmea.
Botões DS-211
Sem trava, Dispositivos de controle para interação direta, com suporte para montagem em painel.
Passa Fio Double Pass
Componente para organização de cabos e fios, garantindo segurança e estética em montagens eletrônicas.
-
Desenho Técnico
Fase 1 - Modelagem da Base Caixa
Fase 2 - Modelagem Inferior Caixa
Fase 3 - Modelagem Superior Caixa
Fase 4 - Modelagem Botões e Tampa
Fase 5 - Montagem dos Componentes
-
Código Fonte
from machine import Pin
import time
led = Pin(25, Pin.OUT) # Pino LED embutido
while True:
led.toggle() # Alterna o estado do LED
time.sleep(1) # Pausa de 1 segundo
import machine
import time
# Definindo os pinos para as linhas e colunas
L1 = machine.Pin(10, machine.Pin.OUT) # Linha 1
L2 = machine.Pin(11, machine.Pin.OUT) # Linha 2
L3 = machine.Pin(12, machine.Pin.OUT) # Linha 3
L4 = machine.Pin(13, machine.Pin.OUT) # Linha 4
L5 = machine.Pin(14, machine.Pin.OUT) # Linha 5
C1 = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP) # Coluna 1
C2 = machine.Pin(16, machine.Pin.IN, machine.Pin.PULL_UP) # Coluna 2
C3 = machine.Pin(17, machine.Pin.IN, machine.Pin.PULL_UP) # Coluna 3
C4 = machine.Pin(18, machine.Pin.IN, machine.Pin.PULL_UP) # Coluna 4
C5 = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP) # Coluna 5
C6 = machine.Pin(20, machine.Pin.IN, machine.Pin.PULL_UP) # Coluna 6
C7 = machine.Pin(21, machine.Pin.IN, machine.Pin.PULL_UP) # Coluna 7
C8 = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_UP) # Coluna 8
# Função para debouncing
def debounce(pin):
estado1 = pin.value()
time.sleep(0.02) # 20ms para estabilização
estado2 = pin.value()
return estado1 == estado2
# Função para ler o teclado
def ler_teclado():
linhas = [L1, L2, L3, L4, L5] # Definindo as linhas como alta
colunas = [C1, C2, C3, C4, C5, C6, C7, C8]
for i, linha in enumerate(linhas):
# Ativando uma linha por vez
for j in range(len(linhas)):
linhas[j].value(1) # Desativa todas as linhas
linha.value(0) # Ativa a linha corrente
time.sleep(0.01) # Pequeno atraso para estabilizar
for j, coluna in enumerate(colunas):
if debounce(coluna) and not coluna.value():
print(f"Botão Linha {i+1} - Coluna {j+1} pressionado")
# Loop principal
while True:
ler_teclado()
time.sleep(0.1) # Aguarda antes da próxima varredura
-
Modelo Físico
MIDI Controller - Visão Superior Frontal 1
MIDI Controller - Visão Superior Frontal 2
MIDI Controller - Visão Superior Diagonal 1
MIDI Controller - Visão Superior Diagonal 2
MIDI Controller - Visão Superior Lateral
-
Desenvolvedores
Rafael Stuepp Riegel
Responsável parte Virtual
Luiz Afonso S. Costa
Responsável parte Física
Samuel Henrique Werlich
Idealizador, Coordenador do Projeto