Jeffrey Cross
Jeffrey Cross

Noise Toy - curso intensivo em programação

O kit Noise Toy é divertido de usar, mas se você é como eu - deixar essa pequena porta "PROGRAM" sem uso o deixará louco.

Com pouco conhecimento de programação AVR além de algum divertimento com o Arduino, eu me ensinei a fazer upload e hackear código-fonte para ele. Continue lendo para ver como a ação foi realizada e ouça alguns exemplos de áudio.

Relacionado:

  • COMO - construir o brinquedo do ruído
  • Noise Toy-in-a-box

Parte 1 - Hardware hackery

Se você nunca programou um microcontrolador antes, a perspectiva pode parecer um pouco assustadora - mas não é tão difícil, e aprender esse processo abre várias novas opções. (Se já souber como, você pode pular para a Parte 3, para arquivos pertinentes ao Noise Toy)

O Noise Toy usa um chip microcontrolador Atmel AVR (o ATTiny85, para ser específico). A Loud Objects projetou o kit para que o chip pudesse ser reprogramado sem removê-lo do dispositivo ou "dentro do circuito". Na verdade, o Toy pode ser visto como uma simples "placa alvo" do AVR na qual um microcontrolador pode receber um novo código a partir da conexão de dados serial de um PC.

As portas seriais são muito raras na maioria das máquinas novas (e inexistentes nos Macs), então a maioria das pessoas usa o USB. A fim de converter esses dados USB em algo mais "serial" para o nosso pequeno chip, usamos um programador no sistema (ISP para breve). Os designers do Noise Toy organizaram esse cabeçalho PROGRAM para interagir com um ISP específico - o AvrUsb500 da Tuxgraphics. Eu não tinha um desses em mãos, mas tinha outro ISP, o USBTinyISP da Adafruit Industries. Para usá-lo com o brinquedo, foi necessário um pouco de adaptação.

O USBTinyISP usa um conector de 6 pinos, mais um pino que o AvrUsb500. Para descobrir quais pinos fizeram o quê, comparei a documentação de ambos os dispositivos e fiz referência cruzada à folha de dados do ATTiny85.

Acontece que o pino adicional no USBTiny fornece energia opcional para a placa, enquanto o AvrUsb500 assume que seu chip já estará ligado durante a programação.

Com isso em mente, desativei o pino de alimentação opcional do USBTinyISP movendo um simples jumper dentro do dispositivo. Usando as informações coletadas dessas comparações de pinos, elaborei um rápido esquema descrevendo como o USBTiny deve se conectar ao cabeçalho PROGRAM do brinquedo.

Você pode usar um núcleo sólido ou um jumper para fazer as conexões adequadas - para uma solução mais permanente, eu fiz um pequeno adaptador para fora do cartão -

Não é muito arrumado, mas faz o trabalho.

Parte 2 - Diversão de software e processo de programação

Depois que a interface for descoberta, você precisará de algum software para realizar a programação real. Eu baixei e instalei o AVR MacPack no meu powerbook (aqueles com Windows podem usar o WinAVR) Então eu me familiarizei com o processo básico de programação através dos tutoriais úteis em Ladyada.net.

O código fonte do Adicional Noise Toy pode ser baixado no site da Loud Objects. Estes são arquivos .c e precisam ser compilados como .hex antes de serem gravados no chip. Para fazer isso, você precisará de um "makefile" que especifique algumas variáveis ​​necessárias. Eu encontrei um makefile de template simples no site do Psychogenic e atualizei com os detalhes necessários -

nome do microcontrolador:

MCU = attiny85 PROGRAMMER_MCU = t85

Nome do Projeto:

PROJECTNAME = mynoisetoyproject

nome do meu arquivo de origem .c:

PRJSRC = mynoisetoyproject.c

Você pode baixar o makefile editado aqui.

Salve o novo makefile como (você adivinhou)makefile”E coloque-o em uma nova pasta chamada“mynoisetoyproject" dentro do Documentos pasta.

O dave_matthews_band.c da Loud Objects soou como um alvo principal para a experimentação, então abri em meu editor de texto favorito e fui trabalhar. Perusing o código, notei um pouco que parecia familiar. Curioso, substituí todas as instâncias de Aleatória() e substituiu-os por 0 - salvou o arquivo como “mynoisetoyproject.c” em Documentos / mynoisetoyproject.

Quando a pasta e os arquivos estavam prontos, segui as seguintes formalidades -

Abra o aplicativo Terminal e insira estas linhas:

cd Documentos / mynoisetoyproject make all make mynoisetoyproject.hex

Conecte o ISP ao computador via USB, depois ao Noise Toy e digite o seguinte -

avrdude -c usbtiny -p t85 -U flash: w: mynoisetoyproject.hex

Depois que o Terminal exibiu um processo de upload rápido, eu desconectei o brinquedo e dei uma pequena demonstração ao meu hack. Um tanto previsível, eu ouvi uma versão menos aleatória de "dave_matthews_band.c" - eu chamo de "chris_mattews_band"

Ouça a chris_matthews_band

Apenas algumas mudanças no programa original fizeram uma diferença substancial no som produzido. Se você já trabalhou com o Arduino antes de provavelmente reconhecer o idioma nesses arquivos de origem. Esse tipo de invasão parece ser uma boa maneira de aprender mais sobre codificação em geral - e é divertido!

Parte 3 - Arquivos e tal

Aqui estão alguns exemplos dos outros programas no site da Loud Objects -

  • birdlane.mp3
  • estéreo.mp3
  • dave_matthews_band.mp3
  • Ike.mp3
  • kunrnd.mp3
  • rptrnd.mp3
  • salvação.mp3

Caso você não queira hackear / escrever código, aqui está um .zip de todos os programas originais pré-compilados como arquivos .hex para upload - Pacote hexagonal Noise Toy

E aqui está o makefile editado e o código de exemplo hack - mynoisetoyproject makefile

Espero que isso ajude a quebrar o gelo com o desenvolvimento de microcontroladores e obter uma milhagem adicional de um kit simples, mas muito útil. Se você escrever / hackear um bom programa para o kit, não deixe de compartilhá-lo nos comentários abaixo!

MOE

Ação

Deixar Um Comentário