Tutoriais

Este é o seu guia de construção do robô “Jabuti”. Siga os tutoriais para construção de cada parte do projeto.

Iniciaremos com a instalação do sistema operacional na placa Raspberry Pi.

Tutorial 1 – Instalando a Raspberry Pi – neste tutorial iremos instalar o sistema operacional em um cartão de memória vazio.

Tutorial 2 – Instalando os pacotes adicionais – após a instalação do sistema operacional, iremos instalar todos os pacotes adicionais para o funcionamento do projeto.

Tutorial 3 – Configurando a interface wi-fi como ponto de acesso – realizaremos a configuração da interface de rede wi-fi USB para funcionar como ponto de acesso e permitir que as pessoas conectem no nosso Jabuti.

Tutorial 4 – Instalando o banco de dados – instalaremos o banco de dados mysql necessário para persistência dos dados do sistema.

Tutorial 5 – Instalando os arquivos do sistema – copiaremos os arquivos do sistema e realizaremos a configuração inicial.

Tutorial 6 – Construindo e instalando a ponte-H – neste tutorial construiremos e instalaremos a ponte-h para controle dos motores do Jabuti.

Tutorial 7 – Raspberry Pi GPIO – será realizada as ligações entre a porta geral de entrada e saída da raspberry pi e a ponte-H. Serão realizados testes também.

Tutorial 8 – Escolhendo a versão – aqui iremos escolher entre duas versões oficiais do projeto: Jabuti Edu em plástico e Jabuti Edu em MDF.

Tutorial 8.a – Montando a Jabuti Edu em plástico – esta versão utiliza uma impressora 3D para a confecção das peças.

Tutorial 8.b – Montando a Jabuti Edu em MDF – esta versão utiliza uma fresadora CNC, corte à laser, ou mesmo ferramentas manuais para a confecção das peças.

Publicidade

Tutorial 3 – Configurando o banco de dados MySQL

No tutorial anterior, além de outras coisas, instalamos o servidor de banco de dados mySQL e a ferramenta phpMyAdmin dentro da nossa placa raspberry pi. Neste tutorial vamos criar um banco de dados vazio dentro do mySQL para depois carregar os objetos e dados que a Jabuti Edu necessita.

NOTA: Neste tutorial, assumimos que a sua placa raspberry Pi está conectada na sua rede local, com o endereço IP 192.168.1.11 que pode ser acessado de outro computador na rede local através de um navegador. Adapte o seu endereço IP para aquele que a sua raspberry pegou via DHPC. Esse endereço 192.168.1.11 foi obtido no tutorial 1 e ele pode ser diferente na sua rede. (se você não lembra, veja aqui)

Acompanhe o passo a passo então:

1 – Acessando o phpMYAdmin da nossa Jabuti:

Abra um navegador e aponte para o endereço da ferramenta “phpMyAdmin” da nossa JabuiEdu:

http://192.168.1.11/phpmyadmin/

Será apresentada a tela de login do phpMyAdmin. Informamos as seguintes credenciais:

Username: root
Password: r@spberry

Após efetuar o login, a tela abaixo será apresentada:

Login no phpMyAdmin

Login no phpMyAdmin

2 – Criando um banco de dados vazio

Após acessar a ferramenta phpMyAdmin, vamos criar um banco de dados vazio.

Para isso, aponte para o menu indicado abaixo: Databases

Tela para criar banco de dados no phpMyAdmin

Tela para criar banco de dados no phpMyAdmin

 

Uma tela para criação de um banco de dados será apresentada. Vamos criar um banco de dados chamado “jabuti”. Para isso, insira a palavra “jabuti” na caixa de texto “Create new database” e então pressione o botão “create“. Veja:

Criando banco de dados "jabuti"

Criando banco de dados “jabuti”

Após a criação do banco, notamos que ele aparece no menu lateral, e então selecionamos esse banco de dados novo clicando com o mouse no item “jabuti” que aparece no menu esquerdo. Veja:

