Differences

This shows you the differences between two versions of the page.

Link to this comparison view

synccable [2017/03/12 16:04] (current)
Line 1: Line 1:
 +====== Câble de synchronisation des GoPro ======
 +
 +//Retour à la page principale -> [[:|Open Street View]]//
 +
 +===== Problématique =====
 +
 +Nous devons pouvoir lancé la prise de vue sur tout les appareil en "même temps" bien sûr il est impossible de le faire exactement au même momenent mais nous devons limiter le décalge entre 2 prises de vues.
 +
 +===== Solution =====
 +
 +GoPro a sortis un kit 3D, dans lequel on trouve 2 petits boîtiers rouges. Ces bôitiers sont la clé pour synchroniser 2 appareils.
 +
 +La communauté d'​utilisateurs GoPro a examiné de très près le fonctionnement de ces boiîtiers pour l'​étendre a plus de 2 appareils. Pour celà nous allons tenté de réunir les infos présentes [[http://​goprouser.freeforums.org/​the-gopro-hero-hd-bus-interface-t797-260.html#​p19184|ici]].
 +
 +Nous allons donc reproduire le circuit.
 +
 +===== Ressources =====
 +  * [[http://​goprouser.freeforums.org/​the-gopro-hero-hd-bus-interface-t797-260.html#​p19184]]
 +  * [[http://​mikenz.geek.nz/​blog/​gopro-hd-hero2-arduino/​]]
 +  * [[http://​www.bi3nary.com/​billboard/​gopro-hd-hero2-remote-control]]
 +  * [[http://​www.hobbytronics.co.uk/​arduino-external-eeprom]]
 +===== Matériel pour les tests =====
 +  * Connecteurs "​ipod"​ (30 pins), pour les tests on prendra 2 [[https://​www.sparkfun.com/​products/​8295|PodBreakout]]
 +  * 2 [[http://​fr.farnell.com/​microchip/​24lc256-i-p/​eeprom-serie-256k-24lc256-dip8/​dp/​9757970|Eeprom 24LC256]] ou [[http://​uk.farnell.com/​microchip/​24lc01b-p/​ic-eeprom-serial-1k-24lc01-dip8/​dp/​1200025|Eeprom 24LC01B]]
 +  * 2 supports ​ [[http://​fr.farnell.com/​te-connectivity-amp/​1-1825093-2/​connecteur-fiche-femelle-dip/​dp/​1654374|dip 8]]
 +  * des cables :)
 +  * Nous utlisons des EEPROM CMS. Le datasheet est disponible à cette adresse : [[http://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​21711J.pdf]]
 +===== Préparation de l'​EEPROM =====
 +
 +<​code>​
 +#if defined(ARDUINO) && ARDUINO >= 100  ​
 +#include "​Arduino.h"  ​
 +#​else  ​
 +#include "​WProgram.h"  ​
 +#​endif  ​
 +#include <​Wire.h>​
 +
 +#define ADDRESS 0x50
 +
 +void setup()
 +{
 +    Wire.begin();​
 +
 +    /* Serial output */
 +    Serial.begin(9600);​
 +    delay(5000);​
 +
 +    Serial.println("​Dumping eeprom first 8 bytes"​);​
 +    dump();
 +
 +    Serial.println("​Writing to first byte"​);​
 +    Wire.beginTransmission(ADDRESS);​
 +    Wire.write(0);​
 +    Wire.write((byte)0x05);​
 +    Wire.endTransmission();​
 +
 +    Serial.println("​Dumping eeprom first 8 bytes"​);​
 +    dump();
 +
 +    Serial.println("​Done"​);​
 +}
 +
 +void loop() {
 +}
 +
 +void dump()
 +{
 +    Wire.beginTransmission(ADDRESS); ​
 +    Wire.write(0);​
 +    Wire.endTransmission();​
 + 
 +   ​Wire.beginTransmission(ADDRESS);​
 +   ​Wire.write(0);​
 +   ​Wire.endTransmission();​
 +
 +   ​Wire.beginTransmission(ADDRESS);​
 +
 +   ​Wire.requestFrom(ADDRESS,​ 8);
 +
 +   ​while(Wire.available() < 8) {};
 +
 +   for (int j=0; j < 8; j++) {
 +         ​printInt(Wire.read());​
 +         ​Serial.print(" ​    "​);​
 +   }
 +    ​
 +   ​Serial.println(); ​
 +   ​Wire.endTransmission();​
 +}
 +
 +void printInt(int i)
 +{
 +  Serial.print("​0x"​);​
 + 
 +  if ( i<16 )
 +    Serial.print("​0"​);​
 +   
 +  Serial.print(i,​ HEX);
 +}
 +</​code>​
 +
 +{{test_eeprom.png|}}
 +
 +Le montage correspondant :
 +{{ eeprom.png?​direct&​450 |}}
 +
 +{{ arduino_eeprom.fz|Fichier Fritzing du schéma}}
 +
 +
 +
 +