Trabalhando com Python e Linux no Intel Galileo Gen 2 12

No primeiro artigo sobre o Intel Galileo Gen 2 mostramos as principais características dessa placa e como realizar um teste básico de funcionamento carregando um dos exemplos da IDE customizada do Galileo. Hoje faremos um pequeno tutorial de aplicação do Linux no Intel Galileo.

Intel_Galileo_LED

Além de funcionar normalmente como um Arduino, podemos também utilizar o slot microSD para carregar o Linux no Intel Galileo e fazer com esses dois ambientes troquem informações entre si. Vamos mostrar isso executando um pequeno script em Python que vai enviar dados para o serial monitor da IDE, e também um programa do Arduino que vai ler as informações de um arquivo texto do cartão microSD por meio de comandos enviados para o Linux.

Instalação do Linux no cartão microSD

Faça o download da imagem Linux para o Galileo, acessando este link. Na página de downloads, clique em SD-Card Linux Image:

Download Linux

Providencie um cartão microSD com capacidade de pelo menos 1 GB. Descompacte o arquivo e coloque toda a estrutura da pasta image-full-galileo na raiz do cartão SD, que ficará assim:

Arquivos - Linux

Desligue o Galileo (desconectando a fonte externa e também o cabo usb), coloque o cartão no slot microSD e ligue novamente a placa. Aguarde alguns minutos até que o Linux seja carregado, observando a atividade do led SD, à direita do conector USB, que pisca enquanto o cartão está sendo acessado.

Acessando o Linux através da rede Ethernet

Para acessar o Linux no Intel Galileo através da rede, precisamos primeiro descobrir o endereço IP. Conecte um cabo de rede na porta Ethernet, abra a IDE e carregue o programa abaixo:

Esse programa se conecta ao Linux através dos comandos system(), e retorna, no serial monitor, as configurações de rede e o endereço IP do Galileo, destacado em vermelho na imagem abaixo:

Serial Monitor - IP

Com o endereço IP, podemos agora acessar o Linux utilizando o PuTTY (download), que cria uma conexão com o sistema operacional utilizando SSH ou Telnet. Na tela do PuTTY, coloque o endereço IP do Galileo, mantenha a porta com o valor 23, selecione TELNET e clique em Open.

PuTTY

Após a conexão, você terá uma tela de terminal onde pode rodar scripts em Python, editar, criar, renomear e excluir arquivos, etc.

Terminal PuTTY

Executando scripts em Python a partir do Arduino

Nesse primeiro exemplo vamos criar um program em Python que vai acionar alternadamente leds ligados às portas 6 e 7 do Galileo, e enviar para o serial monitor da IDE do Arduino as informações sobre o estado desses leds. O circuito é composto por 2 leds e 2 resistores de 330 ohms:

Circuito Galileo Python

Crie na raiz do cartão SD um arquivo chamado teste_galileo.py (tudo em minúsculas) e coloque dentro dele o código abaixo. Recomendamos utilizar o programa Notepad++, selecionando o caracter de fim de linha UNIX/OSX no menu EDIT => EOL Conversion:

Vamos agora executar esse programa em Python à partir do Arduino, carregando este programa na IDE:

Esse programa envia um comando ao Linux para executar o programa teste_galileo.py, e enviar as mensagens para a serial, assim podemos visualizá-las no serial monitor:

Serial Monitor Teste Galileo

Podemos usar o system() também para efetuar a leitura de um arquivo texto gravado no cartão SD. Para isso, crie um arquivo texto qualquer na raiz do cartão, e carregue o seguinte programa no Arduino:

O princípio de funcionamento é o mesmo do programa anterior. Utilizamos o system() para executar o comando CAT do Unix (usado para exibir o conteúdo de arquivos), e enviamos o resultado para a serial.

Gostou? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo) e visite nossa loja FILIPEFLOP!

Posts Relacionados

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

12 Comentários

  1. Olá, parabéns pela iniciativa.
    Sou inciante em trabalhar com o Galileo e tentei refazer o tutorial.
    No meu caso não deu certo a etapa de rodar o código em python, apesar que não entendi muito bem a parte “selecionando o caracter de fim de linha UNIX/OSX no menu EDIT => EOL Conversion:”
    No meu caso, apenas salvei o arquivo .py na raiz do cartão e continuei o tutorial. Será que foi este o problema?
    Outra dúvida, existe outra maneira de executar códigos em python no Galileo utilizando o windows?
    Aguardo.
    Abraço.

    1. Oi Ricardo,

      Pode ser que seja esse o problema. Essa seleção do caracter de fim de linha está no Notepad++, que você pode baixar neste link: https://notepad-plus-plus.org/

      Quanto ao Windows, não temos essa informações. Nos nossos testes utilizamos a imagem Linux para o Galileo.

      Abraço e obrigado !

      Adilson – Equipe FILIPEFLOP

  2. Eu conseguir fazer o boot pelo cartão SD corretamente, testando se um sketch padrão permanecia após desconetar a energia. Ao ligar a energia na placa o sketch funcionou certinho.

    Na instrução “Conecte um cabo de rede na porta Ethernet, abra a IDE e carregue o programa abaixo:” a outra ponta do cabo de rede deve estar conectada onde? Modem? Roteador? PC? Tentei todas as formas mas tudo o que consegui no terminal foram vários retângulos sem espaços. Achei que fosse um problema no baudrate mas está igual o da imagem do tutorial. O que estou fazendo de errado?

    1. Uma no Galileo e outra no seu PC, também deve conectar o cabo USB da mesma forma.
      Se você fez isso e não deu certo, pode ser que seu cabo de rede esteja danificado. Verifique também se seu cado está na configuração crossover ou direto.

  3. Comprei essa placa faz um bom tempo, ela tem um problema sério quando tentamos fazer um upload de um sketch qualquer.. “permission denied”.. “no such file or directory” ” timer out” etc…
    Até hoje a Intel (em seu fórum dedicado aos Makers) não foi capaz sequer de explicar a raiz do problema. A única solução quando trocar de porta USB não dá certo é reiniciar o PC oque torna uma tarefa muito chata a toda vez que precisamos descarregar um código, fora esse problemão, ainda temos diversas incompatibilidades com bibliotecas desenvolvidas para Arduíno AVR e Galileo possui um i586 soc 400MHz.
    Apenas indicam usar a versão 1.6.0 porém não soluciona esse problema de falhas em Uploads.
    Sensores de Ultra som, ou sensores que dependem de uma REF de tensão externa.. como o Acelerômetro MMA7361 costumam dar trabalho, usar o I2c também entre outras bibliotecas que precisam ser modificadas para que o código compile em Galileo.
    Quanto a usá-la para projetos de automação via rede até vale a pena, por ter uma porta ethernet já inclusa e um barramento mini PCi express se quiser utilizar um módulo WiFi (Ou qualquer outro mini PCi), no momento uso o N6235.
    Mais são tantas as dificuldades envolvidas com essa placa que usar um simples Arduíno se torna muito favorável, fora o suporte de uma vasta quantidade de Bibliotecas e fóruns dedicados pra Arduíno.
    Acho que essa placa nasceu morta assim como Intel Edison que apresenta problemas semelhantes infelizmente. Caso a Intel não resolva os problemas mais graves ou algum desenvolvedor voluntário, não vejo um futuro promissor para as placas da Intel com “Internet das coisas”.

  4. Olá, sei que o post já é antigo, mas recentemente estou trabalhando em um projeto com a gen2 e me deparei com uma pedra no caminho. Qual é o mapeamento das portas físicas para as portas gpio que escrevemos nos arquivos do Sysfs? Pesquisei em vários sites e no forum da intel, mas cada lugar tem uma tabela e nenhum que achei funcionava com o mapeamento que indicavam. O único que funcionou foi o exemplo daqui. Ficaria muito agradecido se o autor pudesse me indicar a referencia para o mapeamento usado no artigo. Desde já agradeço

  5. Olá, Boa tarde,

    Baixei o SD-Card linux image, porém ele não é reconhecido (sistema operacional Windows 10), o arquivo apenas será reconhecido em um sistema Linux? Quais outras alternativas?

    1. Windows 7

    2. ops. pra acessar os arquivos só em alguma distribuição Linux mesmo.. ou no próprio Galileo usando um terminal como o Putty por exemplo.. via ssh… ou se tiver o cabo FTDI (Atenção ao modelo pois existe dois.. de diferentes níveis de tensão de trabalho, ver no manual ou no fórum da Intel) ..

      Usando comandos pelo terminal você acessa as pastas no Galileo .. faz downloads.. atualizações.. etc.. óbvio muita coisa é limitada..

    3. Caso tenha dificuldades com o download copia o arquivo binário que a compilação da IDE gera na pasta TEMP do seu sistema operacional e cola na pasta sketch.algumacoisa do seu Galileo e reinicia o mesmo que vai rodar o código.

  6. Bom dia, quando fecho o Putty perco a conexão com os leds, como resolver esse problema ?

Trackbacks and Pingbacks

  1. […] Trabalhando com Linux e Python no Intel Galileo Gen2 – Mostra como instalar o sistema Linux em cartão para usar Python com a Galileo Gen2. […]