selectdatabase-jabuti

Será apresentada a tela correspondente ao banco de dados “jabuti”. Esse banco de dados está vazio.

banco de dados "jabuti" vazio

banco de dados “jabuti” vazio

 

No próximo passo vamos carregar esse banco com informações.

3 – Alimentando o novo banco de dados

Após criar o banco de dados “jabuti” precisamos alimentar esse banco de dados com os objetos e dados necessários para o funcionamento dos sistemas da JabutiEdu.

No passo anterior selecionamos o banco de dados “jabuti” como o banco de dados de trabalho, e agora vamos carregar informações neste banco de dados através da importação de um arquivo que contém todos os objetos necessários.

Primeiramente baixe o arquivo “jabuti.sql” no link abaixo:

jabuti.sql

Depois de salvar o arquivo, vamos importa-lo no banco de dados “jabuti”. Para isso, no phpMyAdmin clique na aba “Import”. Veja:

db_jabuti_importSelecione o arquivo “jabuti.sql” através do botão “browser”:

db_jabuti_import_jabuti

 

Depois de selecionar o arquivo “jabuti.sql” pressione o botão “Go”. O menu esquerdo será atualizado com os dados importados:

jabuti-import-concluido

Pronto! Agora temos um banco de dados “jabuti” instalado no mySQL.

No próximo tutorial vamos demonstrar como instalar o sistema de controle de atividades.

Tutorial Opcional – Configurando a interface wi-fi como ponto de acesso

Uma caracteristica que facilita o uso do projeto é permitir que todas as pessoas possam conectar no Jabuti.

Tanto professores quanto alunos poderão acessar o sistema instalado no Jabuti, apenas realizando a conexão ao ponto de acesso que o próprio Jabuti gera.

O Jabuti gera um ponto de acesso onde todos podem conectar.

O Jabuti gera um ponto de acesso onde todos podem conectar.

Para atingir esse objetivo, precisamos realizar algumas configurações. Vamos à elas.

Descobrindo qual a sua interface de rede wi-fi

Antes de começar, precisamos descobrir qual o modelo de interface wi-fi você possui. Para isso iremos executar o comando “lsusb” no termnal.

#lsusb

O retorno deste comando é uma lista de dispositivos conectados nas portas USB da placa. No nosso caso temos o dispositivo de rede wi-fi com o chip controlador da marca Realtek.

raspberry-terminal-lsusb

Interface Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter

Sabemos que esse chip controlador da interface wi-fi — SUPORTA — modo AP. Mais informações no link abaixo:

Turn Your Raspberry Pi Into a WiFi Hotspot with Edimax Nano USB EW-7811Un (RTL8188CUS chipset)

Esse chip controlador é muito comum no mercado, então vamos realizar a configuração deste chip, mas posteriormente contaremos com a colaboração dos leitores par adicionar a configuração de mais modelos de interface wi-fi USB.

Por hora, precisamos executar a lista de comandos abaixo para baixar os binários necessários para configurar esse chip. Isso é necessário porque a ferramenta “hostapd” que usaremos não tras os binários referentes ao nosso modelo de interface.

A lista de comandos é:

# wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zip
# unzip hostapd.zip 
# sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.bak
# sudo mv hostapd /usr/sbin/hostapd.edimax 
# sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd 
# sudo chown root.root /usr/sbin/hostapd 
# sudo chmod 755 /usr/sbin/hostapd

Uma dica é executar os comandos um a um e verificar se não emitem erros. Abaixo o retorno da nossa execução:

Execução dos comandos sem erros

Execução dos comandos sem erros

Configurando o arquivo /etc/default/udhcpd

Vamos editar o arquivo /etc/default/udhcpd. Para isso execute o comando abaixo: Antes saiba que para salvar o arquivo texto você precisará pressionar a tecla Control + a tecla “o” e para sair do editor você precisa pressionar a tecla Control + a tecla “x”.

#sudo nano /etc/default/udhcpd

