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 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:

Requisitos do sistema

Para que o seu Jabuti possa ser implementado, apresentamos um guia de requisitos, onde demonstraremos os materiais, hardware e software, que serão utilizados no projeto. O objetivo desta página é apresentar um checklist de itens que são necessários para que o projeto possa ser implementado.

Vamos precisar dos seguintes itens:

  1. Placa Raspberry Pi – modelo B;
  2. Interface de rede wi-fi USB – Precisamos de um modelo específico, que permita modo AP;
  3. Cartão SD de 4 Giga bytes, preferencialmente classe 4 ou 10.
  4. Imagem do sistema operacional – Baixamos e gravamos no SD card o sistema operacional Debian Wheezy;
  5. Instalação dos pacotes adicionais – Banco de dados Mysql, Apache, PHP e algumas ferramentas para configurar a nossa Rasp como Access Point;
  6. Arquivos de instalação do sistema de gerenciamento;
  7. Eletrônica adicional para construção do robô Jabuti Edu.

Abaixo descrevemos cada item dos requisitos e depois apresentamos um tutorial completo de configuração do sistema.

1 – Placa Raspberry PI modelo B.

A grande diferença entre o modelo A e B é que o Modelo B possui um controlador Ethernet e duas portas USB, enquanto que o Modelo A possui apenas uma porta USB e nenhuma porta de Ethernet.

Vamos utilizar uma interface de rede wi-fi USB, mas precisamos da porta ethernet para realizar as configurações, baixar pacotes e atualizações, portanto o modelo B é nossa melhor escolha.

Nosso projeto, utiliza apenas 5 pinos da GPIO, dois para o controle de cada motor e um pino adicional para o controle da caneta.

Os pinos utilizados para conexão com a placa da ponte-H é apresentado abaixo:

(incluir foto da ligação na GPIO aqui)

2 – Interface de rede wi-fi USB

A interface de rede wi-fi configurada como Access Point serve para facilitar as conexões das pessoas ao sistema. Essa facilidade acontece porque ao ligar o Jabuti  ele cria a própria a rede sem fio e permite que todos se conectem no dispositivo diretamente sem a necessidade de configuração de uma infraestrutura de rede adicional.

Para que essa funcionalidade seja possível, precisamos de uma interface de rede USB compatível com o modo AP, além de uma configuração especial para que essa interface de rede permita conexões dos usuários.

Utilizamos os tutoriais representados nos links abaixo para configurar nossa Rasp. Apresentamos nossa própria versão do tutorial de configuração, porém a leitura dos artigos abaixo ajudará a entender as limitações dos diversos modelos de interfaces Wi-Fi USB existentes.

RPI Wireless HotSpot

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

3 – Cartão SD de 4Gbytes

Em uma placa Raspberry Pi o sistema de arquivos principal e o sistema operacional são instalados em um cartão SD conectado na placa. Não é possível instalar o sistema operacional em um outro dispositivo (HD externo por exemplo).

No Projeto Jabuti Edu utilizamos um cartão de memória com capacidade de 4 Giga bytes de armazenamento.

Outro detalhe à ser observado é a velocidade do cartão SD, visto que todo sistema operacional e seu sistema de arquivo será armazenado neste cartão, quanto mais rápido ele conseguir trocar informações, melhor para o desempenho geral do sistema.

Utilizamos um cartão classe 4 pois este é o melhor custo-benefício entre velocidade de capacidade. Confira uma tabela de velocidade de cartões. Observe que quanto mais rápido o cartão for, mais caro também será.

Marks Operable Under Applications SD Memory Card
Speed Class 10 High Speed Bus I/F Full HD video recording
HD still consecutive recording
SD, miniSD, microSD
SDHC, miniSDHC, microSDHC
SDXC, microSDXC
6 4 Normal Bus I/F HD ~ Full HD video recording
2 SD video recording
UHS Speed Class 1 UHS-I Bus I/F
UHS-II Bus I/F
Full higher potential of recording real-time broadcasts and capturing large-size HD videos
(UHS Speed Class1 denotes a 10 MB/s minimum write speed)
SDHC UHS-I and UHS-II, SDXC UHS-I and UHS-II
3 Capable of recording 4K2K video
(UHS Speed Class 3 denotes 30 MB/s minimum write speed)

4 – Imagem do sistema operacional

Preferimos iniciar a instalação utilizando uma imagem pronta com o sistema Debian Wheezy (Raspbian) , que poderá ser baixada no link abaixo:

Downloads Raspberry Pi – Baixar a imagem atual do sistema Raspbian

Realizamos diversas customizações no sistema operacional que comentaremos nos tutoriais. Na sessão de Downloads será disponibilizada uma imagem do cartão SD do nosso protótipo.

 

5 – Instalação dos pacotes adicionais

Além do sistema operacional, utilizaremos diversos pacotes adicionais. A lista de pacotes adicionais será abordada em um tutorial específico.

Observe que uma conexão à internet via cabo será necessária para a instalação dos pacotes manualmente.

Caso você utilize a imagem do cartão SD que disponibilizamos, a conexão com a internet não é necessária.

 

6 – Arquivos de instalação do sistema de gerenciamento

Por fim, depois de instalar o sistema operacional, instalar e configurar os pacotes adicionais, chegou a hora de instalar o sistema de controle no jabuti.

Na sessão de Downloads está disponível um pacote com os arquivos do sistema para instalação manual.

Se você optou por baixar a imagem do cartão SD que disponibilizamos, o sistema já está incluso e funcionando!

 

7 – Eletrônica adicional

Para construir a base robótica que carinhosamente chamamos de Jabuti, você precisará dos seguintes componentes:

  • Bateria de ions de lítio (li-po) de duas células e 2400mAh de capacidade;
  • Placa Ponte-H para controle de 2 motores (nossa versão aqui)
  • Dois motores com redução (usamos 2 servos modificados);
  • Base de apoio (chassis);
  • Cabos de ligação e chave liga-desliga.

Disponibilizaremos um tutorial para instalação desta eletrônica.

 

Próximos passos

Agora que você já sabe de tudo que precisa para iniciar o projeto, aguarde nossos tutoriais com a explicação completa de como construir seu Jabuti.