Pesquisar

Open Hardware

Embora seja um conceito aparentemente simples, o conceito de Open Hardware no entanto ainda confunde muitas pessoas, que associa esse tipo de hardware à pirataria.
Iremos procurar de forma simples e sucinta procurar  ajuda-lo a entender o conceito  Open Hardware (ou Hardware livre), para auxilia-lo em suas próximas aquisições.

O QUE É OPEN HARDWARE?

O conceito Open Hardware é bastante parecido com o conceito de software livre, difundido pelo sistema operacional Linux, onde o  código fonte é aberto, ou seja, você pode baixar o código, fazer as suas próprias modificações e criar um Linux customizado.


Com o  Open Hardware é semelhante. São circuitos eletrônicos ou hardware de computador que podem ser copiados livremente, uma vez que o próprio desenvolvedor disponibiliza o diagrama elétrico (esquema elétrico), lista de componentes (BOM), layout de placa e outros informações relacionadas ao hardware.
Geralmente o desenvolvedor não cobra nenhuma taxa de licença, em alguns casos é exigido que o nome dele seja incluído nos créditos do projeto final. O desenvolvedor também pode exigir que qualquer projeto baseado em seu trabalho seja distribuído no esquema de Open Hardware.

AS VANTAGENS DO OPEN HARDWARE

Redução de custos talvez seja a primeira coisa que venha à cabeça quando se pensa em Open Hardware. Um fabricante pode encomendar milhões de componentes ao mesmo tempo, obter um desconto junto aos fornecedores e repassar esse desconto ao preço final do equipamento.
No entanto outra grande vantagem é a possibilidade de melhorar o hardware, acrescentando alguma funcionalidade extra ou até mesmo resolvendo algum problema de funcionamento no hardware original. 
PIRATARIA OPEN  HARDWARE 
Open Hardware (em inglês, Open source hardware) é um hardware eletrônico constantemente confundido com pirataria, mas são conceitos bastante distintos. Vamos tomar como exemplo o Arduino. Um determinado fabricante pode colocar em uma mesma placa um microprocessador ATmega, um regulador de tensão, o chip FTDI, os demais componente e criar seu próprio Arduino.
O que ele não deve  é utilizar o nome Arduino, o logo e a frase “Made in Italy”, principalmente se ele não foi produzido lá, certo ? Nesse caso, estaria caracterizada a pirataria.

PRODUTOS

Exemplo a comparação entre um Arduino Uno Italiano e uma placa baseada em Open Hardware.

clique para ampliar 

UTILIZANDO TFT1.8

Vamos montar um circuito para mostrar como utilizar um Shield TFT 1.8
Material necessário
01 Uno
Cabos  para conexão

Realize as conexões conforme tabela à baixo:

Display
Uno
+5V:
+5V
MISO:
pin 12
SCK:
pin 13
MOSI:
pin 11
LCDCS:
pin 10
SD CS:
pin 4
D/C:
pin 9
RESET:
pin 8
BL:
+5V
GND:
GND

Carregue no SD card uma imagem com o nome logo2.bmp, este nome pode ser alterado mas é necessário alterar no software também
Para controle do LCD iremos utilizar a biblioteca TFT que já vem na IDE 1.0.6

Código Arduino para o TFT1.8


// Referenciado pelo exemplo de Enrico Gueli
//Created 19 April 2013 by Enrico Gueli

// include the necessary libraries
#include <SPI.h>
#include <SD.h>
#include <TFT.h> // Hardware-specific library

// Definicao pinos para o UNO
#define SD_CS  4
#define LCD_CS 10
#define DC     9
#define RESET  8 

// Definicao pinos para o Leonardo
// #define SD_CS  8
// #define LCD_CS 7
// #define DC   0
// #define RESET  1
TFT myScreen = TFT(LCD_CS, DC, RESET);

// esta variável representa a imagem a ser desenhado na tela
PImage imagem;

void setup() {

  // initialize the serial port
  Serial.begin(9600);
  while (!Serial) {
    // wait for serial line to be ready
    // needed for the Leonardo

  }

  // try to access the SD card
  Serial.print("Mostrando Imagem TFT");
  Serial.print("\n");
  Serial.print("Inicializando SD card...");
  if (!SD.begin(SD_CS)) {
    Serial.println("falhou!");
    return;
  }
  Serial.println("OK!");

  // initialize and clear the GLCD screen
  myScreen.begin();
  myScreen.background(255, 255, 255);

  myScreen.stroke(0, 5, 120);
  myScreen.println(F("AF Eletronica"));
  myScreen.stroke(0, 0, 255);
  myScreen.println();
  myScreen.println(F("Baseado Exemplo"));
  myScreen.println(F("19 April 2013 Enrico Gueli"));
  myScreen.println(F("Exemplo TFT Bitmap"));
  myScreen.stroke(0, 0, 0);
  myScreen.println(F("Abra o monitor Serial"));
  myScreen.println(F("para ver as propriedades"));
  myScreen.println(F("da imagem"));
  delay(5000);

 
  myScreen.background(255, 255, 255);

  // Lê a imagem do SDcard
  imagem = myScreen.loadImage("logo2.bmp");



  // Verifica a propriedade da imagem
  if (imagem.isValid() != true) {
    Serial.println("erro a ler image logo2.bmp");
  }
  //write the image on screen
  myScreen.image(imagem, 5, 10); //(coluna, linha)
}

void loop(){
// nothing happening here

}

ESCREVENDO DADOS SDCARD

Iremo monitorar o sensor de temperatura DHT11 que informa temperatura e umidade, no entanto no exemplo estaremos abordando somente a temperatura, uma vez que queremos mostrar como escrever dados em um Cartão SD.
A ideia é gerar os dados para que posteriormente o usuário possa traçar o gráfico da variação de temperatura de um determinado dia ou de um equipamento.
Para o projeto será necessário os seguintes itens:
1  Arduino (qualquer modelo) no caso utilizamos o UNO R3
1  módulo SD(para datalogger)
1  Cartão SD
9  Jumpers para conexão

Monte o Circuito como no exemplo à seguir:




Execute o código em seu Arduino:
    
    #include <SPI.h>
    #include <SD.h>
    #include <DHT.h>
   
    #define DHTPIN 2   // aqui define em qual pino esta ligado o sensor de temperatura
    #define DHTTYPE DHT11
   
    DHT dht(DHTPIN, DHTTYPE);
      
    const int chipSelect = 4;
    unsigned int i;
    File dataFile;
    
    void setup() {
     
      Serial.begin(9600);
         pinMode(13,0);
    
    //  Serial.print("Initializing SD card...");
      pinMode(10, OUTPUT);
    
   // cria o Arquivo chamado datalog.csv poderá ser dado o nome //que quiser, obs pode ser criado na      //extencao .txt sem problemas basta mudar .csv para .txt
      
      char filename[] = "datalog.csv"; 
      delay(100);
      Serial.println(filename); // imprimi o nome do Arquivo via serial
     
      referencia_projeto();
      
      if (!SD.begin(chipSelect)) {
        Serial.println("Cartao Falhou, ou nao esta presente");
        return;
      }
     
   
      Serial.println("Cartao Inicializado");
      dataFile = SD.open("datalog.csv", FILE_WRITE);
      dataFile.close();
     
    }
    
    void loop() {
   
      int  t_dht11 = dht.readTemperature(); //Le o valor da temperatura guarda em t_dht11
      Serial.println(t_dht11); // imprimi a temperatura na serial
      delay(200); 
    
      File dataFile = SD.open("datalog.csv", FILE_WRITE);  // abre o Arquivo para escrita
    
      if(dataFile) {
        if(i==0){
        }
          dataFile.println(t_dht11); // escreve a temperatura no SDCard
          dataFile.close();
          delay(500);        
      } 
    
      else {
        Serial.println("erro ao abrir datalog.csv");
      }
    
    }
   
    void referencia_projeto(){
     
      Serial.println(">>****************************<<");
      Serial.println("Mostra Temperatura DHT11");
      delay(500);
      Serial.println("AFEletronica.com.br");
      delay(500);
      Serial.println(">>****************************<<");
      delay(1000);