No arquivo, troque a linha:

DHCPD_ENABLED=”no”

por

# DHCPD_ENABLED=”no”

A inclusão do simbolo “#” indica que a linha de configuração deve ser ignorada. Comentando essa linha o servidor dhcp será ativado.

Salve o arquivo pressionando Control + “o”, pressione enter para aceitar o nome do arquivo e retorne ao terminal pressionando Control + “x”

Aproveite e crie o arquivo /var/lib/misc/udhcpd.leases executando o comando abaixo:

# sudo nano /var/lib/misc/udhcpd.leases

Salve o arquivo mesmo sem conteúdo.

Configurando o arquivo /etc/udhcpd.conf

Primeiro vamos efetuar um backup do arquivo com o comando:

# sudo cp /etc/udhcpd.conf /etc/udhcpd.conf.original

Agora vamos editar o arquivo

# sudo nano /etc/udhcpd.conf

Apague todo conteúdo do arquivo pressionando “Control + k” até que todo conteúdo tenha sido deletado. Depois copie e cole as linhas abaixo:

start 192.168.20.20
end 192.168.20.100
interface wlan0
remaining yes
max_leases 200

opt dns 192.168.20.1
opt subnet 255.255.255.0
opt router 192.168.20.1
opt lease 864000
opt domain local

Salve o arquivo “Control+o” e saia para o console “Control + x”.

Configurando o arquivo /etc/network/interfaces

Agora vamos configurar as interfaces de rede editando o arquivo /etc/network/interfaces. Alterando esse arquivo iremos informar um endereço IP fixo para a interface de rede wi-fi. Execute o comando:

# sudo nano /etc/network/interfaces

O conteúdo padrão deste arquivo é o apresentado abaixo:

Conteudo padrão do arquivo /etc/network/interfaces

Conteudo padrão do arquivo /etc/network/interfaces

Comentaremos as linhas referente a configuração da interface wi-fi. Acrecentamos “#” às linhas:

# allow-hotplug wlan0
# iface wlan0 inet manual
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

Adicionamos agora a configuração com endereço IP estárico para a interface de rede wi-fi. Usaremos a rede 192.168.2o.x. e nosso Jabuti será o 192.168.20.1

iface wlan0 inet static
 address 192.168.20.1
 netmask 255.255.255.0

O arquivo deverá ficar como mostrado na imagem abaixo:

Arquivo alterado

Arquivo alterado

Salve o arquivo “Control+o” e saia para o console “Control + x”.

Configurando o arquivo /etc/hostapd/hostapd.conf

Vamos configurar o arquivo /etc/hostapd/hostapd.conf e informar ao sistema as configurações do nosso ponto de acesso. Nesse arquivo será configurado o nome do ponto de acesso, o tipo de segurança de acesso e outros detalhes. Caso o arquivo esteja em branco (vazio) não se preocupe, pois listamos o conteúdo dele abaixo.

Execute:

#sudo nano /etc/hostapd/hostapd.conf

Copie e cole as linhas abaixo para dentro do editor. Para copiar usr o control+c normalmente, mas para colar utilize control+shift+v.

interface=wlan0
#driver=nl80211 #descomentar no caso de interfaces não realtek.
driver=rtl871xdrv
ssid=JABUTI_EDU_SALA01
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=jabutiedu001
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Note as linhas “ssid” e “wpa_passphrase”. Elas indicam o nome do ponto de acesso e a senha para acessá-lo. Copie e cole o conteudo acima no arquivo e altere essas duas linhas caso deseje.

Conteúdo do arquivo /etc/hostapd/hostapd.conf

Conteúdo do arquivo /etc/hostapd/hostapd.conf

Salve o arquivo “Control+o” e saia para o console “Control + x”.

Configurando do arquivo /etc/default/hostapd

Vamos configurar um ultimo arquivo. Execute o comando:

# sudo nano /etc/default/hostapd

descomente a linha:

#DAEMON_CONF=””

apague o “#” e deixe-a assim:

