Skip to content
SPONSORS

APS - 2 - Controle

O desafio é desenvolver um protótipo de um controle para um jogo de computador.

Veja alguns exemplos de entregas de semestres passados:

  • VINÍCIUS BARRETO POMILIO
  • RAPHAEL BACARIM BARBUTI
  • ENZO DAVI RIBEIRO BARROSO DA SILVA
  • GABRIELLY CARNEIRO SUSKO
  • GUSTAVO EIZO TAKAHASHI
  • MARCOS AUGUSTO ROSSI PAULINO COSTA
  • MARCELO DA COSTA POLTRONIERI
  • VITOR HIDEKI PEREIRA KATAKURA
  • Enzo Provenza Trivellato Ristori
  • Gabriel Camargo Vidigal

Entrega mínima (C)

A ideia do controle é:

  • Ser desenvolvido para um jogo específico
  • Deve possuir um protótipo mecânico customizado para o jogo em questão
  • Ser estruturado utilizando RTOS (não pode mais utilizar variáveis globais!)

O controle deve possuir pelo menos:

  • Informação visual se o controle está conectado ao computador ou não
  • 2x entradas analógicas (ou uma IMU)
  • 4x entradas digitais
    • Todas operando com callback / interrupção.

Funcionalidade esperada:

  • O jogo deve ser "jogável" com o controle (sem latência e validado pela equipe)
  • Todo o hardware deve estar integrado ao controle (bateria e tudo mais)

Expert

Vocês deverão aplicar o lab de expert nesta APS, de forma muito similar ao que fizeram na APS passada. Os labs foram pensados para que pudessem ser aplicados aqui e contribuir para o projeto. Temos as seguintes combinações de expert que podem ser utilizadas:

  • IA e Bluetooth
  • IA e RTOS
  • RTOS e Bluetooth

Durante a apresentação, a equipe deverá justificar tecnicamente as decisões de projeto e demonstrar de forma clara como os recursos selecionados foram incorporados ao sistema.

INFO

Converse com a equipe do curso para ter ideias de como aplicar os labs.

Documentação

O controle deve ser documentado no README do repositório e deve conter:

  • Jogo
  • Ideia do controle (projeto mecánico, scratch)
  • Inputs e Outputs (sensores e atuadores que irão utilizar)
  • Protocolo utilizado
  • Diagrama de blocos do firmware
    • Indicando tasks, filas, semáforos e ISR
  • Imagens do controle (proposta e real), e links para arquivos ou outras coisas úteis
    • (apenas para entrega final)

Qualidade de Código

O código não deve possuir erros detectados pelas ferramentas de qualidade de código: cppcheck e embedded-check.

Além disso, após o envio do projeto, o código passará por um processo de revisão manual, onde a equipe pode pedir revisões do código.

Ganhando nota

INFO

Conceitos acumulativos: pode fazer o que quiser para ir acumulando pontos. Se quiser incluir algum que não está aqui, mande mensagem ao professor.

Entrega prévia:

  • meio conceito Entrega de design antecipada (05/15)
    • Entregar o README do projeto preenchido (vocês podem alterar depois se necessário)

Entrega final:

  • meio conceito Utiliza ADC e IMU em conjunto no controle
  • meio conceito Utiliza algum componente não visto em sala de aula
  • meio conceito Botão de macro (salva e reproduz uma série de comandos)
  • meio conceito Envia junto com a entrega um vídeo TOP/stonks do controle, nível Kickstarter
  • meio conceito Controle recebe informações do PC/jogo e faz alguma coisa (ex: jogador morre e o controle vibra)

Novas (nesse semestre):

  • meio conceito Calibracao guiada (wizard): centra joystick/IMU e indica status por LED
  • meio conceito Modo “perfil” por usuário (2-3 mapeamentos de botoes/sensibilidade trocados por combinacao)
  • meio conceito Haptico simples (vibracao/buzzer) para eventos locais do controle (modo ativo, conectado , ...)
  • meio conceito Gerenciamento de bateria: leitura de tensao, indicacao de nivel, alerta.
  • UM conceito: Implementar um dos expert-1 (áudio ou LCD) no controle.
  • UM conceito: Design surpreendentemente bom!
    • Tem que convencer pelo menos dois membros da equipe de embarcados!