quarta-feira, 7 de maio de 2008

Tutorial de Instalação do BrickOS no Cygwin, para embarcar programas no Lego Mindstorm RCX 2.0

Primeiro Passo: Instalação do Cygwin

Instalar o Cygwin, que pode ser baixado do site:
http://www.cygwin.com/.

Depois de baixado basta dar dois cliques e abrirá uma tela onde basta dar Next até chegar a uma tela como a representada na figura acima, escolha a opção de Install from Internet, depois de escolhida essa opção abrirá uma tela (representada na figura abaixo), basta manter como está, clicando em Next.

Depois de clicado em Next abrirá uma tela pedindo que seja escolhido o diretório onde será salvo os pacotes que serão baixados, escolha o diretório de sua preferência e clique em Next, então abrirá uma tela perguntando sobre sua conexão (se é cabo, se há proxy, etc), escolha a opção que represente sua conexão e clique em Next e irá para a tela seguinte que será a escolha do espelho para o download (representada na figura abaixo).

OBS.: O melhor espelho, com relação a velocidade e pacotes, é o da UOL.

Depois de escolhido o espelho, será mostrado uma lista de pacotes como a figura abaixo.

Dica: Depois de aberto esta lista, clique em View, essa opção fará com que mostre todos os pacotes em ordem alfabética, facilitando assim a procura dos pacotes necessários, que estão apresentados abaixo:


ash

autoconf
automake
bash
binutils
cpio
cygwin
diffstat
diffutils
file
findutils
flex
gcc
grep
less
login
make
mingw
patch
sed
tar
time
w32api

OBS.: Encontrado o pacote na lista, basta clicar em Skip, que aparecerá no canto esquerdo.

Depois de escolhido os pacotes e marcá-los para instalação, basta clicar em Next, ele iniciará o download e depois a instalação dos pacotes solicitados.

Segundo Passo: Compilando a Hitachi-H8 cross-compiler

Depois de baixado e instalado, abra o Cygwin Bash Shell.

Crie um novo diretório:
$ mkdir /build

Faça o download dos seguintes arquivos:
gcc 2.95.2, no link: ftp://ftp.gnu.org/pub/gnu/gcc/gcc-2.95.2.tar.gz
binutils 2.10.1, no link: ftp://ftp.gnu.org/pub/gnu/binutils/binutils-2.10.1.tar.gz
legos-buildgcc, no link: http://legos.sourceforge.net/cygwin/download/legos-buildgcc.zip

Depois de realizado o download, pegue os três arquivos e coloque na pasta que acabou de ser criada (/build).
Entre na pasta e descompacte o arquivo
legos-buildgcc.zip, após descompactado aparecerá três arquivos, dois *.diff e um *.sh, entre no Cygwin e faça:

$ cd /build
$ ./buildgcc.sh

OBS.: Ele iniciará a compilação, esse passo demorará um pouco.
OBS.: Ignore possíveis warnings que apareça.

Terceiro Passo: Instalação do BrickOS

Baixe os arquivos do BrickOS, o utilizado por mim foi o brickos-0.9.0.tar, mas procure versões atualizadas, no link: http://sourceforge.net/projects/brickos.

Coloque o arquivo dentro de C:\cygwin, abra o cygwin e faça:

$ cd /
$ tar xvfz
brickos-0.9.0.tar

Aparecerá os arquivos que estão sendo descompactados e será criada uma pasta
com o seguinte nome brickos-0.9.0.

Quarto Passo: Criando link e configurando o BrickOS

Abra o cygwin e faça:

$ ln -s
brickos-0.9.0 brickos
$ cd /brickos
$ ./configure; make
$ cd util
$ make strip

Quinto Passo: Ligando a Torre Infra-vermelho

Instale o driver da torre para que o windows reconheça a torre.
Depois de instalado ligue a torre e posicione juntamente com o RCX 2.0 de forma que os infras se comuniquem.
Lembre-se o RCX 2.0 deverá estar ligado no momento da transferência.
Faça:

$ ./firmdl3 ../boot/brickOS.srec (comando que embarca o brickOS no RCX)
$ ./dll ../demo/helloworld.lx (comando que envia o programa desejado)

Sexto Passo: Possíveis problemas

Primeiro problema: O padrão do software instalado é que a torre se comunica via COM1, então se sua torre for conectada pela USB, dará um Error 2: Opening COM1, é necessário mudar os comandos:

$ ./firmdl3 --tty=usb ../boot/brickOS.srec (comando que embarca o brickOS no RCX)
$ ./dll --tty=usb ../demo/helloworld.lx (comando que envia o programa desejado)


Segundo problema: Ao iniciar a transferência o PC travar. Se ocorrer isso, siga os passos abaixo:

Pode ocorrer isso devido a capacidade do Hyper-Threading do seu processador. Isso é um problema que ocorreu com o driver da torre, mas tem uma atualização que corrigi isso, que pode ser baixada em:

http://www.lego.com/eng/service/downloads/patches/Tower164.zip

Sétimo Passo: Criando os seus programas

Após tudo pronto e instalado é só aproveitar, na pasta /demo tem alguns exemplos de programas para o RCX, mas se você quiser criar os seus próprios programas é bem simples, mas só precisa ser lembrado que o padrão do RCX é a extensão *.lx, então todo programa criado em C, precisa ser compilado para lx. Como fazer isso?

Primeiro passo: Basta verificar que dentro da pasta /demo tem um arquivo que se chama Makefile, o primeiro passo é criar o seu programa em C e colocar dentro da mesma pasta onde se encontra o Makefile.

Segundo passo: Abra o Makefile para ser editado (WordPad, pois em Notepad ficará tudo em código), dentro do arquivo terá uma linha que começa com PROGRAMS=, na frente do igual provavelmente terá nomes de programas que vão como exemplo, o que terá que ser feito é nessa linha adicionar o nome do programa que está sendo feito por você. Lembre-se o nome do programa colocado na linha PROGRAMS terá que ser o mesmo nome do *.c, ou seja, se eu criei o arquivo teste.c, quando eu for editar o Makefile eu terei que escrever PROGRAMS=teste.lx.

Terceiro passo: Depois de ser editado e salvo o Makefile abra o Cygwin e faça:

$ cd /
$ cd brickos/demo/
$ make all

Depois de feito isso ele irá compilar o seu arquivo *.c para *.o e depois transformar para *.lx, agora basta seguir o Sexto passo para enviar o programa para o RCX e é só aproveitar.

----------------

Espero que esse tutorial ajude, ele foi a união de um tutorial e uma pesquisa em forum que usei quando precisei embarcar programas para o RCX.

Referências:

http://brickos.sourceforge.net/docs/INSTALL-cygwin.html

http://www.lego.com/eng/service/faqs.asp?section=ConsumerService-FAQ-TechSupport&tech=true&catid=87BC4CA6-D8CD-4BF1-8307-6B52AB45AF02

Um comentário:

Fael's Blog disse...

Totalmente excelente!
Meu sonho é ser igual a vc quando diminuir hahaha!

Brincadeira... Entao, eu vou seguir os passos e instalar aqui na minha maquina, se der errado, eu coloco a culpa em vc... falow?

t+