Arduino – Comunicação UDP Parte1

Opa, pessoal tudo belezinha? Depois de um tempo sem postar nada de Arduino com o Ethernet Shield e o foco saiu bastante com comunicação serial (USB CDC) agora vou postar como realizar a comunicação de um computador, servidor local ou remoto com um Arduino via Ethernet, nessa primeira parte vou mostrar a biblioteca que utilizei arduino_uip escrita por Norbert Truchsess baseado na Stack uIP de Adam Dunkels, porém neste caso esta biblioteca foi escrita especialmente para um ENC28J60 que é o que eu precisei e a uIP foi a base para eu construir a minha própria quando fiz minha monografia.

A biblioteca completa com exemplos pode ser adquirida no link abaixo:

https://github.com/ntruchsess/arduino_uip

Esta biblioteca possui suporte completo para aplicação cliente/servidor TCP e UDP além de recursos ARP, ICMP, DHCP e DNS, mas o foco deste post é UDP.

Acho que não tem segredo quanto baixar a biblioteca e copia no diretório libraries do Arduino tanto em Linux quanto em Windows, no caso estou usando Arduino IDE 1.0.5 e arduino_uip 1.0.1.

Nosso pequeno projeto consiste em baseado num IP fornecido iremos enviar a string “copa2014” eu pensei em “copa2014SQN” hehe mas “copa2014” ta em ritmo ainda :), então vamos lá…

Continue reading

Shell Script – Source

Opa, hoje vamos ver um comando bem interessante e que eu adotei uma tarefa bem legal para ele, o comando source.

Não sei se a maioria que segue meu blog é familiarizado com Linux e scripts mas principalmente quem “desenvolve” usando a plataforma Linux, que seja para embarcados, linux, compilação-cruzada tenho certeza que já usaram o source se não usaram vai mudar de ideia depois deste post.

Imagine que você instalou um toolchain (todas as ferramentas necessárias para você compilar um código .c para um ARM Cortex-M3, por exemplo :), só que esta diferente do seu PATH e pior tem variáveis que possuem instruções e parâmetros que devem ser carregadas, ae só adicionar a linha dos bin no PATH não adianta. Ok, adiciono as variáveis no .bashrc fecho e abro novamente e boa, só que é ae que entra o source e resolve nossa vida.

Sintaxe do comando:

source arquivo
source arquivo.sh

Continue reading

Delphi – Comunicação serial com Arduino

ArduinoRS232Delphi7

Faz alguns anos que não desenvolvia nada em Delphi (Object Pascal), mas como no começo deste blog eu publiquei alguns programas escritos em Delphi recebo com frequência solicitações de enviar o fonte ou algum material, como eu prefiro ensinar a pescar do que dar o peixe, resolvi trabalhar em cima disso, como já escrevi sobre comunicar serial com Arduino usando Python e pretendo fazer com outras linguagens desta vez foi a tão esperada vez com o Delphi.

Como recebi um e-mail do Prof. Airton José Sachetim Garcim e que ajudaria a ensinar os alunos achei que deveria dar uma atenção e uma força já que era para intuito didático e educacional, espero que ajude Professor :).

Não tenho as versões mais recentes e acabei de usar uma já ultrapassada o Delphi 7, porém como recompensa eu fiz 3 videos além deste post e o fonte disponibilizado, onde abordei desde o download do componente(biblioteca para comunicar serial), instalação, configuração e comunicação com a mesma, então vamos lá:

Continue reading

Programação C – Tipos de dados

Antes de continuarmos os posts, já que vimos vetores, matrizes e vou entrar em funções, ponteiros, alocações de memoria e estrutura de dados então é bom compreender os tipos de dados em C, será muito útil em qualquer linguagem pois a base é a mesma, o que difere é a forma de declarar e linguagens onde você não declara o tipo você pode fazer um cast com o tipo então é bom saber o que é e porque usar. Verá nomes comuns como (int, char, void e float) combinando com outros nomes como (signed, unsigned, short e long) que as vezes uma combinação e outra apresenta o mesmo resultado mas pode diferenciar no comportamento com a memoria RAM, linkagem e na organização da memoria, ou seja, quando as variaveis são alocadas na memoria e como são.

Não vou mentir, lembro-me quando vi o tipo void, short int, signed int, int e outras combinações eu pensei: “Nossa que idiota um tipo vazio(void) e int, short int e signed int ser 2 bytes com mesma faixa”. E continuei a vida é claro rs, mas conforme fui amadurecendo e ampliando os conhecimentos, aprendendo a desenvolver olhando alguns código do kernel do linux, programando para embarcados, estudando a organização da memoria, debugando as coisas vixii e por ae foi… eu vi que estava errado e a diferença de certos profissionais esta em quem realmente conhece esses tipos, como um desenvolvedor que sabe o que é, serve, funciona e aplicar um ponteiro e alocação, além das maneiras de declarar uma variável global ou local, mas isso é papo para posts futuros, das minhas aventuras em desenvolver em Linux, para Linux e para sistemas embarcados.

Vamos conhecer os tipos, tamanhos, faixas de valores e a sintaxe para exibir o valor:

Continue reading

Shell Script – Read

Vamos conhecer um comando bastante utilizado em scripts onde há interação com o operador, vamos conhecer ele.

O nome do comando já defini sua função “ler”, mas ler o que, de onde, do que e como? Algumas das opções de usar read são:

-a Todas as opções irá ser armazenadas em um array até você pressionar ENTER
-d Caractere delimitador, só irá sair quando ele for informado
-e Readline é utilizado para obter o valor se é proveniente de um terminal
-i Usa um texto inicial de readline
-n Seta o numero de caracteres a ser digitado antes de continuar
-p Prompt interativo, onde você pode informar uma string a ser exibida e irá ler o que voce digitar
-r Elemina o uso de para caracteres de escape, nunca precisei utilizar este
-s Silent mode, não é feito o echo do que é digitado, como digitar senha no terminal
-t Timeout, tempo limite que irá aguardar o operador digitar algo
-u Lê a partir de um file descriptor no lugar do input do terminal

Continue reading

Shell Script – Switch/case e select

Quem já fez alguma matéria de programação na faculdade ou algum curso técnico ou até mesmo algum curso ou vídeo-aulas esta se identificando bastante com os tópicos de shell script e é a mesma ideia, porém para quem não conhece irei explicar.

A estrutura Switch/case é como se fosse uma estrutura if porém não aceita operações logicas como utilizamos, e ela já possui todas as opções(cases) definidos.

Estrutura de um Switch/Case:
case OPCAO in
1) echo "Um" ;; #Se foi informado a opção 1 então realiza o echo, no caso o parâmetro é numero
dois) echo "2" ;; # Podendo ser texto
*) echo "Opcao Invalida!" ;; # Algo que não se enquadre acima
esac

Continue reading

Programação C – Matriz

Dando continuidade a programação em C, o ultimo post foi sobre vetores que pode ser visto aqui, e desta vez vamos ver como funciona matriz em C e praticamente pode ser aplicado em outras linguagens, vimos já uma matriz unidimensional (vetor ou array) e agora iremos ver matriz bidimensional que é mais visto com o nome matriz mesmo, só que antes nos vetores tinhamos uma linha por N colunas, agora podemos ter N linhas por N colunas. Vamos ver como se declara uma matriz em C:

Matriz 3×4
L1C1 L1C2 L1C3 L1C4
L2C1 L2C2 L2C3 L2C4
L3C1 L3C2 L3C3 L3C4

Continue reading