RepRap Huxley (TechZoneCom.com), carregar firmware

Um amigo meu comprou uma impressora 3D Open Source da família “RepRap“, modelo “Huxley”, em kit. Ainda chegou a montar o kit e a testar, mas depois emigrou para um país onde o hobby da electrónica ainda não está estabelecido e teve de deixar cá a máquina.  Tenho agora a sorte de estar a ajudar a pô-la a funcionar de novo.🙂

RepRap Huxley da TechZoneCom.com, sem o Extrusor.

O que é a Huxley

A Huxley é uma versão miniatura da “Mendel“, que por sua vez é uma versão simplificada da “Darwin“. Portanto, pode dizer-se que é uma RepRap de 3ª geração. Neste kit em específico,  a electrónica de controlo é uma placa desenhada pela malta da TechZoneCom.com com o intuito de simplificar a vida às pessoas: é um controlador “Sanguino” com circuitos de potência “Pololu” para comando de 4 motores passo-a-passo (Eixos X, Y, Z + Extrusor) e respectivos sensores ópticos fim-de-curso, e ainda controlo de potência e de temperatura da ponta de extrusão, tudo integrado numa só placa. A esta placa eles chamaram “Monotronics“.

Infelizmente a loja que vendeu o kit parece ter desaparecido da face da Terra, portanto temos uma máquina altamente experimental (e provavelmente temperamental) nas mãos e ninguém para dar suporte oficial. Bom, nada a que eu não esteja habituado, faz parte do trabalho do dia-a-dia.😉 Felizmente a informação foi registada no Wiki da comunidade, e até tem bastante detalhe. Ora vamos lá ver como é que se mete isto a trabalhar.

Uma RepRap é um sistema relativamente complexo, constituído por vários componentes tecnológicos mais ou menos interdependentes. Neste caso, temos os seguintes:

– Sistema electromecânico: uma estrutura mecânica do tipo “RepRap Mendel” capaz de depositar filamento plástico derretido (tipicamente ABS ou PLA) com uma precisão de 0,1mm numa plataforma plana com 130mm x 130mm, até uma altura de 100mm; Esta estrutura contém um sistema Cartesiano de 3 eixos (X,Y,Z) motorizados e um Extrusor de plástico para derreter o filamento e depositá-lo sobre a plataforma. Na Mendel/Huxley é a plataforma que se move no plano X-Y (largura e comprimento), e o extrusor apenas se move no eixo Z (altura).

– O extrusor tem um motor passo-a-passo para empurrar/puxar o filamento de plástico, um elemento eléctrico de aquecimento (controlado pela placa), e um sensor de temperatura para monitorização fina; os eixos têm um sensor fim-de-curso que indica à placa quando estão na posição inicial. Estes sensores podem ser ópticos (barreira de infravermelhos) ou mecânicos (comutadores de fim-de-curso).

– Placa “Monotronics”: contém um microcontrolador Sanguino compatível com o famoso ambiente de programação Arduino; é ele que recebe os comandos do computador e os traduz em movimentos para os 3 eixos e para o extrusor, bem como mantém a temperatura do extrusor controlada. Todos os fios ligam a ela.

– “Firmware”: programa de microcontrolador que é carregado na placa Monotronics para ser executado pelo Sanguino. As funções são aquelas que quisermos programar, mas tipicamente numa RepRap desta geração (“RepRap5D”) tem a responsabilidade de implementar o protocolo de comunicação RepRap com o computador e de interpretar os comandos G-Code enviados por ele, traduzindo-os em acções dos eixos ou do extrusor.

– Programa de controlo: a correr no computador, este programa trata de gerar os comandos G-Code e de enviá-los para a RepRap, e de monitorizar o estado da máquina. Adicionalmente, pode executar outras funções, como por exemplo traduzir ficheiros de geometria 3D em comandos G-Code (na gíria chama-se “slicing” ao acto de “fatiar” a peça 3D em secções planas e gerar comandos-ferramenta para imprimir cada um desses planos), gerar visualizações 3D do trabalho em execução, ou até permitir alterações às peças em impressão. Existem várias opções de programas deste tipo para a RepRap, mas todos têm de “conhecer” a máquina específica para poder trabalhar com ela. É aqui que entra a Configuração de Máquina, que é particular a cada programa específico.

