Mudanças entre as edições de "Encerrado - Elaboração de plataforma para projeto de programação"
Linha 276: | Linha 276: | ||
[https://lh3.googleusercontent.com/0o358H2m8XqlYDjAE9HTvQNGH4ZRu2NXUeyYTgplxfPP_7c8pOfZ661cPDjUwMETPA=w1600 print1] | [https://lh3.googleusercontent.com/0o358H2m8XqlYDjAE9HTvQNGH4ZRu2NXUeyYTgplxfPP_7c8pOfZ661cPDjUwMETPA=w1600 print1] | ||
[https://lh3.googleusercontent.com/M8g7bHDaCQ1whhfSJZz1v4LmXPx3TIMHX11qMiJ8nARPOPeHwksRa9pPF3kkl6kEMg=w1600 print2] | [https://lh3.googleusercontent.com/M8g7bHDaCQ1whhfSJZz1v4LmXPx3TIMHX11qMiJ8nARPOPeHwksRa9pPF3kkl6kEMg=w1600 print2] | ||
+ | https://drive.google.com/#folders/0B9B1PtWR62blY1QxeGpONGlVYzg | ||
Edição das 07h54min de 20 de maio de 2013
Estudos USB |
---|
Quarta-feira - 17/04/2013 -Tentativas de enviar sinal pra a porta através do código C da biblioteca "hidapi.h" -Git - http://fabio-fernandes.com/blog/instalando-e-usando-o-git-no-ubuntu/ -Instalei o programa VB (cedido pela Cerne) no linux(Ubuntu 12.04), através do Wine, porém ele nao funcionou como ja tinha funcionado no Windows. (Estive pensando se o problema seria no linux ou no Wine, pois talvez o wine nao ofereça a comunicaçao necessária ao programa, ou até nao sei se a instalaçao no Wine é 100% equivalente a instalaçao diretamente no Windows) -Leitura de documentos sobre o Pic 18F2550 (18f2550.h) OBS: Fiquei com dúvida se isso pode servir nesse projeto, pois muitos falam em gravação do microcontrolador. E nao sei se a gravaçao nos interessa. "Para que os programas em C possam ser gravados no microcontrolador via USB, é necessário compilá-los, ou seja, transformá-los em linguagem de máquina hexadecimal. Existem diversos compiladores que podem ser utilizados por esta ferramenta, entre eles o SDCC, o C18, o Hi-Tech e o CCS" http://www.cerne-tec.com.br/artigousbparte2.pdf http://burningsmell.org/pic18f2550/ http://www.eletrica.ufpr.br/ufpr2/tccs/150.pdf Sexta-feira 19/04/2013 Leituras sobre USB Links interessantes: http://www.infowester.com/usb.php http://www.infowester.com/usb30.php http://computer.howstuffworks.com/usb1.htm
Segunda-feira 22/04/2013 e terça-feira Leituras USB: Capitulo 13 do livro "linux device drivers" http://bbs.dianyuan.com/bbs/u/34/1129334558.pdf http://www.beyondlogic.org/usbnutshell/usb1.shtml http://www.freebsd.org/doc/en/books/arch-handbook/usb-dev.html citações interessantes: "Endpoints are the unidirectional access points for communicating with a device. They provide buffers to temporarily store incoming or outgoing data from the device." Endpoint do tipo interrupt :"Interrupt endpoints transfer small amounts of data at a fixed rate every time the USB host asks the device for data. These endpoints are the primary transport method for USB keyboards and mice. They are also commonly used to send data to USB devices to control the device, but are not generally used to transfer large amounts of data. These transfers are guaranteed by the USB protocol to always have enough reserved bandwidth to make it through." http://www.beyondlogic.org/usbnutshell/usb4.shtml#Interrupt "A device interface is a collection of endpoints. For example USB speakers can have an interface for the audio data (Audio Class) and an interface for the knobs, dials and buttons (HID Class). All interfaces in a configuration are active at the same time and can be attached to by different drivers." "USB interfaces are themselves bundled up into configurations [...]So to summarize, USB devices are quite complex and are made up of lots of different logical units. The relationships among these units can be simply described as follows: • Devices usually have one or more configurations. • Configurations often have one or more interfaces. • Interfaces usually have one or more settings. • Interfaces have zero or more endpoints." prints do software, para windows, que analiza a comunicaçao USB documentos com algumas informaçoes que estão auxiliando no estudo da comunicaçao entre host e o device USB:
https://docs.google.com/document/d/1-y3Ze_V60gTRnhb7FxVc1gmjkX2RaLGmtfopfyV2-d0/edit (ultima atualizaçao no dia 05/05/2013) leitura complementar sobre URBs http://www.makelinux.net/ldd3/chp-13-sect-3 Domingo 5/5/2013 instalaçõ do GCC no windows http://www.franciscosouza.com.br/2009/04/07/instalando-um-compilador-cc-no-windows/ |
Comunicão em C com a placa de aquisição de dados | ||
---|---|---|
Primeira comunicação feita com sucesso utilizando a linguagem C Para rodar o programa leia otutorial Tutorial de conexão e comunicação com a placa de aquisição de dados O primeiro passo para conseguir se conectar à placa de aquisição de dados, utilizando a liguagem C é fazer todas a configurações necessárias para conseguir compilar o programa utilizando a biblioteca HID. Links úteis: Link principal para a biblioteca: http://www.signal11.us/oss/hidapi/ Read-me com explicações mais detalhadas sobre as configurações abaixo: https://docs.google.com/document/d/1LsqJdvBf6gg5KQLJULJwQus9NVtZsaCNOQudspGmFLs/edit Página de downloads: https://github.com/signal11/hidapi/downloads 1 - Baixe o pacote com os arquivos necessários: https://github.com/downloads/signal11/hidapi/hidapi-0.7.0.zip 2 - Instale o pacote Libusb 1.0
3 - Instale o pacote Libudev (cabeçalho e biblioteca)
4 - Descompacte o arquivo .zip hidapi-0.7.0.zip baixado no passo 1. Você pode fazer isso manualmente, ou no terminal: No meu caso o arquivo está na pasta Downloads:
E então:
5 - entre em hidapi-0.7.0 hidapi-0.7.0/hidapi/ e copie ou mova o arquivo hidapi.h para a pasta linux: (manualmente, ou pelo terminal) #cd hidapi-0.7.0/hidapi/ E então
~/Downloads/hidapi-0.7.0/linux): 8 - Compile o programa: (certifique-se que você esta dentro do diretório “linux” (~/Downloads/hidapi-0.7.0/linux)) gcc prog.c hid-libusb.o `pkg-config libusb-1.0 libudev --libs` -o prog 9 - Rode o programa: sudo ./prog
|
Pontos a serem verificados
- Versão e drivers do linux que estão sendo usados;
modinfo usbtouchscreen > print1 print2 https://drive.google.com/#folders/0B9B1PtWR62blY1QxeGpONGlVYzg
- Fazer um teste no Redes II e Inf para verificar se placa funciona (falar com Ricardo - ricardo.ifsc@gmail.com );
- Documentar o driver da usb que está sendo usado (input) e verificar como trocar o driver dinamicamente para testar em outros PC;
Adding new vendor and product IDs to an existing USB driver on Linux
- su
- modprobe usbtouchscreen echo 1234 0001 > /sys/bus/usb/drivers/usbtouchscreen/new_id
- Testar as entradas e saídas analógicas;
Saída: modificar a função enviar():
buf[0] = 'D';
buf[1] = '1';
buf[2] = '2';
buf[3] = '5';
buf[4] = '5';
res = hid_write(handle, &buf[0], 5);
Onde 1 é o numero da saída e 255 representa 5V
127 = 2,5V
0 = 0V e assim por diante.
- Especificar a "biblioteca" a ser disponibilizada para os alunos;
- estudar como construir uma biblioteca no Linux (lib ver [1]);
- testes de desempenho