Estação base

Design das Telas

         Paralelamente aos modos de gravação e aprendizagem, foi realizado o design das telas. A confecção das telas foi realizada no próprio Android Studio, depois de desenhadas as imagens da tela tema e de cada botão.
Para realizar a criação da interface de interação com o usuário(telas do aplicativo) foi utilizado a classe “AppCompatActivity” que representa uma Atividade. Essa classe possui o arquivo “.java” e o arquivo “.xml” onde esta controla como serão dispostos as imagens, os botões as mensagens e todos elementos que interagem ou não com o usuário. A primeira é responsável por controlar as atividades e eventos relacionados a cada elemento desse conjunto.
No arquivo .java declaramos os botões e instanciamos recuperando-os do arquivo xml. Para tal utilizamos objetos como “Button” ou “TestView” que possibilitam essa manipulação direta. Uma explicação geral pode ser vista na figura que segue.

Antes disso leia uma breve explicação de cada método ou instancia:

onCreate() – É a primeira função a ser executada em uma Activity. Geralmente é a responsável por carregar os layouts XML e outras operações de inicialização. É executada apenas uma vez.
onStart() – É chamada imediatamente após a onCreate() – e também quando uma Activity que estava em background volta a ter foco.
onResume() – Assim como a onStart(), é chamada na inicialização da Activity e também quando uma Activity volta a ter foco. Qual a diferença entre as duas? A onStart() só é chamada quando a Activity não estava mais visível e volta a ter o foco, a onResume() é chamada nas “retomadas de foco”.
onPause() – É a primeira função a ser invocada quando a Activity perde o foco (isso ocorre quando uma nova Activity é iniciada).
onStop() – Só é chamada quando a Activity fica completamente encoberta por outra Activity.
onDestroy() – A última função a ser executada. Depois dela, a Activity é considerada “morta” – ou seja, nao pode mais ser relançada. Se o usuário voltar a requisitar essa Activity, um novo objeto será contruído.
onRestart() – Chamada imediatamente antes da onStart(), quando uma Activity volta a ter o foco depois de estar em background.
androidTelas

Um exemplo de declaração e uso:

Dentro do arquivo “.java”:

// Este deve ser declarado dentro da classe mas fora do arquivo “onCreate”
private Button BotaoVolta;
//aqui serão colocados tudo que se refere a tela ou durante a execução da mesma
  protected void onCreate(Bundle savedInstanceState) {
//instancia a tela
super.onCreate(savedInstanceState);
 //cria a tela referente ao arquivo .”activity_modo_livre”
setContentView(R.layout.activity_modo_livre);

//a partir daqui será instanciado o botão recuperando o botão criado dentro do arquivo //XML
BotaoVolta = (Button) findViewById(R.id.ButtonVoltar);

// essa função declara um evento a partir do click do botão
BotaoVolta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
                Intent intent = new Intent(ModoLivre.this, MainActivity.class); //nessa caso o evento do botão
//esta relacionado com a troca de telas
startActivity(intent);
finish();
            }
});
}

Dentro do arquivo XML:

  <Button
android:layout_gravity=”center”
android:layout_width=”140dp”
android:layout_height=”75dp”
android:background=”@drawable/bvoltar”
// aqui é colocado a identificação de como será recuperado o botão pelo .JAVA
android:id=”@+id/ButtonVoltar”
android:paddingTop=”32sp”
android:drawablePadding=”-15sp”
android:layout_marginTop=”180dp”/>
//o resto é apenas configuração e característica do botão como tamanho e posição

O resultado desses dois arquivos em conjunto resulta na tela propriamente dita e o evento de voltar para a atividade anterior do aplicativo, que no caso é a classe principal do programa:

designtela
Estação base

Nesta etapa do projeto, foram implementados o Modo Gravação e mudança de instrumento, assim como um protótipo do modo aprendizagem.

Para a gravação das músicas, foi utilizada a classe MediaRecorder do Android, que possibilita a gravação de sons captados pelo celular, salvando num arquivo. Deste modo os métodos necessários foram associados aos botões Gravar, Stop e Play criados no aplicativo, para parar a gravação e tocar o áudio gravado.

A mudança de instrumento foi implementada com um Spinner, a drop down list do Android. Ela foi preenchida com o nome dos instrumentos utilizados no projeto, para que o usuário selecione. O item selecionado nesta lista determina quais arquivos serão carregados nas variáveis de áudio do aplicativo, associados a cada instrumento.

Os testes do Modo Gravação e mudança de instrumento podem ser vistos no vídeo abaixo.

A implementação do protótipo do Modo Aprendizagem foi feita apenas para o modo sem ritmo.

 

Eletrônica

Finalização da Eletrônica

As placas de circuito impresso foram fabricadas pelo professor Castaldo, exceto as placas dos LEDs que foram feitas pela própria equipe por se tratar de um layout de face simples. Essas placas foram fabricadas através da transferência térmica do layout, corrosão e posterior furo das placas, as imagens do processo podem ser vistas abaixo. As demais placas dupla face já foram nos entregue com os furos feitos faltando apenas a soldagem dos componentes.

Com as placas prontas, todos os componentes foram soldados e testes de continuidade foram realizados para evitar possíveis curto circuito e danificação dos componentes. O resultado de toda a estrutura pode ser visto na figura abaixo.

WhatsApp Image 2017-05-31 at 01.20.12

Com mostrado na figura, uma série de cabos tiveram que ser feitos pela equipe para interligar as placas. Por se tratar de cabos de grande comprimento, não foi possível encontrar comercialmente algo pronto e por isso optou-se pela fabricação manual. Foram utilizados 225 fios para a fabricação de 24 cabos no total. Porém, na prática, muitos problemas com mau contato surgiram e por isso utilizamos cola quente para fixar melhor a estrutura.

Muitos problemas foram identificados nos testes feitos e um a um foram solucionados, desde problemas de software até problemas de hardware. Alguns problemas de hardware persistem devido ao mau contato e por isso a equipe planeja soldar os cabos diretamente nos pinos em que devem ser conectados.

Sem categoria

Fabricação da estrutura externa

Para fabricação da estrutura externa foi utilizado o papel paraná. Para a base foram cortados quatro pedaços de 72x30cm, que foram sobrepostos e colados, para o fundo foram cortados quatro pedaços de 72x20cm, enquanto para as laterais foram cortados oito pedaços de 30x20cm.

Os pedaços foram colados em conjuntos de quatro, resultando em uma espessura de 8mm, o que tornou-se suficiente para garantir resistência à estrutura.

Os pedaços foram primeiramente pintados com uma camada de tinta branca, seguida por três camadas da tinta escolhida, no caso vermelha. Foram pintados ambos os lados, pois a parte interna do piano será exibida ao público.

Para encaixe do fundo com as laterais foram feitos recortes, aumentando a resistência da estrutura. Por questões estéticas, foram feitos recortes nas laterais do piano.

As laterais foram coladas ao fundo, e esta estrutura foi posteriormente colada ao fundo.