2 Comentários

Prototipagem rápida com Nanoshields

Nanoshields

Introdução

A eletrônica maker popularizou o uso de placas expansoras, geralmente conhecidas como shields. Na área de prototipação eletrônica, eles tornaram possível o desenvolvimento de projetos rápidos, por vezes utilizados até mesmo para uso em provas de conceitos. Houve então a necessidade de robustez em muitos projetos, e isso levou ao surgimento de shields mais adequados a ambientes mais exigentes.

Os Nanoshields são um sistema de eletrônica modular que podem ser utilizados para prototipagem rápida de um produto. Utilizando-os teremos como vantagem a eliminação de fios e a minimização de tarefas como soldas e fixação de componentes, além de tornarmos o projeto mais elegante, compacto e robusto.

Neste artigo iremos realizar uma simples demonstração do uso de um nanoshield com um relé integrado conectado à placa base Aster da Toradex, e chavearemos o relé através de uma GPIO do computador em módulo Colibri iMX6, também da Toradex.

Setup

A configuração de hardware utilizada neste artigo é o computador em módulo Colibri iMX6 DL IT + Aster Carrier Board junto com o Módulo Base Board + Módulo de Relay da Circuitar. A Aster foi escolhida por possuir headers pino-compatíveis com Arduino e, consequentemente, com os nanoshields. Veja nos GIFs abaixo a montagem do conjunto:

Nanoshields
Nanoshields
Nanoshields

Pode ser visto acima a facilidade em montar um setup básico para prototipagem. Agora iremos conectar uma lâmpada 110V no conector NA do relé.

Nanoshields

Software

Primeiro teremos que alterar a Device Tree para mudar a configuração de um pino do SODIMM.

Escolhendo o pino digital D5 para acionar o relé, temos com base no datasheet da Aster que este corresponde ao pino SODIMM 28 do nosso computador em módulo. Após verificar no datasheet do Colibri i.MX6 a qual GPIO este pino é associado, basta consultar este artigo para encontrar o número da GPIO no sistema de arquivos. No nosso caso é o número 9, guarde-o pois será utilizado futuramente para chavear a lâmpada.

Para iniciar as alterações, vamos clonar o repositório que contém o código fonte do Colibri i.MX6 do git da Toradex:

Primeiro devemos acessar o arquivo "imx6dl-pinfunc.h" em "linux-toradex/arch/arm/boot/dts/" e procurar por "GPIO1_IO09" para obter o nome do pino na Device Tree e qual PWM ele utiliza:

Sabendo que o PWM1 está sendo utilizando, vamos então desabilita-lo no arquivo "imx6dl-colibri-eval-v3.dts" no diretório "linux-toradex/arch/arm/boot/dts/" conforme abaixo:

Adicionaremos a função de GPIO, conforme encontrado acima, no nó "pinctrl_gpio_1: gpio-1" no arquivo "imx6qdl-colibri.dtsi" em "linux-toradex/arch/arm/boot/dts/" conforme abaixo:

Para compilar a nova Device Tree e o novo Kernel será necessário baixar uma toolchain, exportar algumas variáveis de ambiente e realizar os comandos make para compilar. Para mais informações desse processo, acessar este artigo. Após compilar, será gerado um arquivo chamado "uImage", referente ao kernel, e outro chamado "imx6dl-colibri-eval-v3.dtb", referente à Device Tree.

O próximo passo é gerar um cartão SD com uma imagem padrão da Toradex. Para isso basta baixar a imagem mais recente deste site referente ao seu módulo e atualizar o módulo utilizando o shellscript "update.sh" presente dentro das imagens. Para mais informações sobre esse passo, acessar o artigo referente ao módulo que está utilizando. No nosso caso, estaremos utilizando este, pois o mesmo fala sobre o Colibri iMX6.

Após o cartão SD ser gerado, basta substituir os arquivos compilados com os arquivos gerados. No meu caso, utilizei os seguintes comandos:

Iremos então inserir o cartão SD na placa base Aster, alimentá-la e pressionar qualquer tecla para parar o U-Boot, então executaremos os seguintes comandos para atualizar o módulo por completo:

Caso tenha dúvidas em relação ao passo acima, informações mais detalhadas encontram-se aqui.

Testando o funcionamento

Algo interessante de se saber é que no Linux basicamente tudo é arquivo. Para GPIO isso não é diferente, então para chavearmos o relé iremos basicamente escrever em alguns arquivos da seguinte forma.

Escreveremos o número da GPIO selecionada no arquivo "export" no diretório "/sys/class/gpio/":

Configuraremos agora a GPIO como uma saída escrevendo no arquivo "direction" no diretório "/sys/class/gpio/gpio9/":

Chavearemos o relé escrevendo os níveis lógicos 1 e 0 no arquivo "value" no diretório "/sys/class/gpio/gpio9/":

Abaixo um vídeo de demonstração do funcionamento:

Conclusão

Como pode ser visto, a facilidade na montagem do hardware realmente é bem alta, além de ganhar muito tempo não soldando e colocando cabos. O produto em si fica bem compacto e bonito. A Circuitar disponibiliza diversos outros módulos mais complexos e que facilitam muito a prototipagem. É interessante dizer que para quem tem interesse em aprender, pode utilizar os mesmos módulos com um Arduino por causa da pino compatibilidade.

A única parte que requer bastante conhecimento é em relação ao software em si. A configuração da Device Tree é um pouco complexa, dependendo dos periféricos utilizados isso vai requerer bibliotecas e drivers específicos. A maioria dos projetos de Linux embarcado requer este conhecimento, mas após um estudo sobre o assunto, as configurações acabam se tornando fáceis e o conhecimento adquirido será de ótima ajuda no mundo de sistemas embarcados.

Saiba mais

Editorial: Movimento Maker no Brasil, seu impacto para sistemas eletrônicos

Totenboard - Shield Open Hardware para o kit STM32F0Discovery

Raspberry Pi - Comunicação Serial (UART) entre a Raspberry Pi e Arduino em Python e Wiring

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Linux Embarcado » Prototipagem rápida com Nanoshields
Comentários:
Notificações
Notificar
guest
2 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Francis David Contato@fdavid.com.br
Francis David
22/01/2018 07:24

Eu sou fã dos nanoshields, sempre que posso uso em meus projetos.

Giovanni Bauermeister
Membro
16/01/2018 11:50

Muito legal o artigo Daniel! Bem prático. Interessante é que o desenvolvedor pode, posteriormente, se basear nas plataformas open hardware, no caso a Aster e o módulo relé, e desenvolver sua própria placa base customizada.

Talvez você goste:

Séries

Menu

WEBINAR
 
NVIDIA JETSON – A Inteligência Artificial na palma de sua mão

Data: 08/07 às 14:00h Apoio: Arrow | NVIDIA
 
INSCREVA-SE AGORA »



 
close-link

WEBINAR
 
Redes Mesh para Monitoramento
e Controle de Sensores

Data: 15/07 às 14:00h Apoio: Artimar| Microchip| Tecsus
 
INSCREVA-SE AGORA »



 
close-link