DAEMON_CONF=”/etc/hostapd/hostapd.conf”

Arquivo /etc/default/hostapd alterado

Arquivo /etc/default/hostapd alterado

Salve o arquivo “Control+o” e saia para o console “Control + x”.

Testando as configurações

Já realizamos todas as configurações e agora precisamos testá-las.vamos reiniciar a placa com o comando:

# sudo reboot

Depois do reboot, vamos executar os seguintes comandos:

# sudo service hostapd start
# sudo service udhcpd start

Se tudo correu bem, a rede servida pelo Jabuti já deve aparecer na lista de redes wi-fi disponível.

Ponto de acesso configurado na Raspberry Pi

Ponto de acesso configurado na Raspberry Pi

Ao realizar a conexão ao ponto de acesso, informamos a senha “jabutiedu001” e então ganhamos o endereço 192.168.20.24

Após realizar a conexão, ganhamos o endereço 192.168.20.24

Após realizar a conexão, ganhamos o endereço 192.168.20.24

 

Falta somente testar o acesso ao servidor PHP usando o browser e apontando para o endereço do Jabuti – http://192.168.20.1

Note que o endereço do servidor é o 192.168.20.1

Note que o endereço do servidor é o 192.168.20.1

 

Essa etapa terminou. Caso você receba mensagem de erro ou não consiga fazer o Ponto de Acesso, os seguintes comandos pode ajudar a diagnosticar o problema.

Para testar a configuração do software hostadp, use o comando abaixo. Se houver problemas, uma mensagem será apresentada.

# sudo hostapd -dd /etc/hostapd/hostapd.conf

Caso uma lista com um monte de informação seja apresentada, a configuração correu bem.

Para diagnosticar o serviço udhcpd use o comando abaixo para visualizar o log do sistema, que é onde o serviço registra erros:

# tail -f /var/log/syslog

Vamos agora para o tutorial 4 onde instalaremos o banco de dados do sistema.

 

 

Tutorial 2 – Instalando os pacotes adicionais

Neste tutorial vamos instalar e pré-configurar os pacotes de software adicionais para o funcionamento do Jabuti.

Antes, vamos expandir o sistema de arquivos, pois a partição de dados não ocupa todo cartão de memória e possui somente 300Mbytes de espaço livre.

Para expandir o sistema de arquivos usaremos o comando abaixo:

#sudo raspi-config

#sudo raspi-config

#sudo raspi-config

Selecionamos a primeira opção (1-Expand Filesystem) e após a conclusão o sistema de arquivos ocupará todo cartão de memória.

raspberry-config-expand

Reinicie o sistema com o comando:

#sudo reboot

Após a reinicialização, teremos 1.2 Gigabytes disponíveis para uso. Usamos o comando “df” para visualizar o espaço no sistema de arquivos.

#df -h

raspberry-disksize

Atualizando o sistema

Vamos iniciar atualizando o repositório de pacotes através do comando:

#sudo apt-get update

Aguarde a execução do update.

sudo apt-get update

sudo apt-get update

Agora vamos realizar o upgrade de todos os pacotes. Isso significa atualizar todo o sistema com as ultimas versões de todos os pacotes que sofreram atualização desde que a imagem foi gerada. Use o comando abaixo:

#sudo apt-get upgrade

Você deve aceitar as atualizações e aguardar. Após a execução deste comando execute o próximo:

#sudo apt-get dist-upgrade

Aceite novamente a atualização e aguarde a execução. Esta segunda atualização costuma demorar mais. No nosso caso foram baixados 225 Mbytes de arquivos de atualização e demorou cerca de uma hora para terminar.

Agora estamos prontos para instalar os pacotes adicionais do sistema. Vamos começar pelo mysql.

#sudo apt-get install mysql-server

Você deve aceitar o download de 90Mb de arquivos. Depois de concluído o download, lhe será solicitada uma senha de administração do servidor. Nós utilizamos “r@spberry” (sem aspas). Digite duas vezes.

raspberry-install-mysql

Aguarde a instalação de todos os pacotes relacionados ao servidor mysql.

Agora vamos instalar o servidor web Apache e o interpretador PHP. Use o comando:

#sudo apt-get install php5

Aceite a instalação dos pacotes dependentes com o tamanho de aproximadamente 22 Mbytes e aguarde a instalação.

O próximo passo é instalar o gerenciador de banco de dados phpmyadmin.

#sudo apt-get install phpmyadmin

Aceite o download e aguarde. Uma tela de escolha será apresentada. Selecione a opção “apache2” e avance.

raspberry-install-phpmyadmin

Após a execução do script de instalação, será apresentada uma tela onde a escolha sobre a configuração do phpmyadmin deve ser a opção “yes”.

raspberry-install-phpmyadmin-configure

Depois informe a senha do banco de dados para que a aplicação phpmyadmin possa conectar no mysql. Utilizamos a senha “r@spberry” que usamos para instalar o banco de dados.

raspberry-install-phpmyadmin-pass

Depois informe uma senha para o usuario da aplicação. Utilizamos “1qaz” informando essa senha nas duas próximas telas.

Pronto, o banco de dados, o servidor PHP e a ferramenta de administração do banco de dados estão instaladas com sucesso! Para testar aponte o navegador da sua máquina para o endereço ip da placa. Nosso caso o endereço é http://192.168.1.11.

Se tudo correu bem, teremos o servidor web respondendo bem

Se tudo correu bem, teremos o servidor web respondendo bem

Vamos agora instalar mais alguns pacotes necessários. Execute os comandos:

#sudo apt-get install hostapd udhcpd

Estamos pronto para o tutorial número 3 onde vamos criar um banco de dados e depois alimentar este banco de dados com as tabelas e dados necessários.

Acesse o link abaixo para continuar:

tutorial 3 – Configurando o banco de dados mysql

Tutorial 1 – Instalando a Raspberry Pi

Antes de iniciar a construção da parte mecânica do projeto, vamos preparar um cartão SD com a imagem do sistema operacional.

Baixando a imagem do cartão SD

Iniciamos recuperando uma imagem do sistema operacional já instalado. Utilizamos neste projeto a distribuição Raspbian que pode ser obtida aqui:

Downloads – Raspberry Pi

Baixe a ultima imagem do arquivo wheezy-raspbian.zip.

downloadimagem-raspbian

Depois de baixar o arquivo, descompacte em alguma pasta. O arquivo resultante é uma cópia exata do conteúdo do cartão SD usado para instalar o sistema, portanto temos que pegar um cartão SD vazio e gravar essa imagem nele.

Vamos tratar do procedimento para Linux. Se você usa Windows ™, existem diversos tutoriais na internet ensinando esse procedimento para esse tipo de sistema operacional. Se você gosta de hackear coisas, sugiro fortemente que passe a usar linux. É um mundo destinado à aqueles que gostam de criar e modificar coisas e nos disponibiliza um monte de ferramentas livres  e fantásticas!

Preparando o cartão SD

Para nosso protótipo, usaremos um cartão SD de 4 Gigabytes. Usaremos um microSD e um adaptador de tamanho.

sdcard 4gbytes classe 4

Conecte o cartão de memória no seu PC. Você pode usar o leitor embutido (se houver um) ou um leitor externo de cartão SD, tanto faz. O próximo passo é rodar alguns comandos para descobrir o caminho do dispositivo de armazenamento no sistema.

Encontrando o caminho do dispositivo

Para carregar a imagem no cartão, precisamos descobrir o seu caminho na arvore de dispositivos. Para isso utilizamos o comando “sudo fdisk -l” e então procuramos a informação no retorno do comando. Veja:

terminal-fdisk

Portanto, o caminho “/dev/sdb” é o caminho do nosso cartão de memória. Os dispositivos sda e sdc são respectivamente o SSD principal da máquina e o disco externo de 1 Tera.

Carregando o cartão de memória

AVISO – O procedimento abaixo, se executado de forma incorreta pode danificar permanentemente os dados contidos nos seus dispositivos de armazenamento, portanto somente os execute se tiver certeza do que está fazendo. Se o caminho do dispositivo errado for usado, todo conteúdo (dados) do dispositivo serão apagados e sobrepostos, sem chance de recuperação.

Depois de descompactar a imagem do sistema operacional, teremos um arquivo com a extensão “img” com 3 Gbytes de tamanho.Esse arquivo representa uma cópia exata de cada setor físico do cartão. Ao carregarmos o arquivo de imagem no cartão, todas as partições, tabelas de alocação, arquivos e atributos do sistema de arquivo são  transferidos para o novo cartão. É como uma “xerox” do cartão original. Esse é o jeito mais fácil de instalar o sistema, pois na verdade ele já está instalado e pré-configurado.

Usaremos um programa chamado “Disk Dupe” para colocar todo conteúdo do arquivo dentro do cartão, referenciando o seu caminho de dispositivo, no caso “/dev/sdb”.

A maioria das distribuições linux já vem com o comando “dd” instalado. Para usar, use a linha de comando abaixo:

terminal-dd

# sudo dd if=2014-01-07-wheezy-raspbian.img of=/dev/sdb

onde “2014-01-07-wheezy-raspbian.img” é o arquivo de imagem e “/dev/sdb” é o caminho do seu cartão de memória.

Note que o comando demora para responder. Isso é normal, pois todos os dados do arquivo de imagem estão sendo transferidos para o cartão. Aguarde pacientemente a conclusão da operação.

terminal-dd-completo

A cópia completa demorou 21 minutos e 36 segundos. O resultado pode ser conferido através do comando fdisk no PC. Note as duas partições no cartão:

terminal-fdisk-depois

Neste momento, o cartão de memória possui duas partições, uma de boot menor e outra maior contendo o sistema de arquivos principal e o sistema operacional. Hora de colocar o cartão na Raspberry Pi.

raspberry-cartao

Raspberry Pi cartão SD e interface wi-fi USB

Note que conectamos o cartão SD no slot da placa através do adaptador.

Preparamos a placa com todas as conexões básicas. Cabo de rede ethernet, teclado USB, interface wi-fi USB (usaremos depois) e cabo de vídeo composto.

Placa com as conexões básicas.

Placa com as conexões básicas.

Se tudo correu bem, ao ligar a placa, o boot do sistema será apresentado.

raspberry-boot

Uma tela de configuração será apresentada. Se você usou um cartão de memória maior que 4Gbytes, use a opção “expand Filesystem”, e depois realize um “reboot” da sua rasp. Caso contrário, feche o programa selecionando a opção “Finish”.

raspberry-config

A primeira coisa que faremos será descobrir o endereço IP da placa de rede ethernet. Se você conectou o cabo no seu roteador pessoal, provavelmente este entregou um endereço IP para a placa. Rodamos o comando “ifconfig” para descobrir esse endereço e partimos para a conexão SSH. A configuração da placa através da rede é mais prática.

raspberry-ifconfig

O endereço na nossa placa na rede interna é 192.168.1.11, então através de um computador na mesma rede, abrimos um terminal e uma sessão ssh para a placa. (Caso você só tenha windows ™,  use o programa Putty para acessar a rasp via rede. Baixe o putty aqui ).

O comando para acessar a rasp via ssh é:

#ssh pi@192.168.1.11

onde “192.168.1.11” é o endereço IP que a sua placa pegou na tua rede.

O usuario padrão é “pi” e a senha é “raspberry” (sem as aspas)

Conectamos na Rasp através da rede

Conectamos na Rasp através da rede

Neste momento, temos o sistema operacional instalado e pronto para receber os pacotes que usaremos no projeto. No próximo tutorial vamos aprender como instalar todos os pacotes necessários.

Acompanhe o tutorial 2 clicando aqui: