Go Down

Topic: Ajouter RAM arduino (Read 2109 times) previous topic - next topic

Sn4ke

Jan 05, 2011, 01:17 pm Last Edit: Jan 05, 2011, 06:22 pm by Sn4ke Reason: 1
Bonjour
J'utilise un Arduino Mega connecté à une caméra. Les images doivent ensuite être transmises via Wifi.

Pour des raisons pratiques, j'ai besoin de pouvoir stocker l'image (compressée préalablement en jpeg par la caméra) entière dans une mémoire temporaire avant de commencer à l'envoyer.

J'ai pensé à utiliser une mémoire RAM (SRAM?) de 64Ko externe.
Savez vous si cela est envisageable ? Si oui, comment fonctionne l'adressage?
L'idéal serait de pouvoir déclarer des variables qui seraient stockées dans cette ram (par ex byte image [65536]; ) pour pouvoir les manipuler facilement. Mais je ne sais pas comment fonctionne un mappage de ce type.

Sinon, je me rabattrai sur une EEPROM i²c mais cela sera nettement moins pratique (obligation de lire/écrire octet par octet).

Merci d'avance pour votre aide

Teiva

Bonjour,

a) oui les Atmega1280 et 2560 possède la circuiterie pour accéder à une mémoire externe de 64Ko, et le compilateur gcc peut en tenir compte, mais ça sera pas facile à brancher, il faudra que tu fasses un shield sur mesure. L'adressage est décrit dans la datasheet.

b) pour les cameras a capture jpeg, tu peux envoyer directement l'image sur une carte mémoire SD ou équivalent, il est inutile de la stocker en ram ( sauf si tu veux faire du traitement dessus ).

c) une fois en mémoire SD tu peux tranquillement l'envoyer en Wifi.

A+ Teiva


www.Zartronic.fr : Arduino et Robotique


www.Zartronic.fr : Arduino & Robotique

fdufnews

#2
Jan 05, 2011, 02:09 pm Last Edit: Jan 05, 2011, 02:22 pm by fdufnews Reason: 1
L'EEPROM ou la SD card proposée par Teiva ne sont pas des solutions viables sur le long terme du fait du nombre limité de cycles d'écriture dans ces composants.
Tu pourrais envisager une (voir deux ou plus) RAM série comme celle-ci http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en539039
Ces mémoire s'interfacent en SPI, elles ont un mode séquentiel qui permet d'accélérer les transferts car on peut envoyer les données les unes à la suite des autres sans répéter les octets d'entête. Une seule précaution à prendre elle fonctionnent en 3,3V.

Teiva

a) les ram spi sont en effet beaucoup plus facile a brancher que la 64K, mais elle ne seront pas géré directement par le compilo, a toi de faire la gestion, mais c'est semblable à la SD.

b) Oui les mémoires SD ne tiendrons pas une capture continue de photo, mais si c'est ça ton projet ça te couteras moins cher d'acheter une camera wifi, par contre cette solution est très utilisé pour des appareils photo a enregistrement régulier ou à déclenchement.
Tu peux t'inspirer de celle de sparkfun elle est a base de 328
http://www.sparkfun.com/products/9459

A+ Teiva


www.Zartronic.fr : Arduino et Robotique


www.Zartronic.fr : Arduino & Robotique

Sn4ke

Merci à vous deux pour vos réponses. Le nombre de réécritures possibles sur une SD card ou une EEPROM n'est pas vraiment un problème, car nous sommes en école d'ingénieur et ce n'est qu'un projet purement pédagogique et les photos sont prises à des intervalles de temps plutôt long.

Je vais voir le datasheet pour rajouter la RAM dont tu parles et me rendre compte de la complexité des connexions. Si c'est à notre portée on utilisera cette solution, sinon on se rabattra sur une RAM ou une EEPROM spi ou i2c, ou une SD card (si j'ai bien compris, les 3 dernières solutions sont à peu près équivalentes au niveau de la complexité de programmation).

Si vous avez d'autres idées ou suggestions n'hésitez pas.
Merci beaucoup

Go Up