Instalar o ambiente

Mas antes de imprimir, é preciso montar isto tudo.🙂 Após a montagem e afinação mecânica, convém compilar e carregar o Firmware na placa. Mesmo que o fornecedor da placa já o tenha feito, convém sempre termos esta possibilidade por várias razões; é provável haver problemas a resolver, podemos querer alterar um comportamento da máquina, ou simplesmente para aprender como funciona. Afinal, tudo isto é Open Source!🙂

A via mais fácil é através do ambiente Arduino. O código-fonte do firmware fornecido pela TechZoneCom.com encontra-se abandonado e já tem bastante idade, e por isso tem de ser compilado com uma versão antiga do Arduino: a 023. A instalação do software Arduino é simples, basta descarregar o arquivo e descomprimi-lo numa pasta.

No entanto, há que instalar uma extensão no ambiente Arduino para ele poder trabalhar com o nosso microcontrolador Sanguino. Mas também isto é fácil, basta descarregar o arquivo (da versão correcta, 023) e descomprimi-lo numa pasta. A seguir move-se essa pasta “sanguino” para dentro do ambiente Arduino, mais precisamente para a pasta “arduino-0023/hardware/”.

Falta apenas um pequeno pormenor antes de abrir o programa Arduino: configurar a velocidade de ligação entre o PC e o Sanguino, para que o ambiente Arduino possa carregar o Firmware sem problemas.  Abre-se o ficheiro “arduino-0023/hardware/Sanguino/boards.txt” e no elemento “atmega644.upload.speed” muda-se a velocidade para “19200”. Após a gravação pode-se abrir o Arduino.

Compilar e carregar o Firmware

O firmware da TechZoneCom.com está disponível no wiki, e basta descarregar o arquivo e descomprimir para uma pasta. Depois é usar o Arduino para abrir o ficheiro com a extensão “.pde” chamado “FiveD_GCode_Interpreter.pde”.

Convém agora dizer ao ambiente Arduino qual é o microcontrolador que vamos programar. No menu “Tools / Serial Port” escolhe-se a porta série (virtual, criada pelo sistema ao ligar o cabo USB) adequada, e no menu “Tools / Board” escolhe-se “Sanguino W/Atmega644P“.

Ambiente Arduino 023. Escolha da placa a programar.

Agora podemos compilar o firmware, carregando no botão “Verify” do ambiente Arduino. Como a versão do Arduino é mais recente do que a usada pela TechZone, dá-se um erro de compilação. Basta recortar a linha “#include <HardwareSerial.h>” do ficheiro “FiveD_GCode_Interpreter.pde” e colá-la no princípio do ficheiro “hostcom.h“, ali pela linha 44. Gravar ambos. Agora já compila.

E pronto, estamos prontos para carregar o firmware na placa. Convém ter a ligação USB entre a placa Monotronics e o computador, e a placa alimentada pelo transformador de corrente (este não é essencial, é mais como rede de segurança para evitar problemas).

O carregamento do firmware tem de ser feito durante o arranque da placa. Portanto carregamos no botão “Upload” do ambiente Arduino e logo a seguir no botão de “reset” da placa, mantendo-o carregado; largar o botão de reset quando o ambiente Arduino mostrar a mensagem “Binary sketch size: 22458 bytes (of a 63488 byte maximum)“.

A luz vermelha “debug” da placa deve começar a piscar de forma mais rápida durante o carregamento. Esperar pelo fim. É tudo.

E pronto, hoje conseguimos:

– instalar o ambiente Arduino para firmwares Sanguino;

– compilar e carregar o firmware da Huxley/TechZoneCom.com na placa Monotronics.

De futuro haverá outros artigos sobre a continuação desta aventura.

~ por Vasco Névoa em Outubro 29, 2012.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

 
%d bloggers like this: