Вы находитесь на странице: 1из 50

UNIVERSIDADE FEDERAL DE

UBERLNDIA
FACULDADE DE ENGENHARIA
ELTRICA - FEELT

LASEC
AULA PRTICA 01 OI MUNDO!!!
FEELT

ltima Atualizao 06/04/2016


1 Edio 09/2014

Sumrio
Introduo ................................................................................................................................... 3
Caractersticas de Hardware do .................................................................................................. 5
Microprocessador ARM Cortex-A8 AM335x............................................................................ 5
BeagleBone Black ..................................................................................................................... 6
Acessando o Prompt de Comando da BeagleBone Black .......................................................... 6
Instalando e Configurando o PuTTY no Windows 7 ............................................................. 6
Instalando e Configurando o PuTTY no Windows 8 ............................................................. 8
Usando Mquina Virtual Linux ............................................................................................ 23
Oi Mundo!!! (Hello World!!!) .................................................................................................. 25
Prompt de Comando: ............................................................................................................ 25
Programa em Linguagem C++:............................................................................................. 27
Arduno .................................................................................................................................... 29
Instalao do Software Arduno: .......................................................................................... 31
Modificaes no Software Arduno para que ele aceite o Padro ANSI C: ..................... 38
Programando o Arduno com o Software Arduno no Windows.......................................... 39
Programando o Arduno com o Software Ino no Linux (Debian) ........................................ 43
Exemplo Oi Mundo!: ....................................................................................................... 44
Instalando o GEDIT no Debian do Kit BeagleBone Black a partir de um Sistema Operacional
Linux......................................................................................................................................... 49

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 2


1 Edio 09/2014

Introduo

Este roteiro apresenta as principais caractersticas de hardware e como implementar um


programa do tipo Oi Mundo (Hello World!!!) em linguagem C/C++ para a plataforma ARM
Cortex-A8 AM335x.

O Microprocessador (P) ARM Cortex-A8 AM335x foi escolhido dentre muitos outros por
apresentar as seguintes caractersticas:

de baixo custo pode ser adquirido por menos de cinco dlares (US$5,00), quando
adquirido em larga escala;

Foi projetado para ser utilizado no desenvolvimento de todos os dispositivos utilizados


em automao industrial, isto , desde os dispositivos de entrada e sada (I/O Devices:
Sensores, Drivers de Motores e Gateways) at as IHMs Industriais e CLPs, de
acordo com vdeo promocional da Texas Instruments
https://www.youtube.com/watch?v=1PrKUsZ_jUs&list=PLGsVbsjujx1BEDMUEn9D
wbJ682qaHGw1E&index=11;

Foi projetado de modo a reduzir em 30% o custo dos dispositivos industriais. Isto
acontece porque o AM335x traz internamente grande parte do hardware que deve ser
implementado externamente caso a escolha do projeto seja outro microcontrolador ou
microprocessador;

Possui Unidade Programvel de Tempo Real - Programmable Real-Time Unit (PRU),


importante na implementao de protocolos de redes industriais e utilizao de sistemas
operacionais de tempo real;

Possui Subsistema de Comunicao Industrial - Industrial Communication


Subsystem (PRU-ICSS). Entre as interfaces suportadas pela PRU-ICSS esto os
seguintes protocolos industriais de tempo real usados no modo mestre e escravo:
EtherCAT, PROFINET, EtherNet/IP, PROFIBUS, POWERLINK, SERCOS
III. Alm disso, a PRU-ICSS possibilita o desenvolvimento de protocolos customizados
tanto na indstria quanto na pesquisa acadmica;

Executa os sistemas operacionais: Android, Angstrom, Ubuntu, Debian, ArchLinux,


Gentoo, Sabayon, Buildroot, Erlang, Fedora e Cloud9 IDE com Node.js w/
BoneScript library;
A programao pode ser realizada em diversas linguagens, como exemplo podemos
citar: C, C++, Java (Qt Jambi), Python (PyQt, PySide, PythonQt), Ruby (QtRuby),
Ada (QtAda), C# (Qyoto), Pascal (FreePascal Qt4), Perl (Perl Qt4), Haskell (Qt

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 3


1 Edio 09/2014

Haskell), Lua (lqt, QtLua), Dao (DaoQt), Tcl (qtcl), Common Lisp (CommonQt),
D (QtD);

Executa o Sistema Operacional de Tempo Real QNX e FreeBSD. Vale ressaltar que
o Sistema Operacional QNX utilizado no desenvolvimento de controle para
sistemas crticos em avies, usinas termonucleares, equipamentos mdicos,
automveis, usinas hidreltricas, dentre outros;

Possui acelerador grfico 3D do tipo POWERVR SGX, o que favorece o


desenvolvimento de equipamentos que necessitam de interface amigvel com o usurio,
como ocorre nas IHMs Industriais, Netbooks, Smartphones, Tablets, MP5 e MP4
Players, dentre outros dispositivos;

Alm disso, muitos alunos ao longo do curso de Controle e Automao, Engenharia Eltrica,
Mecatrnica, Eletrnica e Telecomunicaes e Cincia da Computao, desenvolvem IC,
projetos interdisciplinares, participam de campeonatos onde precisam desenvolver o
acionamento e controle de drones, automodelos e humanides. Muitas destas aplicaes
necessitam realizar processamento de imagem, executar novos algoritmos de controles,
processamento de sinais, dentre outras tarefas que exigem muito processamento.

Neste sentido, para que os alunos tenham condies de aplicar seus conhecimentos e expandir
seus horizontes na rea de engenharia eltrica, optou-se por utilizar um microcprocessador que
possusse recursos compatveis com as diversas atividades atualmente praticadas por eles.

Isto posto, vale salientar que em se tratando de sistema operacional, a BeagleBone Black conta
com vrias opes: Angstrom ( que uma distribuio de Sistema Operacional Linux para
sistemas embarcados), Ubuntu, Debian, Android, QNX, dentre outros.

Nos exemplos apresentados neste documento, o sistema operacional que ser utilizado o
Angstrom. No entanto, os conceitos e exemplos apresentados, no so restritos ao
processador am335x ou ao sistema operacional Angstrom. O processador e o sistema
operacional servem apenas como ferramentas didticas para:

Demonstrar boas prticas de programao em sistemas embarcados;


Configurar registradores no sistema operacional Linux embarcado para:
Habilitar, desabilitar e utilizar perifricos;
Habilitar, desabilitar e utilizar I/O;
Mostrar como usar conjuntos de ferramentas para programar dispositivos que rodam
Linux embarcado.

Assim, os conceitos e exemplos apresentados podem ser estendidos a outros


microcontroladores, microprocessadores e DSPs que rodam Linux.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 4


1 Edio 09/2014

Caractersticas de Hardware do
Microprocessador ARM Cortex-A8 AM335x

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 5


1 Edio 09/2014

BeagleBone Black

Acessando o Prompt de Comando da BeagleBone Black

Primeiramente necessrio conectar a extremidade mini-USB do cabo na BeagleBone Black e


a extremidade USB na entrada USB do PC, conforme mostrado a seguir:

A seguir so apresentadas duas maneiras para acessar o prompt de comando da BeagleBone


Black por meio do sistema operacional Windows. A primeira instalando e utilizando o
programa PuTTY no Windows e a outra usando uma mquina virtual Linux, como
mostrado a seguir:

Instalando e Configurando o PuTTY no Windows 7

O PuTTY um software de emulao de terminal grtis e de cdigo livre. Suporta SSH,


destinado a realizar o acesso remoto a servidores via shell seguro e a construo de tneis
cifrados entre servidores. Tambm suporta conexo direta (raw), telnet, rlogin e por porta serial.

Antes de instalar o PuTTY, necessrio instalar os seguintes drivers:

Para Windows 64 bit: http://beagleboard.org/static/Drivers/Windows/BONE_D64.exe

Para Windows 32 bit: http://beagleboard.org/static/Drivers/Windows/BONE_DRV.exe

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 6


1 Edio 09/2014

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 7


1 Edio 09/2014

OBS: Para instalar o PuTTY, prossiga a partir do Passo 7: Realizar o download e instalar
o PuTTY que se encontra no prximo item: Instalando e Configurando o PuTTY no
Windows 8

Instalando e Configurando o PuTTY no Windows 8

Para instalar no Windows 8, execute os seguintes passos:

Passo 1: Pressione a tecla Windows + c, isto , (Windows + C).

Passo 2: Clique em Configuraes:

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 8


1 Edio 09/2014

Passo 3: Clique em Mudar configuraes do computador.

Passo 4: Clique em Atualizao e recuperao. On screen that shows up, select the General
option from the sidebar then scroll down the page that appears.

Passo 5: Clique em Atualizao e recuperao e as opes indicadas nas prximas janelas.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 9


1 Edio 09/2014

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 10


1 Edio 09/2014

Escolha a opo nmero 7

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 11


1 Edio 09/2014

Passo 6: Execute o arquivo de instalao BONE_D64.exe novamente e clique na opo


Instalar este software de driver mesmo assim quantas vezes forem necessrias.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 12


1 Edio 09/2014

Passo 7: Instalando o Xming X Server for Windows:

O Xming fornece o servidor X Window System de exibio, que um conjunto de


aplicativos. Ele possui suporte para vrias linguagens e tem Mesa 3D, OpenGL, e extenses
GLX grficas 3D compativeis.

O Xming pode ser usado com implementaes de Secure Shell (SSH) para transmitir de forma
segura X11 sesses de outros computadores. Ele suporta PuTTY e ssh.exe, e vem com uma
verso do PuTTY plink.exe. O projeto Xming tambm oferece uma verso porttil do PuTTY.

Para fazer o download do instalador do Xming, utilize o seguinte link:

http://sourceforge.net/projects/xming/

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 13


1 Edio 09/2014

Passo 8: Realizar o download e instalar o PuTTY

Para instalar o PuTTY, realize o download da verso desejada em: http://www.putty.org/:

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 14


1 Edio 09/2014

Aps a instalao, execute o PuTTY e realize as configuraes indicadas a seguir:

Na sequncia, clique em Save para salvar a seo com o nome BeagleBone Black.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 15


1 Edio 09/2014

Em seguida, d um clique duplo no nome BeagleBone que foi criado e, caso a mensagem
PuTTY Security Alert aparea, clique em Sim

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 16


1 Edio 09/2014

Quando o prompt aparecer, digite o seguinte comando: root@beaglebone:~# ping 192.168.7.1

O comando ping ou latncia um comando usado para testar a conectividade entre


equipamentos. Seu funcionamento consiste no envio de pacotes para o equipamento de destino
e na escuta das respostas. Se o equipamento de destino estiver ativo, uma resposta (o
pong, uma analogia ao famoso jogo de ping-pong) devolvida ao computador solicitante.
Neste caso, o comando ping ir testar a conectividade entre a BeableBone Black e o PC. O
resultado esperado deve ser igual ao apresentado na Erro! Fonte de referncia no
encontrada.. Para interromper o comando pressione Ctrl + C.

No entanto, at este ponto, a conexo somente ocorre entre o kit BBB e o PC. Para que o kit
tenha acesso a internet e aos programas que devem ser instalados, so necessrias mais algumas
configuraes, conforme especificado a seguir:
No entanto, at este ponto, a conexo somente ocorre entre o kit BeagleBone Black e o PC.
Para que o kit tenha acesso a internet e aos programas que devem ser instalados, so necessrias
mais algumas configuraes.

No Windows, acesse Painel de Controle-> Rede e Internet-> Central de Rede e


Compartilhamento-> Alterar as configuraes do adaptador.

Para acessar o Painel de Controle, pressione a tecla Windows , digite Painel de

Controle e quando a opo aparecer, clique sobre ela.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 17


1 Edio 09/2014

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 18


1 Edio 09/2014

Neste caso, a conexo utilizada para acessar a internet a Wi-Fi. Para permitir que o kit utilize
esta conexo para acessar a internet, clique com o boto direito do mouse sobre esta conexo
e clique em Propriedades.

Quando a janela Propriedades de Wi-Fi surgir, clique em Compartilhamento, marque a


opo Permitir que outros usurios de rede se conectem pela conexo deste computador
Internet, desmarque a opo Permitir que outros usurios de rede controlem ou
desabilitem a conexo compartilhada com a Internet e na opo Conexo de rede
domstica: escolha a conexo que corresponde ao kit. Neste exemplo, a Conexo Local 3.
Em seguida, pressione OK.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 19


1 Edio 09/2014

Ainda na janela Conexes de Rede, clique com o boto direito do mouse sobre o cone Conexo
Local 3 (Que neste exemplo a conexo da BeableBone Black), opte por propriedades,
conforme indicado na figura abaixo:

Quando a janela Propriedades de Conexo Local surgir, escolha a opo Protocolo TCP/IP
Verso 4 (TCP/IPv4) e clique em Propriedades, como mostrado a seguir:

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 20


1 Edio 09/2014

Quando a janela Propriedades de Protocolo TCP/IP Verso 4 (TCP/IPv4) surgir, verifique


se a opo obter um IP e endereo DNS automaticamente est selecionada, conforme
apresentado na figura a seguir:

Por fim, estabelea a conexo novamente utilizando o PuTTY e na linha de comando da


BealgeBone Black, execute o seguinte comando:

root@beaglebone:~# /sbin/route add default gw 192.168.7.1

root@beaglebone:~# ping 8.8.8.8

OBS: Seu firewall pode impeder a conexo. Por isso, caso a conexo no ocorra, tente
desabilitar seu firewall.

Aps este comando, possvel acessar a Internet, como mostrado a seguir:

Para acessar a internet utilizando os nomes DNS execute os seguintes comandos na linha de
comando:

root@beaglebone:~# cd /etc
Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 21
1 Edio 09/2014

root@beaglebone:/etc# nano resolv.conf

Para salvar o arquivo pressione as teclas (Ctrl + o), depois <Entrer> e por fim (Ctrl + x).

OBS: Quando for criar ou editar um arquivo na BeagleBone Black a partir do Windows, no utilize os editores
do Windows, tipo Wordpad. Instale e utilize editores que so compatveis com com o Sistema Operacional
Unix, como o Notepad++, por exemplo

O formato de arquivos de texto Windows e Unix so um pouco diferentes. No Windows, as linhas terminam
com caracteres ASCII tanto o avano de linha e retorno de carro, mas Unix utiliza apenas uma linha de
alimentao. Como consequncia, alguns aplicativos do Windows no vo mostrar as quebras de linha em
arquivos formato Unix. Da mesma forma, programas Unix podem exibir os retornos de carro em arquivos de
texto do Windows com (^ H) caracteres no final de cada linha.

Notepad ++ um software livre, open source, editor de cdigo fonte e substituio ao Notepad que suporta
vrias lnguas. Segue o link para download do software Notepad++:

https://notepad-plus-plus.org/

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 22


1 Edio 09/2014

Usando Mquina Virtual Linux

Os exemplos implementados na Mquina Virtual Linux utilizaro o conjunto de ferramentas


Inotools. O Software Ino um conjunto de ferramentas utilizado para trabalhar com os kits
Arduno.

Este conjunto de ferramentas permite:

Criar novos projetos rapidamente


Compilar programas a partir de mltiplos arquivos e bibliotecas
Fazer upload de um programa para o dispositivo
Realizar comunicao serial com um dispositivo (como o serial monitor do Software
Arduno)

O Software Ino pode substituir a IDE do Arduno se voc preferir trabalhar com o prompt de
comando e um editor de sua preferncia ou se preferir integrar o processo de compilao com
uma interface grfica adequada e de sua preferncia.

Ino utiliza o make para realizar a compilao. Entretanto o Makefiles gerado


automaticamente e voc no precisar alter-lo caso no deseje trabalhar com Makefiles.

As informaes para a instalao do Ino no Ubuntu (mas tambm vale para o Debian), podem
ser encontradas em:
http://playground.arduino.cc/Linux/Ubuntu
http://unix.stackexchange.com/questions/110014/how-to-install-the-latest-python-version-on-
debian-separately-or-upgrade
https://pip.pypa.io/en/latest/installing.html
http://developer.ridgerun.com/wiki/index.php/Setting_up_Picocom_-_Ubuntu
https://pypi.python.org/pypi/ino/

No entanto a mquina virtual disponibilizada, j possui a ferramenta Ino instalada. Para fazer o
download da mquina virtual pronta ou para montar uma, acesse o seguinte link:

https://mega.nz/#F!Mt8UBbpD!Vt7fsRptFnDBrnP8Uic4kQ

Para instalar a mquina virtual pronta, siga as instrues do documento MV Debian


Instrues para Instalao (xx_xx_xxxx).pdf

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 23


1 Edio 09/2014

Execute a mquina virtual e em seguida, verifique se o software VMware capturou a USB em


que a BeagleBone Black est conectada, como mostrado a seguir:

Se a aba mostrar Disconnect (Connect to host) significa que a USB da BeagleBone Black foi
capturada pelo VMware.

Para abrir um terminal clique em na barra superior . Em seguida


estabelea uma conexo ssh, por meio do prompt de comando do linux embarcado na
BeagleBone Black, conforme apresentado a seguir:

ufu@SE:~$ ssh -X root@192.168.7.2

Caso a seguinte mensagem aparea:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
45:79:10:4a:2c:3c:ff:be:92:d5:18:f7:e2:41:80:8e.
Please contact your system administrator.
Add correct host key in /home/ufu/.ssh/known_hosts to get rid of this message.
Offending RSA key in /home/ufu/.ssh/known_hosts:1
remove with: ssh-keygen -f "/home/ufu/.ssh/known_hosts" -R 192.168.7.2
RSA host key for 192.168.7.2 has changed and you have requested strict checking.
Host key verification failed.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 24


1 Edio 09/2014

Execute o comando proposto:

ufu@SE:~$ ssh-keygen -f "/home/ufu/.ssh/known_hosts" -R 192.168.7.2


# Host 192.168.7.2 found: line 1 type RSA
/home/ufu/.ssh/known_hosts updated.
Original contents retained as /home/ufu/.ssh/known_hosts.old
ufu@SE:~$

Ento, tente a conexo novamente:

ufu@SE:~$ ssh -X root@192.168.7.2

The authenticity of host '192.168.7.2 (192.168.7.2)' can't be established.


RSA key fingerprint is 45:79:10:4a:2c:3c:ff:be:92:d5:18:f7:e2:41:80:8e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.7.2' (RSA) to the list of known hosts.
root@192.168.7.2's password:
root@beaglebone:~#

OBS: Responda yes e pressione <Enter> e pressione <Enter> novamente quando a


password for solicitada

Oi Mundo!!! (Hello World!!!)


O editor de texto que ser utilizado na BeagleBone Black o GEDIT. Caso o editor de texto
GEDIT no esteja instalado, localize a seo denominada Instalando o GEDIT no Debian do
Kit BeagleBone Black ao final deste documento.

Prompt de Comando:

root@beaglebone:~# mkdir Oi

root@beaglebone:~# cd Oi

root@beaglebone:~/Oi# gedit -b Oi.c

ou

root@beaglebone:~/Oi# gedit Oi.c &

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 25


1 Edio 09/2014

Em seguida copie o programa (Ctrl + C) na caixa amarela e cole no editor GEDIT (Ctrl + V).

#include <stdio.h>

int main()
{
printf("Oi Mundo!!! \n");
}

Em seguida, em outro terminal, compile o programa criado, usando o seguinte comando:

root@beaglebone:~/Oi# gcc Oi.c -o Oi

Na sequncia, para verificar se o programa foi criado corretamente, faa:

root@beaglebone:~/Oi# ls -l
total 12
-rwxr-xr-x 1 root root 5041 May 15 03:44 Oi
-rw-r--r-- 1 root root 64 May 15 03:43 Oi.c
root@beaglebone:~/Oi#

Na sequncia, para execut-lo:

root@beaglebone:~/Oi# ./Oi

Oi Mundo!!!

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 26


1 Edio 09/2014

Programa em Linguagem C++:

Para realizar esta tarefa, execute no prompt os seguintes comandos:

root@beaglebone:~/Oi# gedit -b Oi.cpp

Em seguida copie o programa (Ctrl + C) na caixa amarela e cole no editor gedit (Ctrl + V).

#include<iostream>
using namespace std;

int main(void)
{
cout << "Oi Mundo!!!" << endl;
}

Em seguida, para compilar o programa criado, execute o seguinte comando:

root@beaglebone:~# g++ Oi.cpp -o Oi++

Na sequncia, para verificar se o programa foi criado corretamente, faa:

root@beaglebone:~/Oi# ls -al
total 32
drwxr-xr-x 2 root root 4096 May 15 02:29 .
drwx------ 8 root root 4096 May 15 02:21 ..
-rwxr-xr-x 1 root root 5041 May 15 02:24 Oi
-rw-r--r-- 1 root root 65 May 15 02:23 Oi.c
-rw-r--r-- 1 root root 95 May 15 02:29 Oi.cpp

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 27


1 Edio 09/2014

-rwxr-xr-x 1 root root 6547 May 15 02:29 Oi++


root@beaglebone:~/Oi#
Na sequncia, para execut-lo:

root@beaglebone:~/Oi# ./Oi++

Oi Mundo!!!

root@beaglebone:~/Oi#

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 28


1 Edio 09/2014

Arduno
Arduno uma plataforma de prototipagem eletrnica de hardware livre e de placa nica
projetada com um microcontrolador Atmel AVR com suporte de entrada/sada embutido,
utiliza a linguagem de programao padro C/C++. No entanto, a programao do Arduno no
utiliza a mesma anatomia de programao utilizada na programao ANSI C padro.

Um programa ANSI C padro, utiliza a seguinte anatomia:

Anatomia de um programa ANSI C


//**************************************************************
//Comments containing program information
// - file name:
// - author:
// - revision history:
// - compiler setting information:
// - hardware connection description to processor pins
// - program description
//**************************************************************
//include files
#include<file_name.h>

//program constants
#define TRUE 1
#define FALSE 0
#define ON 1
#define OFF 0

//interrupt handler definitions Used to link the software to hardware interrupt features
//global variables Listing of variables used throughout the program

//main program
void main(void)
{
body of the main program
}

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 29


1 Edio 09/2014

Por outro lado, um programa Arduno usa a seguinte anatomia:

Anatomia de um programa Arduno


//**************************************************************
//Comments containing program information
// - file name:
// - author:
// - revision history:
// - compiler setting information:
// - hardware connection description to processor pins
// - program description
//**************************************************************

//global variables Listing of variables used throughout the program

void setup () {
The setup() function is called when a sketch starts. Use it to initialize variables,
pin modes, start using libraries, etc. The setup function will only run once, after
each powerup or reset of the Arduino board.
}

void loop () {
After creating a setup() function, which initializes and sets the initial values,
the loop() function does precisely what its name suggests, and loops consecutively,
allowing your program to change and respond. Use it to actively control the
Arduino board.
}

Alm disso, o Arduno disponibiliza muitas funes que abstraem o hardware e facilitam para
o leigo o desenvolvimento do algoritmo. Assim sendo, o Arduno torna-se esquematizado para
introduzir a programao a artistas e a pessoas no familiarizadas com o desenvolvimento de
software.

Todavia, esta abordagem compromete a portabilidade do cdigo e inapropriada para pessoas


que desejam aprender a programar registradores em linguagem C/C++ no padro ANSI C para
atuar na rea de programao de sistemas embarcados.

Por isso, algumas alteraes sero realizadas no Software Arduno para que permita a
programao com a anatomia ANSI C padro.

Pasta no Mega com o Software Arduno Modificado (Pode no ser a verso mais recente):
https://mega.nz/#F!01VhlARK!9YOoen5s-nQ-C6q0xybUqQ

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 30


1 Edio 09/2014

Instalao do Software Arduno:

Utilize um dos links abaixo para fazer o download e instalar o Software Arduno.

Site oficial: https://www.arduino.cc/

Clique em Download e depois em Windows ZIP file for non admin install

Quando a janela Contribute to the Arduno Software surgir, opte por JUST DOWNLOAD,
caso prefira realizar o download gratuitamente ou CONTRIBUTE & DOWNLOAD se desejar
doar dinheiro para o projeto Arduno e realizar o download posteriormente.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 31


1 Edio 09/2014

Instrues para instalao em ingls:


https://www.arduino.cc/en/Guide/Windows#toc4

Vdeo no Youtube que ensina a instalar o Software Arduno no Windows 7:


https://www.youtube.com/watch?v=IbIhvmBhrhc

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 32


1 Edio 09/2014

Descompacte o arquivo do tipo arduino-x.x.x-rx-windows.zip na raiz ( C:\ ), como mostrado


a seguir:

Em seguida, necessrio instalar o driver do Arduno. Para realizar esta tarefa, acesse o painel

de controle. No Windows 8, pressione a tecla Windows e digite painel de controle.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 33


1 Edio 09/2014

OBS: Para instalar o driver, necessrio que o kit Arduno esteja devidamente conectado
na USB do notebook ou PC.

Em painel de controle, clique em Sistema, como demonstrado a seguir:

Em seguida, clique na opo Gerenciador de Dispositivos e clique com o boto direito do


mouse sobre Outros dispositivos -> Dispositivos Desconhecidos.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 34


1 Edio 09/2014

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 35


1 Edio 09/2014

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 36


1 Edio 09/2014

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 37


1 Edio 09/2014

Modificaes no Software Arduno para que ele aceite o


Padro ANSI C:

Abra o Explorador de Arquivos e acesse a pasta \hardware\arduino\avr\cores\arduino

C:\arduino-1.6.5-r5\hardware\arduino\avr\cores\arduino

Localize e renomeie o arquivo main.cpp. Exemplo: backup_main.cpp, como mostrado


abaixo:

Para abrir a IDE do Software Arduno, acesse a pasta de instalao, localize o programa
executvel denominado arduino.exe e clique duas vezes sobre ele.

Para criar um atalho na rea de trabalho, clique com o boto direito do mouse sobre o nome do
arquivo arduino.exe e opte por Enviar para -> rea de trabalho (criar atalho), como
mostrado a seguir:

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 38


1 Edio 09/2014

Programando o Arduno com o Software Arduno no Windows

Execute o Software Arduno, clicando sobre o cone e espere a IDE aparecer.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 39


1 Edio 09/2014

Exemplo Oi Mundo!: O exemplo Oi Mundo!!! apresentado como primeiro exemplo pois


oferece ao programador condies de imprimir uma mensagem no monitor serial durante o
processo de depurao debug de seu software. O processo de debugar ocorre quando
necessrio analisar um determinado bloco de programao ou a execuo de um programa
para localizar possveis erros ou bugs de programao.

Para implementar o exemplo mencionado, copie o cdigo Oi Mundo!!! e cole-o na IDE do


Software Arduno, como apresentado na sequncia:

Oi Mundo!!!
#include <stdint.h>
#include <avr/io.h>
#include <util/delay.h>

//-----------------------------------------------------------------------------------------
//---- Direcionando o fluxo de dados de printf para a Serial (UART) ----
static int uart_putchar (char c, FILE *stream)
{
Serial.write(c) ;
return 0 ;
}
//-----------------------------------------------------------------------------------------

int main(void)
{
// create a FILE structure to reference our UART output function
static FILE uartout = {0} ;

// fill in the UART file descriptor with pointer to writer.


fdev_setup_stream (&uartout, uart_putchar, NULL, _FDEV_SETUP_WRITE);

// The uart is the standard output device STDOUT.


stdout = &uartout ;

// Start the UART


Serial.begin(9600) ;

while(1)
{
printf("Oi Mundo!!!\n");
_delay_ms(1000); // espera 1 segundo (1000 milissegundos).
}
}

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 40


1 Edio 09/2014

Com o kit Arduno conectado ao Notebook ou PC, verifique se em Ferramentas -> Placa: o
kit adequado est selecionado.

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 41


1 Edio 09/2014

Em Ferramentas -> Porta: verifique se a porta adequada est selecionada, como mostrado
abaixo:

Para salvar, compilar e realizar o upload do cdigo para o kit Arduno, clique em

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 42


1 Edio 09/2014

Programando o Arduno com o Software Ino no Linux (Debian)

O kit do Arduno UNO possui uma interface serial, conforme indicado na figura abaixo:

Esta interface est ligada aos pinos digitais 0 (RX) e 1 (TX) do microcontrolador
ATMEGA328P-PU e esses mesmos pinos esto ligados a interface serial do ao
microcontrolador ATMEGA16U2, responsvel pela traduo do sinal para comunicao USB
com o computador (PC).
Esta configurao permite que um programa rodando no microcontrolador ATMEGA328P-PU
receba e envie dados para o PC.

Por outro lado, no PC, o software Arduno, possui uma interface denominada Serial Monitor
especfica para enviar e receber os dados enviados pelo ATMEGA328P-PU.

As funes do software Arduno utilizadas para enviar e receber dados do microcontrolador


para o PC so: Serial.print() e Serial.println() e Serial.read().

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 43


1 Edio 09/2014

Porm, para que as funes printf(), puts() e getchar() possam ser utilizadas para enviar os
dados para o Serial Monitor, necessrio utilizar a biblioteca uart.h. Ela ir direcionar o fluxo
de dados para a porta serial do microcontrolador ATMEGA328P-PU.

Exemplo Oi Mundo!:

main.c

#include <stdio.h>
#include <util/delay.h>

#include "uart.h"

int main(void) {

uart_init();
stdout = &uart_output;
stdin = &uart_input;

char input;

while(1) {
printf("Oi ");
puts("Mundo!");
_delay_ms(1000);
}

return 0;
}

O exemplo mostra que tanto o comando printf() quanto o comando puts() podem ser utilizados
para enviar dados.

Os arquivos dos programas esto disponibilizados em:

Apostilas: https://mega.co.nz/#F!VhsRBSAY!ql-q02nfmc9GKtEctZf8Bg
Faa download do arquivo Oi.zip. Em seguida, crie uma pasta dentro da pasta
/home/ufu/Arduino. Exemplo:

ufu@SE:~/Arduino$ mkdir Ana


ufu@SE:~/Arduino$ cd Ana
ufu@SE:~/Arduino/Ana$

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 44


1 Edio 09/2014

Na sequncia, utilize para copiar e


descompactar o arquivo Oi.zip dentro da pasta Ana, conforme indicado abaixo:

Em seguida realize os seguintes passos:


1) Verifique se o kit est conectado ao PC;
2) Acesse o terminal (Aplicativos -> Acessrios -> Terminal )
3) Utilize os comandos a seguir para compilar e realizar o upload do programa:

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 45


1 Edio 09/2014

ufu@SE:~/Arduino/Ana$ cd Oi/
ufu@SE:~/Arduino/Ana/Oi$ ino build
ufu@SE:~/Arduino/Ana/Oi$ ino upload

Uma maneira de visualizar o resultado usando o prprio terminal. Acesse o terminal


(Aplicativos -> Acessrios -> Terminal ) e execute o comando ino serial -p /dev/ttyACM0

ufu@SE:~$ ino serial -p /dev/ttyACM0

OBS: Para sair do modo ino serial, pressione < Ctrl + a > < Ctrl + x >

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 46


1 Edio 09/2014

A segunda maneira utilizar o Serial Monitor do software Arduno, como exemplificado


abaixo:

ufu@SE:~$ arduino

Para abrir a janela do Serial Monitor, pressione (Ctrl + Shift + M) ou utilize o menu, como
indicado a seguir:

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 47


1 Edio 09/2014

O resultado esperado :

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 48


1 Edio 09/2014

Instalando o GEDIT no Debian do Kit BeagleBone Black a


partir de um Sistema Operacional Linux

ufu@SE:~$ ssh -X root@192.168.7.2


Debian GNU/Linux 7

BeagleBoard.org BeagleBone Debian Image 2014-05-14

Support/FAQ: http://elinux.org/Beagleboard:BeagleBoneBlack_Debian

Last login: Thu May 15 02:38:08 2014 from se.local

root@beaglebone:~#

No prompt de comando da BBB, execute os comandos:

root@beaglebone:~# route add default gw 192.168.7.1


root@beaglebone:~# echo "nameserver 8.8.8.8" > /etc/resolv.conf

Configurando um Proxy

Se voc estiver na Universidade Federal de Uberlndia, Campus Santa Mnica, as


configuraes do proxy so:

HTTP proxy: proxy.ufu.br


Port: 3128

Neste caso, realize as seguintes configuraes no prompt da BeagleBone Black:

root@beaglebone:~# export https_proxy=http://proxy.ufu.br:3128

root@beaglebone:~# export http_proxy=http://proxy.ufu.br:3128

root@beaglebone:~# export ftp_proxy=http://proxy.ufu.br:3128

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 49


1 Edio 09/2014

No prompt de comando do PC, execute os comandos:

root@SE:/home/ufu# echo 1 > /proc/sys/net/ipv4/ip_forward


root@SE:/home/ufu# iptables -A POSTROUTING -t nat -j MASQUERADE

Para instalar o GEDIT, execute o seguinte comando:

root@beaglebone:~# apt-get update


root@beaglebone:~# apt-get install gedit

Universidade Federal de Uberlndia


Faculdade de Engenharia Eltrica
Disciplina de Sistemas Embarcados

www.omegaflix.com

Prof. Fbio V. R. da Silva

Disciplina de Sistemas Embarcados Faculdade de Engenharia Eltrica UFU Pgina 50

Вам также может понравиться