Projeto de Kiosk Interativo para a Beaglebone Black com Yocto - parte 1

projeto de kiosk interativo
Este post faz parte da série Projeto de Kiosk Interativo para a Beaglebone Black com Yocto. Leia também os outros posts da série:

Neste artigo veremos como desenvolver um Interactive Kiosk (projeto de Kiosk Interativo) para a BeagleBone Black com o Yocto Project. Se você não conhece o Yocto sugiro que dê uma lida no artigo BeagleBone Black + Yocto escrito pelo Henrique Rossi. Totens, Kiosks e Terminais de Auto-Atendimento, são exemplos de produtos que podem ser desenvolvidos a partir da solução proposta.

Esta solução é composta por dois tipos de atores: o web-kiosk e o kiosk-manager. O web-kiosk é o equipamento que será utilizado pelo usuário final, e sua interface além de possuir uma tela LCD conectada na porta HDMI, pode ter também teclado e mouse ou ser sensível ao toque (touchscreen).

O kiosk-manager irá gerenciar o conteúdo a ser exibido em todos os web-kiosks, porém a sua presença não é obrigatória, já que o web-kiosk pode funcionar como um equipamento stand-alone. Os equipamentos podem estar conectados entre si através de uma LAN ou pela internet.

A figura abaixo ilustra uma possível topologia utilizando esses atores:

 topologia

Nesta primeira parte vamos montar o ambiente de trabalho e gerar e testar a imagem do web-kiosk.

Montando o Ambiente de construção

Vamos criar os diretórios e baixar os fontes necessários:

Agora vamos configurar o ambiente para gerarmos os artefatos de software:

Adicione as duas linhas abaixo no arquivo ~/yocto/kiosk-build/conf/bblayers.conf  para a variável BBLAYERS:

Modifique e adicione as seguintes variáveis no arquivo ~/yocto/kiosk-build/conf/local.conf

Note que configuramos nossa machine como sendo a beaglebone (serve tanto para a white como a black), mudamos o diretório de download para podermos reutilizar os fontes baixados em outros projetos, usaremos o gerenciador de pacotes ipk (ele é mais indicado para sistemas embarcados porque não exige muitos recursos para funcionar) e vamos instalar na imagem todos os módulos do kernel gerados.

Se você já fez o tutorial do Henrique, você pode simplesmente atualizar as suas cópias locais dos repositórios (git pull origin <branch_name>), adicionar o repositório da meta-web-kiosk (git clone git://git.yoctoproject.org/meta-web-kiosk) e modificar os arquivos bblayers.conf e local.conf.

Veja que nesse caso, para criarmos a aplicação de Kiosk Interativo foi necessário adicionar apenas a camada meta-web-kiosk, que possui as receitas das aplicações necessárias e as imagens que irão compor a solução. E essa é uma das características mais vantajosas do Yocto. Como ele é organizado em meta-layers, que são camadas usadas para agrupar um determinado conjunto de receitas, elas podem ser integradas com diferentes camadas afim de prover diversas funcionalidades diferentes para o seu projeto. Além disso, as camadas podem ter propósitos específicos, como por exemplo suporte a arquiteturas de hardware, como é o caso da camada meta-ti que contém os BSPs (Board Support Packages) para algumas placas e arquiteturas da Texas Instruments.

Gerando a imagem do web-kiosk

Para gerar a imagem do web-kiosk rode o seguinte comando:

Esta é a configuração de build que eu utilizei:

Gravando a imagem do web-kiosk

Este procedimento é praticamente o mesmo utilizado no tutorial do Henrique mencionado no começo deste post. 

Para a gravação das imagens no microSD card, o mesmo deve ser particionado e formatado de acordo o padrão aceito pelo placa. Para isso foi criado um script, que pode ser obtido com os seguintes comandos:

Insira um microSD card no computador PC ou notebook (sistema host) e descubra qual o device node criado pelo sistema operacional. Tente um dos seguintes comandos:

Caso, por exemplo, o device node criado seja /dev/sdb, use o seguinte comando:

Assim que o processo de particionamento e formatação terminar, duas partições no microSD card são criadas:

  • boot (FAT32);
  • rootfs (ext4).

Execute a “montagem” dessas duas partições no sistema de arquivos do sistema host. Caso esse faça uso da distribuição Ubuntu, basta remover e inserir novamente o dispositivo no seu conector. Dado que, por exemplo, os pontos de montagem criados sejam /media/boot e /media/rootfs, as imagens geradas anteriormente são copiadas da seguinte forma paro o web-kiosk:

Testando a imagem

Remova o microSD do computador e insira-o na BBB, conecte-a a uma TV por um cabo HDMI, a um roteador pelo cabo ethernet e a um teclado e a um mouse através de um hub USB. Se quiser monitorar o processo de boot, você também pode conectar um cabo serial.

Depois de energizar a placa você terá as seguintes imagens na TV:

splash

yocto_page

É possível mudar a página inicial a ser exibida. Para isso conecte na console serial da BBB e digite o comando:

E este será o resultado:

embarcados_page

 

Projeto de Kiosk: O que vem por aí

Na segunda parte desta série sobre o projeto de kiosk interativo veremos como gerar a imagem do kiosk-manager e como configurar os atores para que conversem entre si.

Na terceira do projeto de kiosk interativo, veremos como customizar a imagem de acordo com as nossas necessidades.

Saiba mais

Embedded Linux Build Systems

Cozinhando com o Yocto Project

Desvendando Yocto Project – Primeiros passos

BeagleBone Black + Yocto

Beaglebone Black + Yocto Daisy (Versão 1.6)

Lançada Nova Versão 1.7 (dizzy) do Yocto Project

Raspberrypi + Yocto

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 2

Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 3

Beaglebone Black + Qt Embedded + Yocto – parte 1

Beaglebone Black + Qt Embedded + Yocto – parte 2

Beaglebone Black + Qt5 + Yocto - parte 1

Beaglebone Black + Qt5 + Yocto - parte 2

Raspberry pi + Qt5 + Yocto - parte 1

Raspberry pi + Qt5 + Yocto - parte 2

Referência

Apresentação que eu origem a esses artigos sobre o projeto de um kiosk interativo: Build Your Own Digital Signage Solution with Yocto Project no ELC 2013 San Francisco, feita por Nitin Kamble. 

Outros artigos da série

Projeto de Kiosk Interativo para a Beaglebone Black com Yocto - parte 2 >>
Este post faz da série Projeto de Kiosk Interativo para a Beaglebone Black com Yocto. Leia também os outros posts da série:
NEWSLETTER

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

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

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

Diego Sueiro
Formado em Engenharia de Controle e Automação pela UNIFEI e CEO do Embarcados, atualmente trabalho na Inglaterra com Desenvolvimento de Sistemas Linux Embarcado Real Time. Sou consultor e desenvolvedor de software para Sistemas Embarcados com vasta experiência em projetos com processadores de 8bits a 32bits, sistemas bare metal, RTOS, Linux Embarcado e Android Embarcado. Um apaixonado por Pink Floyd e Empreendedorismo.

15
Deixe um comentário

avatar
 
12 Comment threads
3 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
3 Comment authors
Henrique Santos FernandesDiego SueiroDaniel GrossiDesvendando Yocto Project - Primeiros passosLançada Nova Versão 1.8 (fido) do Yocto Project Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1 […]

trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1 […]

trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1 […]

trackback

[…] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1 […]

trackback

[...] você já fez o tutorial do Henrique ou tutorial: ”Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto”, você pode [...]

trackback

[...] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1 [...]

Henrique Santos Fernandes
Visitante
Henrique Santos Fernandes

Diego,

Primeiramente, ótimos artigos da série. Estou pensando em montar um!

Você conhece algum LCD touch ou um Touch externo que seja compatível e com preço acessível aqui no Brasil?
Obs: 17 a 19 polegadas

Obrigado.

Diego Sueiro
Visitante
Diego Sueiro

Olá Henrique,

Desculpe pela demora na resposta.
Estava na espera de um cliente me passar o contato do fornecedor.
Segue: https://www.playtix.com.br

Henrique Santos Fernandes
Visitante
Henrique Santos Fernandes

Sem problemas!

Muito Obrigado.

trackback

[...] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1 [...]

trackback

[...] na primeira e segunda partes da série como gerar, gravar e testar as imagens do web-kiosk e kiosk-manager na [...]

trackback

[...] Desenvolvendo um Kiosk Interativo para a Beaglebone Black com Yocto – parte 1 [...]