• MIDI View

    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.

    Acessar Controlador MIDI
  • Principais Componentes

    Caixa Plástica Pb-900

    Gabinete injetado de alta resistência, ideal para montagem de eletrônicos. Possui painel removível.
    Caixa

    Raspberry Pi Pico

    Microcontrolador compacto e versátil. Com extensão adaptadora, com 40 pinos macho e fêmea.
    Raspberry

    Botões DS-211

    Sem trava, Dispositivos de controle para interação direta, com suporte para montagem em painel.
    Botao

    Passa Fio Double Pass

    Componente para organização de cabos e fios, garantindo segurança e estética em montagens eletrônicas.
    Passa Fio
  • Desenho Técnico

    Projeto 1

    Fase 1 - Modelagem da Base Caixa

    Projeto 2

    Fase 2 - Modelagem Inferior Caixa

    Projeto 3

    Fase 3 - Modelagem Superior Caixa

    Projeto 3

    Fase 4 - Modelagem Botões e Tampa

    Projeto 3

    Fase 5 - Montagem dos Componentes

  • Código Fonte

    MicroPython Icon
                   
    
      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

    Projeto 3

    MIDI Controller - Visão Superior Frontal 1

    Projeto 1

    MIDI Controller - Visão Superior Frontal 2

    Projeto 2

    MIDI Controller - Visão Superior Diagonal 1

    Projeto 3

    MIDI Controller - Visão Superior Diagonal 2

    Projeto 3

    MIDI Controller - Visão Superior Lateral

  • Desenvolvedores

    Rafael Stuepp Riegel

    Responsável parte Virtual
    Perfil no LinkedIn

    Luiz Afonso S. Costa

    Responsável parte Física
    Perfil no LinkedIn

    Samuel Henrique Werlich

    Idealizador, Coordenador do Projeto
    Perfil no LinkedIn