Ir para o conteúdo

Pesquisar na Comunidade

A mostrar resultados para tags ''arduino''.



Mais opções de pesquisa

  • Pesquisa por Tags

    Introduza as tags separadas por vírgulas.
  • Pesquisar por Autor

Tipo de Conteúdo


Fórum

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • SharePoint
    • Apresentação de Software
  • Informática Extra-Programação
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Matemática
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categorias

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Procurar resultados em...

Pesquisar conteúdos que contêm...


Data de Publicação

  • Início

    Fim


Última Actualização

  • Início

    Fim


Filtrar por número de...

137 resultados

  1. Marta Barbosa

    Address em Arduino

    Boa noite, Sou iniciante em arduino e estou a fazer um projeto para a faculdade, no entanto tenho um pequeno problema e preciso de ajuda. Pelo que eu percebi, o sensor de watchdog por predefinição vem alocado às entradas A4 e A5 do Arduino Uno devido ao DS1307_ADDRESS que vem predefinido com essas entradas, no entanto os meus Arduinos já tem essas entradas ocupadas, (por causa da escravatizaçao). Alguém me sabe dizer como faço para mudar a directoria das entradas, por favor? Ou então como faço para o arduino ler a data e hora do pc e não precisar do watchdog. Desde já agradeço
  2. Pessanha24

    Arduino - Revista PROGRAMAR

    Boas Aproveito para deixar o link de duas edições da Revista PROGRAMAR onde se podem ser lidos dois artigos sobre o Arduino, espero que possam ser úteis.... Introdução ao Arduino Arduino e a Aquisição de dados Arduino e o cálculo da FFT Boas leituras... Aproveito também para deixar este tópico para acrescentarem informação que acharem relevante sobre o Arduino e aplicações concretas Mais alguma informação: Slides Arduino Tutorial Sem mais, Pessanha24
  3. JakeBass

    Arduino e 2 Motores

    Como é que ligo 2 motores ao arduino UNO?
  4. filipe18

    Arduino leitura de voltagem

    Boa tarde amigos Estou a fazer um projecto onde tenho com o arduino saber a voltagem de uma bateria de 12 v Como fasso para saber a voltagem que a bateria tem com o arduino ? Obrigado
  5. giantpt

    Comunicação ethernet com Arduino

    Boas. Gostaria de pedir ajuda para conseguir configurar 2 arduinos equipados com shields ethernet de forma a comunicarem um com o outro. No fundo preciso que um dos arduinos leia valores analógicos e digitais provenientes de potenciometros e interruptores, converte-los em valores e envia-los por LAN, calculo que por via de pacotes UDP para o segundo arduino. A minha duvida reside apenas no lado da comunicação LAN entre arduinos. Ja tentei os vários exemplos de comunicação UDP que encontramos no IDE mas não estou a conseguir o que pretendo. Nao faço ideia como "empacotar" os valores, como envia-los via UDP, nem como recebe-los e muito menos de como os "desempacotar" Alguém me pode ajudar com este problema? Se nao for pedir muito, agradecia um exemplo pratico e forma de dois códigos funcionais que eu possa adaptar às minhas necessidades, um send e um receive. Obrigado
  6. ricardo93

    LM35 Arduino Library

    Versão 1.0

    124 downloads

    Biblioteca para utilização do sensor LM35 com o Arduino.
  7. PsySc0rpi0n

    Matriz bi-dimensional - aceder a posição específica

    Bom dia! Há algum tempo que não vinha aqui chatear! Bom, cá vai! Tenho uma matriz bi-dimensional quem tem um mapa com custom chars que vai servir para criar uma letra grande num LCD Esta letra grande vai ocupar 5 colunas e 4 linhas, tipo quando juntamos várias televisões para obter uma imagem grande a partir de partes dessa imagem grande em cada televisão. A matriz está declarada da seguinte maneira: static const PROGMEM unsigned char customCharMap[20][8]{ {......}, {......}, . . . {......} } Ou seja, esta variável contém 20 caracteres especiais, cada um constituído por 8 bytes Depois tenho uma função para guardar esta variável numa área especial de memória do LCD, denominada CGRAM. O problema é que esta memória só tem espaço para 64 bytes! Ou seja, só posso gravar 8 custom chars de cada vez, dos 20 que constituem a letra grade final, usá-los e depois gravar outros 8 e assim sucessivamente até completar a letra final. Para simplificar, e como a letra final tem 5 colunas e 4 linhas, vou gravar apenas 5 custom chars de cada vez na tal CGRAM do LCD e depois imprimi-los nos LCD. Depois gravo os seguintes 5 custom chars na CGRAM e volto a imprimi-los no LCD na linha seguinte e assim sucessivamente até ter a letra final completa! Algo como isto: 1º - Gravar 5 custom chars na CGRAM 2º - Imprimi-los na linha 0 do LCD 3º - Gravar os 5 custom chars seguintes na CGRAM em cima dos anteriores 4º - Imprimi-los na linha 1 do LCD 5º - Gravar os 5 custom chars seguintes na CGRAM em cima dos anteriores 6º - Imprimi-los na linha 2 do LCD 7º - Gravar os últimos 5 custom chars na CGRAM em cima dos anteriores 8º - Imprimi-los na linha 3 do LCD Agora o código. Tenho uma função para gravar um custom char na CGRAM que é a seguinte void writeCustomChar(static const PROGMEM unsigned char *customChar, uint8_t customCharOffset){ lcd_command(_BV(LCD_CGRAM)); /* set CG RAM start address 0*/ for (uint8_t i = customCharOffset; i < customCharOffset + 5; i++){ for(uint8_t j = 0; j < 8; j++) lcd_data(pgm_read_byte_near(&customChar[i][j])); } } As minhas dúvidas estão apenas relacionadas com os tipos de dados da matriz bi-dimensional e os tipos de dados enviados para esta função. Por outras palavras, ponteiros! Ou seja, não sei se a passagem de parâmetros por referência está correcta.
  8. giantpt

    Arduino e CANBus

    Boas, gostaria de saber se ha laguem por aqui que saiba programar em arduino para comunicação CanOpen que é uma derivação de CanBus. O objectivo é ter um arduino a controlar dois controladores de motor da marca roboteq usando este protocolo. obrigado
  9. Tiago CUnha

    Projeto de Aptidão Profissional (Arduino)

    A minha PAP é a seguinte: c/ arduinos Wifi's connectar um relógio (feito por mim) a um contador de tempo bilhar, e deste modo através do relógio conseguir visualizar o tempo decorrido e o preço a pagar. Estou c dificuldades, por exempli nao estou a consgeuir conectar os dois arduinos Wifi shield (o código em C que arranjei não funciona).
  10. korn69954

    Projecto com arduino e servo motor

    Boa tarde pessoal Sou novo aqui no forum e muito fresquinho no que toca a programaçao e procuro ajuda num projecto que pretendo realizar com um arduino uno e um servo motor, portanto passo a explicar o que pretendo e deixo um video a exemplificar. Pretendo programar um arduino uno para manter o servo sempre numa posiçao, vamos chamar "fechado", em que para o servo passar a posiçao "aberto" seja com um segundo sinal de corrente, ou seja, o arduino apenas vai fazer o servo trabalhar ate um X de abertura quando recebe o segundo sinal de corrente e para, ao desligar esse segundo sinal de corrente o servo volta a posiçao inicial que é "fechado". Preciso de ajuda no que toca a programar e no material que necessito, ja tenho o arduino, servo, fios com encaixes proprios para o arduino/servo, nao sei se para isto devo utilisar algum tipo de relé ou algo mais, ja pesquisei uns valentes dias e ainda nao encontrei nada do que pretendo nem quem me ajude, se houver alguem que me possa dar umas dicas fico agradecido. Entretanto ja fui lendo algumas coisas sobre arduino para iniciantes e ja consegui fazer algumas coisitas basicas com o servo mas ainda estou muito longe de me safar em algo mais complicado. Fica entao um video do que pretendo no final, neste caso o segundo sinal de corrente sera o de marcha atras engatada, claro que terei de usar um redutor de 12v para 5v que tambem ja tenho. https://www.youtube.com/embed/1eeIuuES1t4?feature=oembed
  11. n3lThon

    Onde comprar o Arduino em Portugal?

    Boas, Pensei em comprar o Arduino, mas não encontro lojas em Portugal que o vendem. Que lojas conhecem que vendam esta placa?
  12. DEVILin

    HTTP rede local

    Boas pessoal Estou a tentar ler o codigo fonte de paginas http o qual tenho este código que funciona perfeitamente para servidores remotos: Public Shared Async Function GetServerResponse(iRemoteServer As String) As Task(Of String) ' Try 'Create an HTTP client object Dim vHTTPClient As New Windows.Web.Http.HttpClient() ' 'Add a user-agent header to the GET request. Dim vHeaders = vHTTPClient.DefaultRequestHeaders ' 'The safe way to add a header value is to use the TryParseAdd method and verify the return value is true, 'especially if the header value is coming from user input. Dim vHeader As String = "ie" If Not vHeaders.UserAgent.TryParseAdd(vHeader) Then Exit Try 'Invalid header value: " & vHeader vHeader = "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)" If Not vHeaders.UserAgent.TryParseAdd(vHeader) Then Exit Try 'Invalid header value: " & vHeader Dim vRequestUri As New Uri(iRemoteServer) 'Send the GET request asynchronously and retrieve the response as a string. Dim vHTTPResponse As New HttpResponseMessage() Dim vHTTPResponseBody As String = "" Try 'Send the GET request vHTTPResponse = vHTTPClient.GetAsync(vRequestUri) vHTTPResponse.EnsureSuccessStatusCode() vHTTPResponseBody = Await vHTTPResponse.Content.ReadAsStringAsync() Catch ex As Exception Return Nothing End Try ' Return vHTTPResponseBody ' Catch ex As Exception ' End Try ' Return Nothing End Function acesso como: Dim vResponse = WebRequests.GetServerResponse("http://www.google.pt/") No entanto tenho um arduino conetado em rede e envia respostas em http. Dim vResponse = WebRequests.GetServerResponse("http://192.168.1.70/") quando tento aceder ao arduino para obter a resposta http o codigo acima falha. Alguem me pode dar uma ajuda nisto? Obrigado
  13. Nuno Santos

    Máquina CNC a partir de drives de CD/DVD

    Boas, Vou refazer um projecto que fiz em tempos de uma CNC a partir de motores de CDROM/DVDROM para quem se queira iniciar neste mundo. É um projecto muito barato que pode servir para dar alguns conhecimentos no mundo destas maquinas. Vou postando aqui a medida que for avançado os detalhes do processo. Lista de material necessario para o projecto : - Arduino UNO ou MEGA - 3 easydrivers v4.4 ou outro driver para controlar os motores de passo de 2 fases (o driver tem de ter como input para o motor STEP e DIR) - 2 drives de CDROM/DVDROM de desktops (as de portatil que eu abrir tinham motores DC) - 1 drive de diskettes ou uma terceira drive de CROM/DVDROM (neste projecto que vou usar vai ser uma drive de diskettes mas é facil adaptar para outra qualquer) - Fios de jumper ou outro fio para soldar nos motores. - Multimetro para medir continuidade Vou deixar o Arduino e as easydrivers para o fim pois requerem algumas configurações. Fica aqui uma foto do easydriver que estou a usar O Objectivo é criar algo deste tipo : https://www.youtube.com/embed/-J4HZjoR2IA?feature=oembed Passo 1 : Abrir duas drives de CD/DVD e retirar a "cama" onde esta o laser, não vou colocar o detalhe de como la chegar pois é bastante straight forward, a unica coisa necessaria é uma chave de parafusos. De qualquer forma se tiverem alguma duvida de como lá chegar digam que eu tentarei ajudar. O que queremos obter é o que está na imagem abaixo, e dependendo da drive esta estrutura pode ser diferente mas muito similar. De seguida temos de ver dos 4 pinos do motor quais deles tem "continuidade", ou seja, pegar num multimetro e ir tocando nos pinos e ver que pares dão o efeito sonoro de continuidade.O objectivo final é ter dois pares de dois fios que vao ser as duas fase Depois de identificadas as duas fases, soldei 1 pares de fios jumper (preto e vermelho) a cada fase. Cuidado para nao fazer curto circuito de uma fase para a outra pois pode queimar a driver e o motor sobreaquecer. Coloquei fios de jumper por uma facilidade para depois conectar a driver (no meu caso easydriver). Amanha coloco mais fotos dos proximos passos.
  14. Bom dia, Tenho um projeto para preparar com alguma urgência de um carro com um motor passo a passo (step motor) em cada roda (tem 2 rodas e um apoio). Em termos de algoritmo e raciocinio tenho tudo pronto, mas passar daí para um código AVR C que funcione é outra história. Estou bastante verde no que toca a programar no arduino e para o prazo curto que tenho duvido que consiga chegar lá sozinho pelo que venho aqui pedir uma mãozinha. O algoritmo/raciocinio: 1) Detetar com uma interrupção um flanco na entrada que seria o START bit a indicar uma introdução de uma cadeia de bits correspondentes a uma tecla; 2) Esperar 3.58ms 3) Ter várias interrupções de 901us e detetar se nesse ponto tenho entrada a 1 ou a 0, se estiver a um, colocar num vetor[13] o valor 1 na posição da variável BIT que será incrementada +1 a cada interrupção 4) reiniciar a variável BIT 5) comparar o vetor[13] que será a chave de um botão pressionado com as chaves de todos os botões que temos no comando 6) de acordo com o resultado da comparação, mover o stepper +1, -1 ou 0 (parado) 1 passo. Com isto, se mantiver o botão premido o programa funciona em ciclo e estará sempre a mandar o stepper rodar (tenho uma libraria que o faz rodar 90º para a frente ou para trás independentemente da posição atual). Agradecia alguma ajuda no código visto que nem tenho uma ideia bem definida de como começar ou por onde começar.
  15. Gostava de saber se dá para copiar um programa da placa de Arduino, para o PC, ou seja para o software de programação Arduino. É que fiz o upload tudo corretamente para a placa do Arduino, mas depois apaguei o programa do pc e não sei como o vou buscar é que não está em lado nenhum... Preciso disto URGENTE!!!! Obrigado pelo tempo.
  16. PsySc0rpi0n

    Criar movimento suave com bitshift operators

    Boas. Ando a ver se consigo arranjar maneira de criar movimento num LCD de forma suave sem ser simplesmente saltar de uma posição para outra. Vou tentar explicar com alguns "desenhos". O LCD é composto por linhas e colunas, sendo que no meu caso, tenho um LCD de 20 colunas * 4 linhas O mais comum é fazer saltar um caractére de uma coluna para a coluna seguinte mas isto cria um movimento pouco suave e parece que estamos a jogar um jogo a 3 fps ou menos. Agora a parte mais técnica é a seguinte: cada posição do LCD é constituída por uma matriz de 5 colunas e por 8 linhas de pixeis e cada '__' é constituído por: Isto permite-nos criar caractéres personalizados colocando cada pixel a 0 ou a 1. Exemplo: Ou seja, a ideia é criar uma matriz: int matrix [8] = { 0b00011000, 0b00100100, 0b01000010, 0b10000001, 0b01000010, 0b00100100, 0b00011000, 0b11111111 } E para criar movimento suave, tentar usar as operações de bitshift para ir avançando ou atrasando os 1's daquela posição para os ir colocando na posição seguinte: Ou seja, os 1's vão acançando bit a bit para a direita, e vão abandonando a posição actual para irem aparecendo também bit a bit na posição seguinte. Algo como isto: depois passa a isto pronto e depois o losango vai passando para a posição seguinte, bit a bit... Já não me apetece desenhar mais!!! Fonix! PS: Eu disse que cada caractére é composto por 5 colunas e 8 linhas mas desenhei como se fosse 8 * 8. Não vou emendar porque o que importa é perceber como funciona e perceber o que pretendo fazer!
  17. PsySc0rpi0n

    Simplificar código

    Boas... Escrevi um pequeno código para recriar um movimento tipo radial para usar nos conhecidos sistemas pan/tilt, que usam dois servo-motores, um para o eixo dos xx e outro para o eixo dos yy. #include <Servo.h> #define VSPEED 8 #define HSPEED 10 #define UP 1 #define DOWN 0 Servo horservo; // create servo object to control a servo Servo verservo; // a maximum of eight servo objects can be created int verpos = 0; // variable to store the vertical servo position int horpos = 0; // variable to store the horizontal servo position void setup(){ horservo.attach(9); // attaches the horizontal servo on pin 9 to the servo object verservo.attach(8); // attaches the vertical servo on pin 9 to the servo object horservo.write(90); verservo.write(0); Serial.begin(9600); } void Print_Data(){ Serial.print("Vert Pos: "); Serial.print(verpos); Serial.print(","); Serial.print("Hor Pos "); Serial.print(horpos); Serial.print('\n'); } void motion_1(){ for(; horpos < 180; horpos += 2){ horservo.write(horpos); if(verpos < 90){ verservo.write(++verpos); delay(VSPEED); } else if (verpos > 0){ verservo.write(--verpos); delay(VSPEED); } delay(HSPEED); Print_Data(); } for(; horpos > 0; horpos -= 2){ horservo.write(horpos); if(verpos < 90){ verservo.write(--verpos); delay(VSPEED); } else if (verpos > 0){ verservo.write(--verpos); delay(VSPEED); } delay(HSPEED); Print_Data(); } } void motion_2(){ for(pos = start_pos; pos != end_pos; ) } void loop(){ motion_1(); } O código está a funcionar, não sei se está perfeito ou não, mas para já serve! No entanto, alguém com que eu estava a conversar, disse-me que o meu código podia ser simplificado e deu-me algumas pistas: Estas foram as pistas! Será que me conseguem ajudar???
  18. Carlos Velosa

    Uso de Arduino em estores

    Boas pessoal, Bem estou com severas duvidas em relação a um sistema de Arduino para estores. É o seguinte, neste momento tenho motores nos estores das minhas janelas que são controlados por interruptores dos normais, daqueles que se encontram a venda em qualquer superfície comercial da marca EFAPEL. Portanto gostaria de saber se seria possível em cada motor de estore colocar uma placa de Arduino que funciona se num sistema independente. Ou seja este interruptor continuaria a funcionar e caso quisesse subir e descer o estore pela internet também seria possível. E uma ultima questão, esta placa teria de ter WiFi, embora haja a possibilidade de passar cabos rj45 preferia utilizar o WiFi para não enxer as caixas dos estores de cabos, sendo que os cabos do alarme que tenho em casa já estarem dentro de uma das caixas. Portanto não queria colocar mais fios para alem da corrente eléctrica para o Arduino. Obrigado pessoal
  19. JTeixeira

    Problema no Arduino (C)

    Boas, Tenho um Arduino Mega 2560, que estou a começar a aprender a programar usando o atmel studio 7.0. Criei a "External Tool" para fazer a compilação e o upload do programa para o arduino. Para começar, fiz um funcionamento simples, que consiste em três switchs de pressão e um display de 7 segmentos, em que pressionando cada switch é apresentado no display o seu respectivo numero (1,2 ou 3) durante 1 segundo. aqui está o codigo: #define F_CPU 16000000L #include <avr/io.h #include <util/delay.h> volatile unsigned char digito; const unsigned char tabela[]={0xc0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90, 0xFF, 0x86}; void inicio (void) { DDRB=0b00000000; PORTB=0b00000000; DDRA=0xFF; PORTA=0xFF; } void display(void) { PORTA=tabela[digito]; _delay_ms(1000); PORTA=0xFF; } int main(void) { inicio(); while (1) { if(PINB & (1 << PINB0)==1) //If switch 1 is pressed { digito=1; // 1 Display display(); } if(PINB & (1 << PINB1)==1) //If switch 2 is pressed { digito=2; // 2 Display display(); } if(PINB & (1 << PINB2)==1) //If switch 3 is pressed { digito=3; // 3 Display display(); } } } Acontece que quando pressiono o switch 2 e 3 não acontece nada, apenas funciona com o switch 1. Já tentei alterar para outro PORT, mas em todos apenas está a ler o PIN0 de cada PORT. Alguém me pode ajudar a resolver isto?
  20. asrnothing

    Controlar arduino por usb e php

    Gostava que alguem me podese ajudar ou me fornecer uma maneira de poder controlar o arduino a ligar um led via internet pelo php o arduino ta ligado por usb e os php esta num servidor web se alguem me poder ajudar
  21. JohnNox

    C++ ,Protocolo I2C

    Boa tarde, Alguém me poderia arranjar o código para protocolo de comunicação I2C entre 2 arduinos (um master, e um slave) em C++..
  22. José Brito

    Raspberry - Programação em C de baixo nível

    Boa noite, sou estudante na FEUP e este ano aprendi os básicos da programação em C de baixo nível com o Arduino (PWM, Timers, etc.) e surgiu a oportunidade de programar um raspberry pi 2 e gostava de saber se alguém tem algum tutorial de programação deste micro em C de baixo nível, uma vez que todos os tutoriais que encontro na net são em python e não é a linguagem em que pretendo programar. No Arduino eu "mexia" nos registos com código da seguinte forma: DDRC = DDRC | 0x01; Gostava de algum tutorial em que programasse de forma semelhante à do Arduino, se alguém tiver... Cumprimentos
  23. Boas ppl, Como eu tive alguma dificuldade em fazer este "pequeno" projecto que é uma base para a minha PAP (Projecto de Aptidão Profissional) do curso de Técnico de Electrónica, Automação e Computadores vou colocar um pequeno snippset para quem anda à procura de algo semelhante e não encontrou como fazer (tal como eu xP), por isso eu coloquei mãos à massa e fui tentando com alguns conhecimentos básicos/intermediários de JAVA network. Código do Arduino: #include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress serverIP(192,168,1,105); int serverPort = 8888; int led_port = 5; String readString; EthernetServer server(serverPort); void setup() { Serial.begin(9600); Ethernet.begin(mac, serverIP); server.begin(); Serial.print("Server online."); pinMode(led_port, OUTPUT); } void loop() { EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) { char c = client.read(); if (readString.length() < 30) { readString.concat(c); } Serial.print("Command: "); Serial.println(readString); if (readString == "led1") { digitalWrite(led_port, HIGH); Serial.println("Led status: 1 (ON)"); resetString(); } if (readString == "led0") { digitalWrite(led_port, LOW); Serial.println("Led status: 0 (OFF)"); resetString(); } } } delay(1); client.stop(); } } void resetString() { readString = ""; } Programação em Java: (OBS.: Desculpem os publics, pensei no inicio separar em classes mas preferi assim xD) package com.example.newcasaautomatizada; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.Button; import android.widget.TextView; import java.io.*; import java.net.*; public class MainActivity extends Activity { public String ip = "192.168.1.105"; public int porta = 8888; public DataOutputStream toServer = null; public DataInputStream fromServer = null; public Socket socket = null; Boolean connected = false; Button btnConectar, btnLigarled, btnDesligarled; TextView textlog, fromArd; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnConectar = (Button) findViewById(R.id.btn_conectar); btnLigarled = (Button) findViewById(R.id.btn_ligarled); btnDesligarled = (Button) findViewById(R.id.btn_desligarled); textlog = (TextView) findViewById(R.id.textlog); changeConnectionStatus(false); outputText("OK!"); btnConectar.setonclickListener(buttonConnectonclickListener); btnLigarled.setonclickListener(buttonLigarLed); btnDesligarled.setonclickListener(buttonDesligarLed); } //fim onCreate Button.onclickListener buttonDesligarLed = new Button.onclickListener() { public void onclick(View arg0) { sendToServer("led0"); }}; Button.onclickListener buttonLigarLed = new Button.onclickListener() { public void onclick(View arg0) { sendToServer("led1"); }}; Button.onclickListener buttonConnectonclickListener = new Button.onclickListener() { public void onclick(View arg0) { if (!connected) { try { socket = new Socket(ip, porta); // Ip do arduino/ethernet toServer = new DataOutputStream(socket.getOutputStream()); fromServer = new DataInputStream(socket.getInputStream()); outputText("Ligado ao Ethernet!"); changeConnectionStatus(true); } catch (UnknownHostException e) { outputText(e.getMessage()); changeConnectionStatus(false); } catch (IOException e) { outputText(e.getMessage()); changeConnectionStatus(false); } } else { outputText("Desligado do Ethernet!"); closeAll(); outputText("Desligado!"); changeConnectionStatus(false); } }}; @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.main, menu); return true; } //fim onCreateOptionsMenu public void changeConnectionStatus(Boolean isConnected) { this.connected = isConnected; btnLigarled.setEnabled(isConnected); btnDesligarled.setEnabled(isConnected); if (isConnected) { btnConectar.setText("Desligar"); } else { btnConectar.setText("Ligar"); } }//fim changeConnectionStatus public void outputText(String msg) { textlog.setText(msg); } //fim outputText public void sendToServer(String msg) { if (connected) { try { toServer.writeBytes(msg); toServer.flush(); } catch(IOException e) { outputText(e.getMessage()); } } } //fim sendToServer public void closeAll() { try { toServer.close(); fromServer.close(); socket.close(); } catch (IOException e) { outputText(e.getMessage()); } } // fim closeAll } XML do android: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:baselineAligned="false" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:scrollbars="vertical" tools:context=".MainActivity" > <Button android:id="@+id/btn_conectar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/btn_conectar" /> <Button android:id="@+id/btn_ligarled" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/btn_conectar" android:layout_alignRight="@+id/btn_conectar" android:layout_below="@+id/btn_conectar" android:text="@string/btn_ligarled" /> <Button android:id="@+id/btn_desligarled" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/btn_ligarled" android:layout_alignRight="@+id/btn_ligarled" android:layout_below="@+id/btn_ligarled" android:text="@string/btn_desligarled" /> <TextView android:id="@+id/textlog" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/btn_desligarled" android:layout_below="@+id/btn_desligarled" android:layout_marginTop="21dp" android:text="@string/textlog" /> </RelativeLayout>
  24. progmais

    Arduino, como começar?

    Olá Pessoal Actualmente, eu gostava de começar aprender a trabalhar e perceber o funcionamento do arduino e não sei bem por onde começar? Qual é o hardware/arduino a comprar? cada arduino têm diferentes aplicações? É necessário saber programar em alguma linguagem de programação ou os simples concentos de iniciação a programação chegam para satisfazer os pedidos e a "demand"? Quais são as aplicações? Cumprimentos.
  25. Boa noite a toda a comunidade P@P. Encontro-me no último ano da minha Licenciatura em Engenharia Electrónica e Informática e, como é habitual no último ano os alunos têm de realizar um projecto, que tenha a ver com a área da electrónica/programação como é óbvio, se puder conjugar ambas as vertentes, melhor. O meu ensino secundário foi efectuado com sucesso num curso profissional, onde nos deram as bases na programação e, electrónica; agora na faculdade fui aperfeiçoando alguns conhecimentos; no que diz respeito à programação, em Basic, C#, Java, HTML CSS SQL, C/C++ (Arduínos). As minhas barreiras estão no que fazer para projecto final de curso (tendo em conta que faço qestão de o realizar com um amigo de confiança da minha turma; penso que será vantajoso na possibilidade de poder conciliar melhor os programas de trabalho no projecto com as aulas), estes obstáculos surgem uma vez que nos encontrámos com um mercado sobrelotado com ideias, com tecnologia, com projectos, de modo que encontrar algo novo e inovador se torna um pouco complicado, de modo a agradar ao público/jurados. Gostava que nos pudessem ajudar de alguma forma com a vossa maior experiência, das vossas vivências do dia-à-dia, que não seja mais para partilhar as vossas aventuras em projectos. Obrigado pela vossa atenção e, continuação de bom trabalho a todos.
×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.