Mostrando postagens com marcador exemplo. Mostrar todas as postagens
Mostrando postagens com marcador exemplo. Mostrar todas as postagens

Relatório técnico - Batalha de Robôs

Nesta postagem vou tentar orienta-los sobre como elaborar o relatório do robô desenvolvido na disciplina de introdução a IoT. Dentre as recomendações, a primeira e fundamental recomendação é:

 - Siga a formatação  do documento disponível aqui no blog. 
                                                   Clique aqui para acessar o documento

Após fazer o download do documento acima, vamos aos itens que não podem faltar no relatório/grupos:

 - Todos os robôs(grupos) devem ter um nome.

 - Todos os textos devem conter no minimo os seguintes itens:

- Sumario
- Índice de figura
- Índice de tabelas
- Lista de abreviações e siglas

- Introdução
    - Justificativa
    - Objetivos
- Revisão da literatura
    - Texto falando sobre robô moveis, importância e aplicações;
- Metodologia 
    - Mostrando todos os item usado no projeto (arduino, shield, bluetooth, aplicativos cel, etc);   
    -  Descrever e justificar cada item do projeto;
    - Apresentar circuitos;
    - Tabelas de utilização de pinos;
- O Robô 
    - Mostrar partes da montagem do robô (Fotos montagem e carro pronto);
- Conclusão
    - Lições aprendidas;
    - Resultado final;
- Referencias 
    - Artigos, livros e sites de onde as informações foram tiradas;
- Apêndice 
    - Tabela com preços do material usado;
    - Código usado no Arduíno;
    - problemas, dificuldades e soluções do projeto;


Não esquecer que:
     - Esse documento é um relatório, não fique com preguiça de escrever;
     - Não esqueça de colocar informações técnicas;
     - Toda figura e tabela tem legenda e deve ser referenciada no texto;
     - Trabalho sem conclusão não é trabalho;



Ainda ta com duvida, curta nossa pagina no facebook no link abaixo e poste sua duvida lá.


Comunicação Bluetooth - HC-06

Criado em 1994 pela Ericsson, o Bluetooth é uma especificação de rede sem fio (IEEE 802.15.1) utilizada para conectar dispositivos pessoais como telefones celulares, notebooks, computadores, dispositivos IoT, entre outros permitindo a troca de informações entre esses dispositivos através de uma frequência de rádio de curto alcance. Devido sua versatilidade, diversos shields de bluetooth foram desenvolvido onde podemos citar o NRF2401, os módulos ZIGBEE e o HC-06 que será usado em nossa experiência. Na figura 1 podemos ver uma foto do modulo HC-06.


Figura 1. Modulo Bluetooth HC-06.
Para ligar o bluetooth ao Arduíno é bem simples, para isso basta polarizar o dispositivo ligando VCC e GND aos pinos de 5V e GND do Arduíno e o RX e TX aos pinos 0 e 1 conforme indicado na figura 2.
Figura 2. Polarização e conexão RX/TX do Modulo HC-06.

O desenvolvimento do código é bem simples, basta usar a biblioteca SoftwareSerial.h que permite que o chip Atmega receba comunicação serial mesmo enquanto trabalha em outras tarefas, desde que haja espaço no buffer serial de 64 bytes. Para maiores informações sobre essa biblioteca, clique aqui.

Os comando utilizados em nosso experimentos serão:

SoftwareSerial bluetooth(rxPin, txPin) -  O SoftwareSerial é usado para criar uma instância de um objeto SoftwareSerial, cujo nome (bluetooth) você precisa fornecer. Os parâmetros rxPin, txPin são referentes aos pinos utilizados no Arduíno para realizar a comunicação RX/TX.

bluetooth.begin(BAUD) - Define a velocidade (taxa de transmissão) para a comunicação serial, onde BAUD é o valor da taxa (para saber mais sobre comunicação serial, cilque aqui).

bluetooth.println("TEXTO") -  Imprime dados no pino de transmissão da porta serial do software. Funciona da mesma forma que a função Serial.print ().

bluetooth.read() -  Retorna um caractere que foi recebido no pino RX da porta serial do software. 

