Mudanças entre as edições de "Encerrado - Elaboração de plataforma para projeto de programação"
Linha 415: | Linha 415: | ||
Parâmetros: não possui | Parâmetros: não possui | ||
− | como utilizar: conectar (); | + | como utilizar: |
+ | conectar (); | ||
+ | |||
*Função "info" | *Função "info" | ||
Linha 421: | Linha 423: | ||
Parâmetros: não possui | Parâmetros: não possui | ||
− | como utilizar: info (); | + | como utilizar: |
+ | info (); | ||
+ | |||
*Função "enviar_digital" | *Função "enviar_digital" | ||
− | + | Envia um sinal para uma das 3 saídas digitais da placa de aquisição | |
como utilizar: | como utilizar: | ||
Linha 430: | Linha 434: | ||
Parâmetros: 2 parâmetros do tipo char, onde o primeiro representa uma saída digital (1, 2 ou 3) e o segundo representa o estado da saída, podendo ser 1(nível alto) ou 0(nível baixo). | Parâmetros: 2 parâmetros do tipo char, onde o primeiro representa uma saída digital (1, 2 ou 3) e o segundo representa o estado da saída, podendo ser 1(nível alto) ou 0(nível baixo). | ||
− | enviar_digital (saída, estado); | + | enviar_digital (saída, estado); |
+ | |||
/*IMPORTANTE: as varíaveis saída e estado, sao do tipo CHAR*/ | /*IMPORTANTE: as varíaveis saída e estado, sao do tipo CHAR*/ | ||
ou | ou | ||
− | enviar_digital (‘1’, ‘1’) | + | |
+ | enviar_digital (‘1’, ‘1’) | ||
+ | |||
/*saída 1 é colocada em nivel alto(5V)*/ | /*saída 1 é colocada em nivel alto(5V)*/ | ||
+ | |||
*Função "enviar_analogica" | *Função "enviar_analogica" | ||
− | + | função utilizada para enviar um sinal para uma das 2 saídas analógicas da placa de aquisição | |
como utilizar: | como utilizar: | ||
Linha 444: | Linha 452: | ||
enviar_analogica (saida, estado); | enviar_analogica (saida, estado); | ||
+ | |||
/*Onde a variavel saida e estado sao do tipo CHAR*/ | /*Onde a variavel saida e estado sao do tipo CHAR*/ | ||
+ | |||
ou | ou | ||
+ | |||
enviar_analogica (‘1’, “127”); | enviar_analogica (‘1’, “127”); | ||
+ | |||
/*onde a saída analógica 1 está sendo energizada com aproximadamente 2.5V*/ | /*onde a saída analógica 1 está sendo energizada com aproximadamente 2.5V*/ | ||
Linha 452: | Linha 464: | ||
*Função "receber_digital" | *Função "receber_digital" | ||
− | + | Função utilizada para receber infotrmações das entradas analógicas; | |
− | + | A entrada digital desta placa é do tipo seco. Ela retornará 0 caso a entrada NÃO estiver aterrada, e 1 se estiver. | |
Linha 461: | Linha 473: | ||
Retorno: o retorno desta função é um inteiro (int) | Retorno: o retorno desta função é um inteiro (int) | ||
− | receber_digital (char saida) ; | + | receber_digital (char saida) ; |
+ | |||
ou | ou | ||
− | receber_digital (‘1’) ; | + | |
+ | receber_digital (‘1’) ; | ||
+ | |||
/*onde a função retornará 0 ou 1 da entrada 1 */ | /*onde a função retornará 0 ou 1 da entrada 1 */ | ||
/*Existem 3 entradas digitais, portanto a variavel saída pode ser 1, 2 ou 3*/ | /*Existem 3 entradas digitais, portanto a variavel saída pode ser 1, 2 ou 3*/ | ||
Linha 469: | Linha 484: | ||
*Função "receber_analogica" | *Função "receber_analogica" | ||
− | + | Função utilizada para receber infotrmações das entradas analógicas; | |
− | + | As entradas analógicas retornam valores de 0,00V a 9,99V; | |
como utilizar: | como utilizar: | ||
Linha 477: | Linha 492: | ||
Retorno: o retorno desta função é um número real (float) | Retorno: o retorno desta função é um número real (float) | ||
− | receber_analogica (char saida) ; | + | receber_analogica (char saida) ; |
+ | |||
ou | ou | ||
− | receber_analogica (‘1’) ; | + | |
+ | receber_analogica (‘1’) ; | ||
+ | |||
/*onde a função retornará retornará um valor entre 0,00 e 9,99 */ | /*onde a função retornará retornará um valor entre 0,00 e 9,99 */ | ||
/*Existem 8 entradas analogicas, portanto a variavel saída pode ser 1, 2, 3, 4, 5, 6, 7 ou 8*/ | /*Existem 8 entradas analogicas, portanto a variavel saída pode ser 1, 2, 3, 4, 5, 6, 7 ou 8*/ | ||
+ | |||
*Função "print_display" | *Função "print_display" | ||
Linha 490: | Linha 509: | ||
//Parâmetros: print_display(linha,"mensagem"); | //Parâmetros: print_display(linha,"mensagem"); | ||
− | + | print_display (int linha, char mensagem[]); | |
+ | |||
*Função "limpar_display" limpa o display | *Função "limpar_display" limpa o display | ||
Linha 499: | Linha 519: | ||
//Parâmetros: não possui | //Parâmetros: não possui | ||
− | + | limpar_display(v); | |
{{collapse bottom}} | {{collapse bottom}} |
Edição das 00h12min de 27 de junho de 2013
desenvolvimento da bolsa | ||||||||
---|---|---|---|---|---|---|---|---|
Pontos a serem verificados
modinfo usbtouchscreen > usbtouchscreen modinfo input >
Saída: modificar a função enviar():
buf[1] = '1'; buf[2] = '2'; buf[3] = '5'; buf[4] = '5'; res = hid_write(handle, &buf[0], 5);
Rodando programas em C1: fazer o download da biblioteca: (upar no google docs
Se o driver sendo utilizado é o usbhid (generic-usb), siga os passos abaixo: - Descompacte a pasta biblioteca; - Entre no diretório biblioteca; - Como root, execute o arquivo .sh (MELHORAR para nao precisar ser root) ATENÇÃO: não adianta seguir em frente se o driver ainda nao foi reconhecido corretamente, confirme isso conectando (ou tirando e reconectando a placa) e entao com o comando dmesg: veja se existe esta linha: input: Cerne Tec... se nao, repita o passo 1a. Passo2: 2 - Instale o pacote Libusb 1.0
3 - Instale o pacote Libudev (cabeçalho e biblioteca)
4 - Existem 2 programas para testes, eles podem ser compilados: gcc ptest.c libprg.a -lusb-1.0 -o teste e gcc analo.c libprg.a -lusb-1.0 -o analogic OBS: Caso o seu sistema seja 64bits, utilize no lugar de libprg.a a bibprg.a
Mudar a permissão de acesso a plaquinha (feito com chmod); construir uma regra udev; "Mais uma dica é que, normalmente, novos dispositivos são criados com permissão de escrita somente para o root, até que você as modifique manualmente, usando o comando "chmod". O udev permite ajustar as permissões, modificando o dono, grupo e permissões de acesso do dispositivo. Isso pode ser usado para que scanners e outros dispositivos fiquem automaticamente acessíveis para todos os usuários do sistema, evitando dores de cabeça em geral, ou fazer com que um pendrive ou outro dispositivo em particular fique disponível apenas para um determinado usuário, mas não para os demais."[2] metas -semanaregra UDEV plaquinha; ok Display (rodar e função); ok teclado; ok Criando biblioteca em Cutilizando as informaçoes deste site, criei a bilibioteca com as funções do projeto tendo os arquivos ".o", hid-libusb.o, libusb.o, e prog.o criei a bilbioteca libprg.a: ar rvs libprg.a hid-libusb.o, libusb.o, e prog.o e utilizando o arquivo libprg.h ja foi possível rodar os programas, apenas lembrando de compilar o programa da seguinte forma gcc programa.c libprg.a -lusb-1.0 -o programa para que a biblioteca possa ser utilizada como uma padrao do sistem (-l...), basta copiar o arquivo "libprg.a" e entao compilar o programa utilizando "-lprg"
|
Ao usuário | ||
---|---|---|
Instalação1: fazer o download da Biblioteca v1 Versões em que o driver sendo utilizado pelo pc é o usbhid: OBS: O driver pode ser visto com o comando usb-devices (procurando pelo device com nome: Cerne Tec) com o comando dmesg é possivel ver outro "erro", a saída correta para este comando deve ser "input: Cerne..." e nao "Generic-USB..." Se o driver sendo utilizado é o usbhid (generic-usb), siga os passos abaixo: Passo 1a: Instale a regra Udev no computador: após reiniciar o computador teste a plaquinha e/ou o display, caso não funcione utilizando a regra UDEV, tente rodar arquivo shell seguindo os passos abaixo:
ATENÇÃO: não adianta seguir em frente se o driver ainda não foi reconhecido corretamente, confirme isso conectando (ou tirando e reconectando a placa) e então com o comando #dmesg: veja se existe esta linha: input: Cerne Tec... se nao, repita o passo 1a, ou execute o arquivo shell novamente. Passo2: 2 - Instale o pacote Libusb 1.0: -sudo apt-get install libusb-1.0-0-dev 3 - Instale o pacote Libudev: -sudo apt-get install libudev-dev 4 - Após todos os passos acima serem realizados Caso o seu sistema seja 64bits, utilize no lugar de libprg.a a bibprg.a Para ver a versão do seu sistema, basta utilizar o comando "uname -a" 5- para que a biblioteca possa ser utilizada como uma padrao do sistema (-l...), basta copiar o arquivo "libprg.a" para dentro do diretório /lib e entao compilar o programa utilizando "-lprg" Criando programas em C utilizando a biblioteca prgAo fim, basta compilar da seguinte forma: gcc arquivo.c -lprg -lusb-1.0 -o arquivo As seguintes funções estão disponíveis nesta biblioteca:
esta função conecta a plaquinha ao host PC Parâmetros: não possui como utilizar: conectar ();
esta função retorna informações da placa. Pode retornar o nome do fabricante e o string do produto. Parâmetros: não possui como utilizar: info ();
Envia um sinal para uma das 3 saídas digitais da placa de aquisição como utilizar: Parâmetros: 2 parâmetros do tipo char, onde o primeiro representa uma saída digital (1, 2 ou 3) e o segundo representa o estado da saída, podendo ser 1(nível alto) ou 0(nível baixo). enviar_digital (saída, estado); /*IMPORTANTE: as varíaveis saída e estado, sao do tipo CHAR*/ ou enviar_digital (‘1’, ‘1’) /*saída 1 é colocada em nivel alto(5V)*/
função utilizada para enviar um sinal para uma das 2 saídas analógicas da placa de aquisição como utilizar: Parâmetros: 2 parâmetros do tipo char, onde o primeiro representa uma saída analógica (1 ou 2) e o segundo é uma string que representa o estado da saída, podendo esta variar de “000” a “255”. Onde “000” é 0V e 255 é 5V. Outras tensões podem ser encontradas através de calculos simples, como 2,5V “127” enviar_analogica (saida, estado); /*Onde a variavel saida e estado sao do tipo CHAR*/ ou enviar_analogica (‘1’, “127”); /*onde a saída analógica 1 está sendo energizada com aproximadamente 2.5V*/
Função utilizada para receber infotrmações das entradas analógicas; A entrada digital desta placa é do tipo seco. Ela retornará 0 caso a entrada NÃO estiver aterrada, e 1 se estiver.
Parâmetros: receber(nº da saída); Retorno: o retorno desta função é um inteiro (int) receber_digital (char saida) ; ou receber_digital (‘1’) ; /*onde a função retornará 0 ou 1 da entrada 1 */ /*Existem 3 entradas digitais, portanto a variavel saída pode ser 1, 2 ou 3*/
Função utilizada para receber infotrmações das entradas analógicas; As entradas analógicas retornam valores de 0,00V a 9,99V; como utilizar: Parâmetros: receber(nº da saída); Retorno: o retorno desta função é um número real (float) receber_analogica (char saida) ; ou receber_analogica (‘1’) ; /*onde a função retornará retornará um valor entre 0,00 e 9,99 */ /*Existem 8 entradas analogicas, portanto a variavel saída pode ser 1, 2, 3, 4, 5, 6, 7 ou 8*/
/*Função utilizada para imprimir um mensagem no display lcd*/ como utilizar: //Parâmetros: print_display(linha,"mensagem"); print_display (int linha, char mensagem[]);
/*Função utilizada para limpar o display*/ como utilizar: //Parâmetros: não possui limpar_display(v);
|