Jump to content

Recommended Posts

Posted (edited)

J'ai fabriqué un ascenseur de plafond pour vidéo-projecteur piloté par arduino.
Sur la vidéo, il n'est pas encore équipé de la domotique.

https://www.youtube.com/watch?v=PXi_6dyqi04

 

Matériels utilisé :

Partie électro-mécanique :

1 trappe de plafond 50x50 cm, 4 m de cornière alu a angle vif 8x8 cm, 1 moteur de volet roulant, 50 cm de tube octo 40, 2 poulies pour sangles de 15 mm de large pour tube octo 40, 1 palier roulement KFL002, 4 galets de tendeur de chaines, 10 m de sangle de 15 mm de large, 4 tendeurs de sangle, 4 coulisses à billes sortie total de 30 cm, 1 bouton POUSSOIR Mosaic 2 pour volet roulant.

Partie électronique :

1 ARDUINO NANO, 1 diode d'émission+1 résistance de 500 ohms, 1 relais double Arduino.

Album photos :

vidéo-projecteur

 

Code pour Arduino :

/* pins
 
  GND breadboard <--> GND Arduino (en cas d'usage d'une breadboard)
 
  D0, D1    connexion Serial
  D2
  D3        LED infrarouge (exemple TSAL 6200, (câblage pin 3 <-> R 200 Ohms  <-> LED Anode || Led Cathode <-> GND)
  D4        bouton poussoir haut (câblage pin 4 <-> bouton <-> GND)
  D5        bouton poussoir bas  (câblage pin 5 <-> bouton <-> GND)
  D6
  D7
  D8
  D9        IN1 = relais de montée
  D10       IN2 = relais de descente
  D11
  D12
  D13
 
  A0
  A1
  A2
  A3
  A4
  A5
 
*/
 
/* **************** la partie IR **************** */
 
#include <IRremote.h>     // https://github.com/z3t0/Arduino-IRremote
 
// LED IR connectée sur la pin PWM 3
/* obtention du code on/off de la télécommande sony à obtenir avec IRrecvDumpV2
  hypothèse ---> Decoded SONY: 542A (15 bits)
*/
const unsigned long codeProjecteurOFF = 0x542A; // (votre 21546)
const int longeurCodeSony = 15;
 
IRsend irsend;
 
/* **************** les relais et boutons **************** */
 
const byte pinRelaisMonter = 9;       // IN1 = relais de montée
const byte pinRelaisDescendre = 10;   // IN2 = relais de descente
const byte ACTIF    = LOW;
const byte PASSIF =  HIGH;
const unsigned long dureeCourseAscenseur = 10000UL;
const unsigned long dureeRefroidissement = 120000UL;
 
const byte pinBoutonHaut = 4;  // bouton poussoir haut
const byte pinBoutonBas = 6;   // bouton poussoir bas
 
/* **************** gestion de l'état **************** */
 
enum : uint8_t {PROJECTEUR_OFF, PROJECTEUR_ON} etat;
 
/* **************** fonctions **************** */
void relais(const byte etatMonter, const byte etatDescendre)
{
  digitalWrite(pinRelaisMonter, etatMonter);
  digitalWrite(pinRelaisDescendre, etatDescendre);
}
 
void appuiPower() // le protocole Sony dit qu'il faut envoyer la commande 3 fois
{
  for (byte i = 0; i < 3; i++) {
    irsend.sendSony(codeProjecteurOFF, longeurCodeSony);
    delay(40);
  }
}
 
void allumage()
{
  relais(PASSIF, ACTIF);        // active le relais descend et desactive le relais monte
  delay(dureeCourseAscenseur);  // attente de la descente
  relais(PASSIF, PASSIF);       // désactive les 2 relais
  appuiPower();
  etat = PROJECTEUR_ON;
}
 
void extinction()
{
  appuiPower();                 // désactive le retroprojecteur
  delay(2000UL);                // on attend deux secondes
  appuiPower();                 // confirmation désactivation du retroprojecteur
  delay(dureeRefroidissement);  // deux minutes de refroidissement
  relais(ACTIF, PASSIF);        // active le relais monte et desactive le relais descend
  delay(dureeCourseAscenseur);  // attente de la fermeture
  relais(PASSIF, PASSIF);       // désactive les 2 relais
  etat = PROJECTEUR_OFF;
}
 
 
void setup()
{
  pinMode(pinRelaisMonter, OUTPUT);       //relais montée
  pinMode(pinRelaisDescendre, OUTPUT);    // relais descente
  relais(PASSIF, PASSIF);                 //extinction des relais
 
  etat = PROJECTEUR_OFF;                  // hypothèse, on a aucun moyen de savoir...
 
  pinMode (pinBoutonHaut, INPUT_PULLUP);  // activation du PULLUP interne
  pinMode (pinBoutonBas, INPUT_PULLUP);   // activation du PULLUP interne
 
}
 
void loop()
{
  switch (etat) {
    case PROJECTEUR_OFF:
      if (digitalRead(pinBoutonBas) == ACTIF) {
        allumage(); // appel bloquant ~10 secondes
      }
      break;
 
    case PROJECTEUR_ON:
      if (digitalRead(pinBoutonHaut) == ACTIF) {
        extinction(); // extinction manuelle, appel bloquant plus de 2 minutes !
      }
      break;
  }
}

 

 

 

Edited by brachol

Share this post


Link to post
Share on other sites

Bravo ! Jolie réalisation 

Merci d avoir posté ton taf 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Similar Content

    • By Cedric Louis
      L'objectif absolu et premier du calibrage d'un affichage, est de respecter la fidélité des images (la fidélité au programme initial).

      L'industrie de la vidéo est régi et guidé par des normes, des directives techniques et pratiques recommandées, définies par des organisations telles que: la Société of Motion Picture and Television Engineers (SMPTE), l'Organisation internationale de normalisation (ISO), l'Union internationale des télécommunications (UIT), l'Advanced Television Systems Committee (ATSC), etc... Ces normes et pratiques visent à encourager et à préserver : le signal , de l'équipement, et la précision du programme, l'intégrité, l'unité, la cohérence et la répétabilité, tout au long de la chaîne de production du programme, à travers la post-production, à l'exposition / diffusion / DVD / Blu-Ray / etc..., et pour finir le public.

      Dans tous les cas, le propriétaire de l'affichage doit garder à l'esprit que l'objectif du calibrage n'est pas d'atteindre l'idée préconçue ou le gout d'un individu à ce qu'une "bonne" image devrait ressembler.

      L'auteur d'un programme vidéo donné est le seul responsable pour déterminer comment l'image est censée apparaître. Le but du calibrage est que votre affichage se comporte comme un moniteur professionnel.

      L'écran devrait servir de communicateur neutre et précis des signaux vidéo fournis pour le spectateur.

      C'est seulement de cette façon-là que l'intégrité artistique, la précision d'affichage, et la fidélité des images seront vraiment appréciées !!!

      "Pensez-y …Qui voudrait acheter un piano coûteux et ne pas le faire accorder ?"

      Cordialement

      Cédric Louis
    • By Godfather
      Bonjour,
      Suite à un déménagement et l'envie de passer sur plus grand, je mets en vente mon écran LUMENE Capitol 200c.
      L'écran est en excellent état et actuellement stocké dans son carton d'origine.
      Acheté neuf en Juin 2016.
      Prix de vente : 150€  --> 130€
      Livraison non envisagée, colis trop volumineux.


    • By Antoine Daniel
      Bonjour à tous,
      j'ai longtemps cherché dans les archives une réponse à mon problème mais je n'ai pas trouvé.
      J'ai acheté un VP Benq W1090 et j'ai confectionné un coffrage pour le VP afin qu'il soit fixé au plafond mais à l'endroit. Le VP a la possibilité d'être fixé à l'envers mais le mien est à l'endroit. Le VP étant à l'endroit, l'image est projetée au plafond et je ne trouve pas dans le menu le moyen d'inverser l'image. Il est possible 'dans le menu/Position projecteur) de retourner l'image en miroir mais pas de faire en sorte que le VP éclaire le mur.
      Vous avez une idée ?
      Merci beaucoup
    • By cedrique30
      Bonjour.
      Je cherche un moyen d'augmenter le champ de projection d'un petit vidéoprojecteur de test.
      Le but serait donc de pouvoir projeter une image sur une surface plus ou moins grande et proche tout en gardant une image si possible, net.
      La déformation de l'image n'est pas un problème, je compte faire les ajustements de l'image projetée sur mon ordinateur.
      Pensez-vous qu'il est possible d’utiliser une lentille pour effectuer cela?
      Je pense à une lentille du même genre que celles que l'on utilise sur les appareils photos de nos smartphones (voir les photos)
      Ce sont des lentilles qui permettent d'augmenter le champ de vision. (Elles ne coûtent que 2€ ou 3€..)
      A l'inverse, cela pourrait certainement permettre d'augmenter le champ de projection non?
      Seulement, elles ne mesurent pas plus de 1cm ou 2cm de diamètre max, et la lentille de mon vidéoprojecteur mesure environ 4cm de diamètre.

      Auriez-vous des conseils / idées a proposer pour effectuer cela?
      Merci :-)
       
      (exemple d'un petit videoprojecteur de test : http://www.ebay.fr/itm/HD-1080P-4800-Lumens-LED-Video-Projector-Home-Cinema-Theater-AV-VGA-USB-SD-HDMI-/132106325296?var=&hash=item1ec2268d30:m:mbefeJvLAq9IFLdN0OYzvPw )



    • By VHCCC
      Bonjour ,j'ai eu plusieurs personnes qui m'ont contacte pour des calibrations sur des projecteurs et ecrans 4K .
      ces personnes m'ont demande si on faisaient une calibration en REC 2020.
      Pour rappel ,a l'heure actuelle aucun diffuseur ne prend en charge l'espace colorimetrique REC 2020  et certains  arrivent plus ou moins bien a gerer le DCI (6300k et gamma(2.6)) .
      donc il n'est pas possible de calibrer actuellement les projecteurs type sony 300,500 etc... sur un espace colo REC 2020.
      Ceci est dit a titre uniquement d'info
      cdt
      sylvain
×
×
  • Create New...