Hardware e software devidamente configurado, para realizar nossos testes, podemos fazer o download no celular do Aplicativo Bluetooth terminal. Após baixar o aplicativo, basta realizar um scan para localizar o HC-06 e parear os dispositivos. Caso o celular solicite uma senha, digite 1234.

Com base no circuito da figura 2 e nos comandos descritos acima, o programa abaixo irá acender um LED na porta 13 quando a letra 'H' for digitada e apaga-lo quando for digitado a letra 'L'.

#include <SoftwareSerial.h>// Incluir biblioteeca Software Serial para habilitar bluetooth
SoftwareSerial bluetooth(1, 0); //indicação das entradas onde TX, RX serão ligadas
int RXBLUE;

void setup() 
{
  //Habilitando leds na porta 13
  pinMode(13, OUTPUT);

  //Inicializando  software serial - Bluetooth
  bluetooth.begin(9600);
  bluetooth.println("iniciando bluetooth");
  bluetooth.println("Digite H para ligar o LED");
  bluetooth.println("Digite L para desligar o LED");
}

void loop() {
  //Checa se bluetoohth esta conectado
   if (bluetooth.available()>0)
  {
    RXBLUE = bluetooth.read();
    bluetooth.println("Led ligado");
    if(RXBLUE == 'H')
    {
      digitalWrite(13, HIGH);
      bluetooth.println("Led ligado");

    }
    if(RXBLUE == 'L')
    {
      digitalWrite(13, LOW);
      bluetooth.println("Led desligado");
    }
  }
}


Você poderá verificar a implementação do código/circuito acima clicando na imagem abaixo.

 Exclusão mutua com Arduíno




Não esqueça do like do video e de curtir nossa pagina no facebook no link abaixo:

Brincando com o Multi function Shield

O projeto Arduíno foi criado para prover facilidade no desenvolvimento de projetos microcontrolados e certamente um dos grandes responsáveis por essa facilidade é o shield.
Shields" é o nome dado às placas de expansão de hardware que encaixam na placa Arduíno principal.  Através dos Shields podemos adicionar novos elementos ao nosso projeto sem a necessidade de grandes conhecimentos em eletrônica. Os circuitos contidos nos diversos shields  existente contém uma eletrônica que adiciona funções que a placa principal não possui. Nessa postagem iremos apresentar o Multi function Shield da figura 1.
Figura 1. Multi function Shield  

No caso do  Multi function Shield, temos os seguintes componentes instalados:

UnitPIN #
Buzzer (autofalante/beeper)3 (digital On/Off)
4 LEDs10, 11, 12, 13
3 botões + reset buttonA1, A2, A3
Potenciômetro (10 kOhm)A0
4 Displays de 7-sementos e driven 74HC595Latch 4, Clock 7, Data 8
Socket para sensor IR (controle remoto)2
Socket para sensor LM35 ou DS18B20A4
Pinos para BluethoothGND, +5v, 0, 1 (rx/tx)
Pinos livres (pwm)5, 6, 9, A5



Buzzer 

O primeiro componente que iremos testar no shield é o buzzer. Usado para emitir sons de alerta, o buzzer pode ser configurado para tocar melodias idem ao video que pode ser acessado clicando no link abaixo:

Melodia com Arduino



Para testar o buzzer do  Multi function Shield  vamos utilizar o código abaixo:

int portSpeak(3);  //porta ligada no speaker

//melodia
int melodia[] = {660,660,660,510,660,770,380,510,380,320,440,480,450,430,380,660,760,860,700,760,660,520,580,480,510,380,320,440,480,450,430,380,660,760,860,700,760,660,520,580,480,500,760,720,680,620,650,380,430,500,430,500,570,500,760,720,680,620,650,1020,1020,1020,380,500,760,720,680,620,650,380,430,500,430,500,570,585,550,500,380,500,500,500,500,760,720,680,620,650,380,430,500,430,500,570,500,760,720,680,620,650,1020,1020,1020,380,500,760,720,680,620,650,380,430,500,430,500,570,585,550,500,380,500,500,500,500,500,500,500,580,660,500,430,380,500,500,500,500,580,660,870,760,500,500,500,500,580,660,500,430,380,660,660,660,510,660,770,380};

