• Welcome to LusoRobótica - Robótica em Português.
 

Sapatilha inteligente

Started by rglove, 23 de July de 2012, 20:59

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

rglove

xD

Senso, tinha-me esquecido de responder à questão das baterias. Não tenho noção do consumo, mas depois de montar tudo na breadboard vejo mais ou menos que bateria vou usar ou quantas em série.

amando96

Provavelmente terás de ir para umas de lítio, 3.7v a 180mA são minúsculas, gps e bluetooth querem muito sumo, mas pelo que percebo não seram feitas leituras constantes.

rglove

Depende, o bluetooth só vai ser utilizado para transferir a informação que a sapatilha tem para o pc e o gps vai estar a gravar uma nova localização no cartão sd de 30 em 30 segundos ou de 1 em 1 minuto.
Pois, agora que se tocou nesse assunto, acho que esse é um dos grandes problemas, não sei quanto tempo a bateria irá durar, mas tem de durar no mínimo 10 horitas.
Mas se não durar não há crise, o importante é mostrar a funcionar na altura de apresentação.

senso

O cartão SD parece-me um erro, a não ser que não seja para ser amovivel, mas para isso, usas uma flash ou até mesmo uma eeprom i2c, mas compras umas flash de 16Mbits por 2-3€ e é bem mais pequena que um cartão SD, ou então FRAM.
Avr fanboy

rglove

Sim, o micro SD era para ser amovível. Pensei em SD por ser mais fácil para mim, visto que ainda estou a aprender muita coisa. Pelo que estive a ver as I2CEEPROM são simples, mas mesmo assim acho que me dá mais trabalho que com um micro SD, visto que para o micro SD já há bibliotecas.

Sérgio_Sena

Quote from: rglove on 24 de July de 2012, 13:40
Sim, o micro SD era para ser amovível. Pensei em SD por ser mais fácil para mim, visto que ainda estou a aprender muita coisa. Pelo que estive a ver as I2CEEPROM são simples, mas mesmo assim acho que me dá mais trabalho que com um micro SD, visto que para o micro SD já há bibliotecas.


Já tens bibliotecas para EEPROM/FLASH de I2C. Há imensa coisa já feita, pois é um método de guardar informação bastante mais antigo que o SDcard.

O SDcard pode dar-te a vantagem de poderes levar par ao computador e este abrir uma drive, mas para isso tens que fazer com que o Microcontrolador te guarde a informação em FAT16/32, para poder ser lida no PC.
Poderá ser overkill, mas ao mesmo tempo muito mais prático e transportavel do que fazer funções no micro e interface no PC para receber a informação. E depis carregar por ex.: excel.

Cumprimentos,
Sérgio Sena

Electronic Gear for Musicians

Instagram

senso

A questão é que para ter um microSd precisa de um buraco/corte/slot para poder aceder, e ou é um buraco que fica para o mundo exterior ou é interior, e cartão SD com chulézinho não me parece muito apetecivel de se andar a meter e tirar todos os dias.

Isso de usar uma flash ou eeprom é muito simples, o essencial é definir uma boa estrutura de dados, depois de teres isso bem pensado é só fazer writes para o que quer que seja de várias estruturas e está feito, e a leitura fazes igual, e para meter no pc, dump via bluetooth.

Quanto a baterias, eu nunca usaria baterias LiPo numas sapatilhas, pressão e calor, podem tornar-se nuns aquecedores/incendios, precisas de uma tecnologia mais estavel, talvez Li-on ou LiFePO4 que são mais bem comportadas que as LiPo, para carregar a bateria, acho que seria interessante pensar em transmissão de energia sem fios, com um par de bobines, para ter o módulo de eletrónica totalmente isolado e selado.
Avr fanboy

rglove

Obrigado pelas opiniões.
Eu ia optar pelo sd pela simplicidade utilizando a biblioteca para o efeito (acho que até já vem com o IDE).
E depois em termos de organização, sendo o sistema de ficheiros FAT iria ser mais fácil para mim, visto que nunca trabalhei com EEPROMs. Mas sim, para o que preciso basta uma EEPROM... Acho que vou comprar as 2 coisas e experimento a EEPROM, se me der bem uso.

Estive a ver este tutorial:
http://lusorobotica.com/index.php?topic=461.0

Percebi perfeitamente, no entanto ainda tenho algumas dúvidas, mas claro que algumas só experimentando.
Uma das dúvidas são os endereços... Pelo que percebi em cada endereço podemos guardar 1 byte certo?
E com a EEPROM do tutorial podemos quardar até 32Kbytes. Sendo assim para guardar uma coordenada, como é que conseguirei guardar um valor decimal? Pelo que percebi nesses 32k endereços apenas posso guardar números inteiros de 0 a 255. Sendo que as coordenadas GPS são valores decimais como é que faço?
Uma alternativa era guardar os graus num endereço, os minutos noutro e os segundos noutro...

A minha opinião é que as EEPROM são mais trabalhosas, mas sem dúvida que para o que quero ficará melhor.


Cumprimentos.

senso

Como é que representas um float em bytes, é que um atmega a ram é de 8bits e cada endereço só consegue guardar um valor entre 0 e 255, simplesmente usas sistemas de representação, um float por exemplo são 4 bytes, dai eu ter dito, primeiro e acima de tudo tens que definir as estruturas de dados, afinal, como é que estás a pensar guardar dados no SD, é que o cartão SD tambem é enderaçado ao byte se não estou em erro, e em blocos de 512bytes, se quiseres guardar um valor decimal/float tens o mesmo problema, a solução mais simples e mais unix-minded é representar tudo em ASCII, com uma flash de 16Mbits deve dar bem para 10h de dados.
Avr fanboy

rglove

Acho que EEPROM ou SD vai dar ao mesmo. Se calhar SD dá menos trabalho, mas penso que para o que quero EEPROM é melhor.
Posso usar 3, uma para cada variável (latitude, longitude e altitude) e depois ainda vou acrescentar outra que vai conter algumas definições.
Se guardar os graus, minutos e segundos em 3 bytes e for repetindo para cada EEPROM e se na outra EEPROM reservar uns 4 bytes (penso que deve chegar) para escrever o número de leituras que fiz penso que será simples programar quando for a altura de transferir a informação para o pc.

Bem, acho que é uma questão de experimentar agora...

Vou pesquisar sobre as flash.

amando96

Podes multiplicar o float por 100 ou 1000, dependendo das casa decimais e guardas como long, depois divides e tens o float de volta.

rglove

Vai dar ao mesmo, depois de multiplicar se o valor não ficar entre 0 e 255 vou ocupar mais bytes para o guardar não é?

Estou ancioso para começar a trabalhar nisto :D

senso

Sabes o que é uma estrutura de dados?Um struct em C?

Crias um bixinho desses e fazes uma união com um array de caracteres, assim tens floats, chars, ints, boleanos, seja o que for na estrutra, e depois tens a representação em char/binário na união, para guardar um pacote de dados é só escrever sequencialmente o array de chars na eeprom e está feito, para ler, lês da memória, metes no array de chars e a estrutura fica preenchida auto-magicamente(lol).

Para saberes quantas estruturas de dados tens dentro da memória, tens várias opções, a mais simples é usar a primeira posição(endereço 0) da memória como contador, ou então, uma lista ligada que estando a trabalhar com estruturas é só ter como ultimo elemento um ponteiro para a próxima estrutura, até que na ultima estrutura escrita esse ponteiro é NULL(podes usar um qualquer outro numero "mágico", mas NULL é tipo o standart para estas coisas, para evitar alguns problemas com numeros "mágicos").

Dai te ter dito, primeiro define em papel e caneta/lápis a tua estrutura de dados, depois é que passas para código, pensar antes de começar a programar para não fazer um taça de esparguete que não tem ponta por onde se pegue passado 3 dias.
Avr fanboy

rglove

Acho que percebi mais ou menos o que disseste, mas nunca tinha ouvido falar nisso.
Vou pesquisar sobre isso, obrigado.

Marvin

Quote from: senso on 25 de July de 2012, 01:27
Dai te ter dito, primeiro define em papel e caneta/lápis a tua estrutura de dados, depois é que passas para código, pensar antes de começar a programar para não fazer um taça de esparguete que não tem ponta por onde se pegue passado 3 dias.

Isto serve para praticamente qualquer desenvolvimento e é um dos melhores conselhos que se pode dar a qualquer pessoa: Planear antes de desenvolver!. Escrevam isto num quadro e ponham bem visivel na vossa area de desenvolvimento.
Dronetech BlogThe Scientist and the Geek