//duraçao de cada nota
int duracaodasnotas[] = {100,100,100,100,100,100,100,100,100,100,100,80,100,100,100,80,50,100,80,50,80,80,80,80,100,100,100,100,80,100,100,100,80,50,100,80,50,80,80,80,80,100,100,100,100,150,150,100,100,100,100,100,100,100,100,100,100,150,200,80,80,80,100,100,100,100,100,150,150,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,100,150,150,100,100,100,100,100,100,100,100,100,100,150,200,80,80,80,100,100,100,100,100,150,150,100,100,100,100,100,100,100,100,100,100,100,100,100,60,80,60,80,80,80,80,80,80,60,80,60,80,80,80,80,80,60,80,60,80,80,80,80,80,80,100,100,100,100,100,100,100};

void setup() {
  //for para tocar as 156 notas começando no 0 ate 156 ++ incrementado
        for (int nota = 0; nota < 156; nota++) {

              int duracaodanota = duracaodasnotas[nota];
              tone(portSpeak, melodia[nota],duracaodanota);

  //pausa depois das notas
              int pausadepoisdasnotas[] ={150,300,300,100,300,550,575,450,400,500,300,330,150,300,200,200,150,300,150,350,300,150,150,500,450,400,500,300,330,150,300,200,200,150,300,150,350,300,150,150,500,300,100,150,150,300,300,150,150,300,150,100,220,300,100,150,150,300,300,300,150,300,300,300,100,150,150,300,300,150,150,300,150,100,420,450,420,360,300,300,150,300,300,100,150,150,300,300,150,150,300,150,100,220,300,100,150,150,300,300,300,150,300,300,300,100,150,150,300,300,150,150,300,150,100,420,450,420,360,300,300,150,300,150,300,350,150,350,150,300,150,600,150,300,350,150,150,550,325,600,150,300,350,150,350,150,300,150,600,150,300,300,100,300,550,575};
              delay(pausadepoisdasnotas[nota]);}

              noTone(portSpeak);
}

void loop() {

}

Leds

Conforme já mencionado, no  Multi function Shield  os leds estão ligados aos pinos 10, 11, 12 e 13 do Arduíno. No código abaixo iremos piscar todos os leds ao mesmo tempo. 
int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;
void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
}
void loop() 
{
  digitalWrite(led1, HIGH);
  digitalWrite(led2, HIGH);
  digitalWrite(led3, HIGH);
  digitalWrite(led4, HIGH);
  delay(1000);
  digitalWrite(led1, LOW);
  digitalWrite(led2, LOW);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 delay (1000);
}

Botões

Os botões no Multi function Shield foram implementados de maneira onde quando pressionado, a entrada do Arduíno que o botão estão ligado recebera o sinal HIGH. No programa abaixo temos um exemplo onde usamos dois botões para acender e apagar os leds do shield.
#define Bt1 A1  //Botão 1 do shield configurado no pino A1
#define Bt2 A2  //Botão 1 do shield configurado no pino A1
int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;
void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
}
void loop() 
{
  if(!digitalRead(Bt1)) //se o valor de botão 1 for 0 liga leds
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH); 
  }
  if(!digitalRead(Bt2)) //se o valor de botão 1 for 0 desliga leds
  {
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
  }
}

Potenciômetro 


Potenciômetro é resistor com resistência variável. Será utilizado para enviar um sinal analógico ao Arduíno. Na figura 2 temos alguns exemplos de potenciômetros.
Figura 2. Exemplos de potenciômetros.
Por permitir variar a resistência, segundo a lei de OHM teremos uma modulação da tensão, logo o potenciômetro deve ser ligado a porta analógica do Arduíno.  No caso do kit Multi function Shield  o potenciômetro está ligado a porta analógica A0. Abaixo segue como medir o valor na entrada A0 que será modulada pelo potenciometro e enviar o valor para a porta serial.
#define Pot1 0 
void setup() 
{ 
       Serial.begin(9600); 
} 
void loop() 
{ 
    int PotValue;
    PotValue = analogRead(Pot1); 
    Serial.print("Potenciomentro: "); 
    Serial.println(PotValue); 
 }

Display de 7 segmentos

Displays de sete segmentos são usados em eletrônica para de exibir uma informação alfanumérica (binário, decimal ou hexadecimal). devido a simplicidade e fácil configuração  seu uso é muito popular.
Figura 3. Display de 7 segmentos - Facilidade para representar números. 
Como o próprio nome já diz, um display de sete segmentos é composto de sete elementos (LEDs), os quais podem ser ligados ou desligados individualmente. Na figura 4 podemos observar que no display de 7 segmentos temos um anodo comum e o catodo de cada LED receberá um nome (A, B, C,...), assim para formação dos dígitos, basta seguir a "tabela do decodificador" mostrada na figura 4.
Figura 4. Configuração do display de 7 segmentos.
O Multi function Shield  possui um registrador de descolamento onde os valores e o display que será utilizado é controlado por codificação em hexadecimal. Os código abaixo irá mostrar os numero 0 1 2 3 no display.

int LED[]= {13,12,11,10}; /* Configurações do registador de deslocamento */ #define LATCH_DIO 4 #define CLK_DIO 7 #define DATA_DIO 8 /* Mapa de Segmentos dos números de 0 to 9 */ const byte SEGMENT_MAP[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90}; /* Byte maps to select digit 1 to 4 */ const byte SEGMENT_SELECT[] = {0xF1,0xF2,0xF4,0xF8}; void setup () { /* Set DIO pins to outputs */ pinMode(LATCH_DIO,OUTPUT); pinMode(CLK_DIO,OUTPUT); pinMode(DATA_DIO,OUTPUT); } void loop() { /* O comando WriteNumberToSegment indicando qual numero deve ser escrito e o segmento */
WriteNumberToSegment(0 , 0);
WriteNumberToSegment(1 , 1);
WriteNumberToSegment(2 , 2);
WriteNumberToSegment(3 , 3);
}
 
/* Função que controlará os displays */
void WriteNumberToSegment(byte Segment, byte Value)
{
digitalWrite(LATCH_DIO,LOW);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
digitalWrite(LATCH_DIO,HIGH);
}




Desafios:
Desafio 1 - Faça um programa que conte de 0 a 9 com intervalo de 1 segundo, uso estrutura de repetição FOR.
Desafio 2 - Receba uma centena via serial e exiba a centena no display
Não esqueça do like do video e de curtir nossa pagina no facebook no link abaixo:

Criptografia de Cesar usando Arduíno

Criptografia é a ciência ou a arte de escrever em cifras. A criptografia provê meios através de técnicas e algoritmos matemáticos para se transformar um texto claro ou plano (inteligível) em um texto cifrado (ininteligível).
Há relatos do uso de criptografia por povos da antiguidade onde podemos destacar a cifra de Atbash onde acredita-se que trechos do Torá e do livro do profesta Jeremias usaram essa maneira de codificação (referências não cientificas). 
Uma evolução (talvez não) da cifra de Atbash é a Cifra supostamente desenvolvida pelo Imperador Julio César que usava uma técnica de substituição na qual cada letra do texto é substituída por outra. Para saber mais sobre cifras de substituição, monoalfabéticas e Cifras de César, clique na imagem abaixo e acesse nossa vídeo-aula no youtube.
  Exclusão mutua com Arduíno

Em nossa experiencia iremos usar um display de Cristal liquido (LCD) que fará a interface com o usuário, um potenciômetro que será usado para realizar a seleção da Chave no processo de criptografia e um botão para confirmação após a escolha da chave. Na figura 1 temos o esquema montado para realização da experiencia. 
Figura 1. Circuito usado na experiencia de criptografia. 

Conforme visto na vídeo-aula, para realizar a criptografia usaremos o resto da divisão para substituir a palavra em texto claro pela sua equivalente cifrada. 
Para utilizar o LCD a  biblioteca LiquidCrystal será utilizada facilitando assim o controle do dispositivo. Para entender melhor o uso das bibliotecas no Arduíno, acesse nossa postagem sobre o assunto clicando aqui. Se antes de analisar o código usado você quiser ver o experimento rodando, clique na imagem abaixo e acesse o youtube.

 Exclusão mutua com Arduíno
Após ver a explicação do projeto de criptografia de César, segue código utilizado na experiencia. 


#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Configura os pinos do Arduíno conectados ao LCD
// Para entender o uso do LCD acesse:   Em Breve


//Variáveis globais


//Variáveis para armazenar valor da chave criptográfica e flag de controle
int K =15;
int Def_K=0;  //Flag para saber qdo chave já foi selecionada


//Variáveis de manipulação de texto
char claro[30]; //Variável que armazenará texto claro
char cifra[30]; //Variável que armazenará texto cifrado
int vPot = 0;  //Variável que armazenará valor do potenciômetro
//Alfabeto que será usado na analise e criptografia
char alfa [26] ={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

//Variáveis de controle
int l=0; //Variavel para posicionar coluna do cursos no LCD
char op; // Variável para controlar botão
int j=0;
int Ncifra=0;

void setup()
{
  lcd.begin(16, 2); //Inicia o LCD com dimensões 16x2
  Serial.begin(9600);
  pinMode(8,INPUT);
  lcd.setCursor(1, 0);  //Comando para posicionar cursor no LCD
  lcd.print("Cifra de Cesar"); //Escreve no LCD msg inicial
  lcd.setCursor(0, 1);
  lcd.print("Bruno  Rodrigues");

  Serial.println("*---                                      Criptografia de Cesar e Arduíno                                          -----* ");
  Serial.println("*--- Escolha a chave criptográfica e digite o texto alfa, ao finalizar o texto Digite Z para ver o texto cifrado  -----* ");
  Serial.println("*---                                      Desenvolvido por Bruno Rodrigues                                          -----* ");
  delay(3000);
  lcd.clear();
}

void loop()
{
  if(Def_K==0)
  {
    lcd.setCursor(0, 0);
    lcd.print("Defina a chave:"); //Escreve no LCD
    define_chave();
    Serial.println("Digite o texto claro: ");
  }
  else
  {
    recebe_texto();
  }
}

void define_chave()
{
  Serial.print("Chave K: ");
  lcd.setCursor(0, 1);
  lcd.print("K= "); //Escreve no LCD
  while(digitalRead(8)==HIGH)
  {
    vPot = analogRead(5);
    K= map(vPot, 0, 1023, 0, 26); //Variável para mapear clique aqui para sabe mais
    Serial.print(K);Serial.print(" ");
    lcd.setCursor(3, 1);
    lcd.print(K); //Mostra chave que está sendo escolhida no LCD
    delay(500);
  }
  delay(1000);
  Def_K=1;
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("chave K= "); //Escreve no LCD
  lcd.setCursor(9, 0);
  lcd.print(K);
  Serial.println("");
  delay(500);
  lcd.clear();
}


void recebe_texto()
{
  int i=0;

  lcd.setCursor(0, 0);
  lcd.print("Digite o texto: ");
  op= Serial.read();
    if(op == '!')
    {
     lcd.clear();
     exibe_cifra();

    }
  while (i<=24)
  {
    if(op == alfa[i])
    {
      lcd.setCursor(l, 1);
      lcd.print(alfa[i]);
      //Calculo da criptografia usando MOD 26
      Ncifra= (i+K)%26;
      claro[l]=alfa[i];
      cifra[j]=alfa[Ncifra];
      j++;
      l++;
    }
    i++;
  }

}

void exibe_cifra()
{
  int i=0;
  l=0;
      Serial.print("A Palavra cifrada é: ");
 
      while (i<=24 || claro[i]=="\n")
      {
        lcd.setCursor(l,0);
        lcd.print(claro[i]);
   
   
        lcd.setCursor(l,1);
        lcd.print(cifra[i]);
        Serial.print(cifra[i]);
        i++;
        if(i<=15)
        {
          l++;
        }
   
      }
      delay(5000);
      lcd.clear();
}


Desafios:

Desafio 1 - Faça sistema similar ao apresentado acima que decifre um texto cifrado com Cifras de César.

Desafio 2 - Faça um sistema onde o texto será criptografado 2 vezes usando chaves diferentes.

Não esqueça do like do video e de curtir nossa pagina no facebook no link abaixo:

Codigos HTML - Exemplos

Nesta postagem, vou adicionar uma série de elementos para auxiliar os alunos na criação de sites deixando codigos e dicas de como criar menus, botões de redes sociais, etc.....


Redes sociais (facebook)

Para criar botões e elementos que remetem ao facebook (perfil ou pagina) semelhantes aos apresentdos na figura 1, voce deve visitar o site Facebook for Developers e acessar a documentação de plugin. No developers, alem das devvidas explicações sobre o assunto escolhido, o proprio site gera o codigo para voce incorporar ao seu site.
Figura 1. Curtir e seguir facebbok - Codigos gerados pelo facebook Developers.


Mapas do google maps

Assim como o facebook, o google tambem tem um pagina developer (clique aqui para acessar) que auxilia os desenvolvedores a criarem objetos que podem ser incorporados a um site. Na figura 2 temos um exemplo de um mapa que pode ser incorporado ao site site. 
Figura 2. Mapa fornecedo pelo Googlemaps para incorporar ao seu site.
Dependendo da funcionalidade do mapa, voce pode criar-lo no prorprio google driver. Qualquer objeto criado no google driver tambem pode ser incorporado a um site, veja os exemplos desse blog onde as atividades de formulario são criadas no google forms.

Criação de menu

Para criar um menu com uma funcionalidade interessante, será preciso densenvolver o codigo em CSS e HTML. Como a função desse blog não é ensino de desenvolvimento WEB, irei deixar aqui o codigo que usei para criar o menu blog (Figura 3).
Figura 3. Menu criado com CSS\HTML - codigo abaixo


Para facilitar o entendimento, o codigo foi comentado e a parte do HTML simplificada, para modificar o codigo, basta verificar que cada "<li class='has-sub'>" representa uma lista do menu (ex. Arduino, Programação, etc) e que entre a opção "<ul>"  e "</ul>" são os subitens do menu. Outra opção para criação de menus, é procurar algum maker que gere o padrão desejado ou acessar sites como menu maker...


<!-- Codigo em CSS com as configurações do menu-->
<style type="text/css">
#NavbarMenu {
background: #555;
color: #FFF;
font-size: 12px;
font-family: Arial, Tahoma, Verdana;
width: 100%;height: 35px;
font-weight: bold;margin: 0;padding: 0;
}
#NavbarMenuleft { width: 100%;float: left;margin: 0;padding: 0; }
#nav {margin: 0;   padding: 0;}
#nav ul {  float: left;list-style: none;margin: 0;padding: 0;}
#nav li  {   list-style: none;margin: 0;padding: 0;}
#nav li a, #nav li a:link, #nav li a:visited
 {
  color: #FFF; /*--edite cor do link--*/
  display: block;
  font-size: 16px;
  font-family: Georgia, Times New Roman;font-weight: normal;text-transform: capitalize;
  margin: 0;padding: 9px 15px 8px;border-right: 1px solid #fff;
}
#nav li a:hover, #nav li a:active
 {
   color: #FFF; /*--edite cor do link hover--*/
   margin: 0;
   padding: 9px 15px 8px;
   text-decoration: none;
   background-color: #9F0;
}
#nav li li a, #nav li li a:link, #nav li li a:visited 
{
   width: 150px;
   color: #FFF; /*--cor do link--*/
   font-size: 14px;
   font-family: Georgia, Times New Roman;
   font-weight: normal;
   text-transform:capitalize;
  float: none;
  margin: 0;
  padding: 7px 10px;
  border-bottom: 1px solid #FFF;
  border-left: 1px
  solid #FFF;
  border-right: 1px solid #FFF;
  background-color: #555;
}
#nav li li a:hover, #nav li li a:active 
{
   color: #FFF; /*--cor do link--*/
   padding: 7px 10px;
   background-color: #FC6;
}
#nav li {float: left;padding: 0;}
#nav li ul {z-index: 9999;position: absolute;left: -999em;height: auto;width: 170px;margin:0;padding: 0;}
#nav li ul a {width: 140px;}
#nav li ul ul {margin: -32px 0 0 171px;}
#nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul {left: -999em;}
#nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhoverul, #nav li li li.sfhover ul {left: auto;}
#nav li:hover, #nav li.sfhover {position: static;}
</style>
<div id='NavbarMenu'>
<div id='NavbarMenuleft'>
<ul id='nav'>


<!-- Menu do blog que deve ser incorporado ao codigo-->
<div id='cssmenu'>
<ul>

<!-- logo-->
   <li class='active'><a href='http://elogicaefacil.blogspot.com.br/'><span>
<img align='botton' height='20' src='https://goo.gl/kQYo0J' width='50'/></span></a></li>
<!-- Opção Arduino-->

<li class='has-sub'><a href='url da pagina'>Arduino</a>
 <ul>
   <li><a href='https://goo.gl/juzF3w'><img src='https://goo.gl/ZWtEmJ'/>  Simulador de programação Arduino</a></li>
    <li class='has-sub'><a href=''><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> DataSheet +</a>
<ul>
 <li><a href='https://goo.gl/kyaCQG' target='_blank'><img align='left' height='16' src='https://goo.gl/9NmdBi' width='16'/>ATmega328/P </a></li>
    <li><a href='https://goo.gl/qtJOrr' target='_blank'><img align='left' height='18' src='https://goo.gl/9NmdBi' width='16'/>LM35</a></li>
        <li><a href=''>Em Breve</a></li>
     <li><a href=''>Em Breve</a></li>
    </ul>
</li>
<li class='has-sub'><a href=''><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> Exercicio +</a>
  <ul>
  <li><a href='https://goo.gl/JT55A5' target='_blank'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/>Saida de dados - LED </a></li>
 <li><a href='https://goo.gl/58RpOQ' target='_blank'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/>Utilizando Botões</a></li>
     <li><a href=''>Em Breve</a></li>
   <li><a href=''>Em Breve</a></li>
  </ul>
</li> 
  <li><a href='https://goo.gl/dzM5P9'><img src='https://goo.gl/08tJqU'/> Marcha Imperial</a></li>  
 </ul>
</li>

<!-- Opção Banco de dados-->
<li class='has-sub'><a href='url da pagina'>Banco de Dados</a>
<ul>
  <li class='has-sub'><a href='url da pagina'>Software e instalações +</a>
     <ul>
<li><a href='https://goo.gl/4bB5ei'><img src='https://goo.gl/ZWtEmJ'/>Software Brmodelo</a></li>
<li><a href='https://goo.gl/OJF0hU'><img src='https://goo.gl/ZWtEmJ'/>Instalando Oracle 11g</a></li>
<li><a href='https://goo.gl/LxqePF'><img src='https://goo.gl/ZWtEmJ'/>SQL Developer</a></li>
     </ul>
       </li>
<li class='has-sub'><a href='url da pagina'>Modelagem de Dados +</a>
     <ul>
       <li><a href='https://goo.gl/802rA6'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> 1ª Atividade DER</a></li>
   <li><a href='http://goo.gl/T9onHE'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> 2ª Atividade DER</a></li>
   <li><a href='https://goo.gl/lQF9Pd'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> Exercício Introdução a modelo lógico</a></li>
      <li><a href='https://goo.gl/EcBA6n'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> Exercício de Derivação de modelos</a></li>
     <li><a href='https://goo.gl/ZYNwdx'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> Exercício de Derivação de modelos II</a></li>
  </ul>
     </li>
   
 <li class='has-sub'><a href='url da pagina'>Desenvolvimento em Banco de Dados Oracle +</a>
  <ul>
<li><a href='https://goo.gl/9WviTW'><img align='left' height='16' src='https://goo.gl/9NmdBi' width='16'/> Gerando TXT com SPOOL</a></li>
<li><a href='https://goo.gl/e3dFqV'><img align='left' height='16' src='https://goo.gl/9NmdBi' width='16'/> Criação de Tabelas</a></li>
<li><a href='https://goo.gl/IdFrsL'><img align='left' height='16' src='https://goo.gl/9NmdBi' width='16'/> Default- Atribuindo valores padrão</a></li>
<li><a href='https://goo.gl/48y25Z'><img align='left' height='16' src='https://goo.gl/9NmdBi' width='16'/> Alteração de Tabelas</a></li>
    <li><a href='https://goo.gl/kfs06h'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> 1ª Questionario de Banco de dados</a></li>
<li><a href='https://goo.gl/T3ul7J'><img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> 1ª Atvidade de Banco de dados</a></li>
<li><a href='http://goo.gl/FISphv'> <img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> Atvidade de Constraints</a></li>
<li><a href='https://goo.gl/3QoePy'> <img align='left' height='18' src='https://goo.gl/VDYa8q' width='18'/> 1ª Criação de Bando de dados</a></li>
    <li><a href='https://goo.gl/OLWTx9'><img align='left' height='16' src='https://goo.gl/9NmdBi' width='16'/> Operador de concatenação</a></li>
<li><a href='https://goo.gl/6ifHiH'>Script para aula de DML</a></li>
   </ul>
      </li>
<li class='has-sub'><a href='url da pagina'>Artigos +</a>
 <ul>
<li><a href='https://drive.google.com/open?id=0B53RVp4lD2iXOWN0UG1VZDNvejQ' target='_blank'><img align='left' height='18' src='https://goo.gl/9NmdBi' width='18'/>Mineração de Dados - Conceitos e Aplicaçõe</a></li>
<li><a href='https://drive.google.com/open?id=0B53RVp4lD2iXZXFKRDhuWldfRFE' target='_blank'><img align='left' height='18' src='https://goo.gl/9NmdBi' width='18'/> Sistemas de Apoio a Decisão - Dataminig</a></li>
 
 </ul>
    </li>


</ul>
</li>

<!-- Opção - CURIOSIDADES--> 

<li class='has-sub'><a href='url da pagina'>Curiosidades</a>
  <ul>
<li class='has-sub'><a href='url da pagina'><> Trabalhos Orientados +</a>
     <ul>
<li><a href='http://tcc.breathmobi.com.br/'><img align='left' height='16' src='https://goo.gl/9NmdBi'/>Breathmobi</a></li>
<li><a href='http://movegoapp.com.br/'><img align='left' height='16' src='https://goo.gl/9NmdBi'/>MOVEGO</a></li>
 </ul>
           </li>
<li class='has-sub'><a href=''><img align='left' height='16' src='https://goo.gl/9NmdBi'/> Sites e arquivos históricos +</a>
            <ul>
<li><a href='https://goo.gl/qCb3m8'><img align='left' height='16' src='https://goo.gl/9NmdBi'/>Primeiro site da WEB</a></li>
<li><a href='url ' target='_blank'><img align='left' height='16' src='https://goo.gl/9NmdBi'/>Anuncio do Apple I</a></li>
     </ul>
               </li>
<li><a href='http://goo.gl/wm9gsa'> <img align='left' height='16' src='https://goo.gl/9NmdBi'/> Recomendações boa leitura</a></li>
<li><a href='https://goo.gl/rc8INB'><img src='https://goo.gl/08tJqU'/> Isaac Asimov</a></li>
<li><a href='https://goo.gl/Cd2Awp'><img src='https://goo.gl/08tJqU'/> Aprender inteligência  - Prof. Pier</a></li>
<li><a href='https://goo.gl/UP82Cp'><img src='https://goo.gl/08tJqU'/> Funcionamento do computador </a></li>
<li><a href='https://goo.gl/9bAht6'><img src='https://goo.gl/08tJqU'/> Evolução da informática</a></li>
<li><a href='https://goo.gl/52fUVK'><img src='https://goo.gl/08tJqU'/> Diferença entre entender e saber</a></li>
<li><a href='https://goo.gl/JppdJy'><img src='https://goo.gl/08tJqU'/> IoT - Internet das coisas</a></li>
<li><a href='https://goo.gl/GlnNUl'><img src='https://goo.gl/08tJqU'/> Big Data -O que é</a></li>
<li><a href='https://goo.gl/RyqH0f'><img src='https://goo.gl/08tJqU'/> Futuro da realizda aumentada</a></li>
</ul>
   </li>
</ul>
</div>

Se voce usar esse código em algum projeto seu, não esqueça de referenciar o nosso blog e se possivel recomendar nossas postagens....

Não esqueça de curtir nossa pagina no facebook no link abaixo: