まこと の ブログ - Mot-clé - CameraMaKoTo no burogu — Journal de bord…2024-03-17T18:52:27+01:00MaKoTourn:md5:c74815e3268f2d506228368f0d9c6d01DotclearRpi-pi_EYE -Mise à jour-urn:md5:d166e3f88b1c92f221a604f48c01beb42016-06-03T18:42:00+02:002019-11-12T20:50:05+01:00makoto doushiteRaspberry PiCameraDIYHackingImpression3DModélisation3DPythonRaspBerryPIRaspbianVidéos<p><a href="http://burogu.makotoworkshop.org/index.php?post/2015/11/27/RpipiEYE3">Suite de l'épisode précédent</a> :<br />
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/demopieye.jpg" title="demopieye.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.demopieye_s.jpg" alt="demopieye.jpg" style="float:right; margin: 0 0 1em 1em;" /></a></p>
<ul>
<li>Et vlan, un nouveau billet sur le sujet, alors que c'était pourtant terminé… non ?</li>
</ul>
<p>En fait mon système est tombé en panne, de trop nombreuses erreurs de lecture/écriture sur la carte SD ont eut raison du système <em>Raspbian</em>, j'ai donc formaté la carte et entrepris de réinstaller tout ça…</p>
<ul>
<li>Sauf qu'après avoir installé le dernier <em>Raspbian</em>, je me suis rendu compte que la librairie <em>RPIO</em> <a href="http://burogu.makotoworkshop.org/index.php?post/2014/11/22/RpipiEYE">que j'utilisais jusqu'alors</a> pour piloter les servos n'était plus supportée, et qu'il fallait alors me reporter sur une autre solution.<br /></li>
</ul>
<p>En plus de ça, mes notes étant éparpillées par les expérimentations diverses, je me suis dit que c'était l'occasion ici de faire un récapitulatif d'installation de A à Z.<br /><br /></p>
<ul>
<li>Voici donc le plan d'action :<br /></li>
</ul>
<blockquote><p>1 - Installer le <em>Raspbian</em>.<br />
2 - Installer un serveur web.<br />
3 - Configurer un stream vidéo MJPG-Streamer de la picamera.<br />
4 - Installer la librairie <em>pigpio</em>.<br />
5 - Installer la librairie <em>wiringPi</em>.<br />
6 - Configurer le site Web.<br />
7 - Configurer son routeur pour sortir en publique le stream vidéo et le site web.<br /></p></blockquote>
<p><br /></p> <h3>1 - <ins>Installer le <em>Raspbian</em></ins> :<br /></h3>
<ul>
<li>Télécharger <em>Raspbian</em> <a href="https://www.raspberrypi.org/downloads/raspbian/">https://www.raspberrypi.org/downloads/raspbian/</a><br /></li>
</ul>
<p>Il existe actuellement <em>2016-05-10-raspbian-jessie-lite.zip</em>, une version qui est entièrement en ligne de commande, sans environnement de bureau, donc très légère, idéale pour une petite carte SD (environ 800Mio une fois installé)<br /></p>
<ul>
<li>Déployer l'image sur une carte SD depuis un système GNU/Linux, avec la commande DD<br /></li>
</ul>
<p>(attention, <em>of=/dev/sdx</em> à adapter pour la cible de votre carte SD, en cas d'erreur risque d'effacement d'un disque dur non désiré)<br /></p>
<pre class="brush: bash">dd bs=4M if=2016-05-10-raspbian-jessie-lite.img of=/dev/sdx; sync</pre>
<ul>
<li>Placer la carte SD dans le <em>Raspberry</em>, et le mettre sous tension.<br /></li>
</ul>
<p><em>raspi-config</em> s'exécute tout seul au premier démarrage, configurer tous les trucs comme on veut, et surtout <strong>activer la prise en charge de la camera</strong> !<br />
Pour exécuter <em>raspi-config</em> plus tard, simplement :<br /></p>
<pre class="brush: bash">raspi-config</pre>
<p>Après le reboot, pour rappel :<br /></p>
<blockquote><p>Login : pi<br />
Pass : raspberry<br /></p></blockquote>
<ul>
<li>Effectuer les mises à jour :<br /></li>
</ul>
<pre class="brush: bash">sudo apt-get install rpi-update
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade</pre>
<ul>
<li>Mettre les fichiers temporaires en ram pour économiser sur la durée de vie la la carte SD.<br /></li>
</ul>
<pre class="brush: bash">sudo nano /etc/fstab</pre>
<pre class="brush: bash">tmpfs /tmp tmpfs defaults,size=256M 0 0
tmpfs /var/tmp tmpfs defaults,size=256M 0 0
tmpfs /var/lock tmpfs defaults,size=256M 0 0</pre>
<p><br /><br /></p>
<h3>2 - <ins>Installer un serveur web.</ins> :<br /></h3>
<pre class="brush: bash">sudo apt-get install apache2 php5</pre>
<p><br /><br /></p>
<h3>3 - <ins>Configurer un stream vidéo MJPG-Streamer de la picamera</ins> :<br /></h3>
<ul>
<li>Installer <em>MJPG-Streamer raspicam</em><br /></li>
</ul>
<pre class="brush: bash">sudo apt-get install libjpeg8-dev imagemagick libv4l-dev libjpeg62-dev cmake
git clone https://github.com/jacksonliam/mjpg-streamer.git ~/mjpg-streamer
cd ~/mjpg-streamer/mjpg-streamer-experimental
make clean all
sudo mv ~/mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer
sudo rm -rf ~/mjpg-streamer</pre>
<ul>
<li>Créer le script <em>stream.sh</em> avec la commande pour streamer :<br /></li>
</ul>
<pre class="brush: bash">nano ~/stream.sh</pre>
<pre class="brush: bash">#!/bin/bash
LD_LIBRARY_PATH=/opt/mjpg-streamer/ /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -fps 25 -q 10 -x 640 -y 480" -o "output_http.so -p 9000 -w /opt/mjpg-streamer/www" &</pre>
<ul>
<li>Rendre le script exécutable :<br /></li>
</ul>
<pre class="brush: bash">chmod+x ~/stream.sh</pre>
<ul>
<li>Pour exécuter le script à chaque démarrage, éditer le fichier <em>/etc/rc.local</em> et avant la ligne <em>exit 0</em>, inscrire ces deux lignes :<br /></li>
</ul>
<pre class="brush: bash">sleep 8
su -l pi -c "/home/pi/stream.sh &"</pre>
<ul>
<li>Pour sortir sur le web, il faudra bien entendu ouvrir le port 9000 (ou autre au choix) sur le routeur ou la machin-box.<br /></li>
<li>Pour intégration à un site web, créer la page de visualisation du flux <em>stream.html</em> :<br /></li>
</ul>
<pre class="brush: php"><img src="http://IP-Publique:9000/?action=stream" /></pre>
<p>Et voici le code à intégrer à sa home page pour avoir une vignette cliquable vers la page de visualisation du flux :<br /></p>
<pre class="brush: php"><a href="http://DOMAINE.com/stream.html"><img src="http://IP-Publique:9000/?action=snapshot" width="270" height="190" /></a></pre>
<p><br /><br /></p>
<h3>4 - <ins>Installer la librairie <em>pigpio</em></ins> :<br /></h3>
<ul>
<li>La librairie <a href="http://abyz.co.uk/rpi/pigpio/index.html">pigpio</a> présente le gros avantage de ne pas nécessiter les droits root pour exécuter du code python, ce qui est un gain de sécurité fort appréciable !<br /></li>
</ul>
<p>Pour l'installer :<br /></p>
<pre class="brush: bash">wget abyz.co.uk/rpi/pigpio/pigpio.tar
tar xf pigpio.tar
cd PIGPIO
make -j4
sudo make install</pre>
<ul>
<li>Pour exécuter le démon <em>pigpiod</em> à chaque démarrage, éditer le fichier <em>/etc/rc.local</em> et avant la ligne <em>exit 0</em>, inscrire ces deux lignes :<br /></li>
</ul>
<pre class="brush: bash">sudo pigpiod</pre>
<p><br /><br /></p>
<h3>5 - <ins>Installer la librairie <em>wiringPi</em></ins> :<br /></h3>
<pre class="brush: php">sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build</pre>
<p><br /><br /></p>
<h3>6 - <ins>Configurer le site Web</ins> :<br /></h3>
<ul>
<li>J'ai donc réécris les scripts python, le reste reste pareil qu'avant; Le site web est disponible en pièce jointe à ce billet, je vais décrire ici son fonctionnement :<br /></li>
</ul>
<p><strong>Plusieurs scripts en python :</strong><br /></p>
<ul>
<li>Dans chaque scripts, ce qu'il faut pour faire bouger l'œil dans une seule position.<br /></li>
</ul>
<p>Ici le script <em>centreH.py</em> :<br /></p>
<pre class="brush: python">#!usr/bin/env/ python
import time
import pigpio
#connect to pigpiod daemon
pi = pigpio.pi()
# setup pin as an output
pi.set_mode(17, pigpio.OUTPUT)
pi.set_mode(18, pigpio.OUTPUT)
pi.set_servo_pulsewidth(17, 1250)
pi.set_servo_pulsewidth(18, 1650)
time.sleep(0.5)
#cleanup
pi.set_mode(17, pigpio.INPUT)
pi.set_mode(18, pigpio.INPUT)
#disconnect
pi.stop()</pre>
<p><br /></p>
<p><strong>Plusieurs scripts en php :</strong><br /></p>
<ul>
<li>Chaque script contient une commande système permettant d'appeler le script python.<br /></li>
</ul>
<p>Ici le script <em>centreH.php</em> :<br /></p>
<pre class="brush: php"><?php
system ("python python/centreH.py");
?></pre>
<p><br /></p>
<ul>
<li>Le script pour allumer la lumière est un peu différent, il appelle directement des commandes système liées à l'utilisation classique du logiciel <em><a href="http://wiringpi.com/">WiringPi</a></em>.<br /></li>
</ul>
<pre class="brush: php"><?php
// allume la led connectée en 2
system ( "gpio mode 2 out" );
system ( "gpio write 2 1" );
sleep(10); // attend 10 secondes
system ( "gpio write 2 0" ); // éteint la led connectée en 2
?></pre>
<p><br /></p>
<p><strong>Un script en JavaScript :</strong><br /></p>
<ul>
<li>Le script va permettre de gérer des actions sur des cliques de souris, sans recharger la page web !<br /></li>
</ul>
<p>Ici un morceau du script qui permet d'appeler le script <em>centre.php</em>.<br /></p>
<pre class="brush: js">function centre()
{
var requestC = new XMLHttpRequest();
requestC.open( "GET" , "centre.php" );
requestC.send(null);
}</pre>
<p><br /></p>
<p><strong>La page html du site :</strong><br /></p>
<ul>
<li>L<em>'index.html</em> va donc contenir le code JavaScript, l'image de la vidéo de la picamera et des zones cliquables définies par des coordonnées sur cette image.<br /></li>
</ul>
<pre class="brush: xml"><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Amy-Channel =^.^=</title>
</head>
<script type="text/javascript">
function gaucheB()
{
var requestGB = new XMLHttpRequest();
requestGB.open( "GET" , "gaucheB.php" );
requestGB.send();
}
function gaucheH()
{
var requestGH = new XMLHttpRequest();
requestGH.open( "GET" , "gaucheH.php" );
requestGH.send();
}
function centreB()
{
var requestCB = new XMLHttpRequest();
requestCB.open( "GET" , "centreB.php" );
requestCB.send(null);
}
function centreH()
{
var requestCH = new XMLHttpRequest();
requestCH.open( "GET" , "centreH.php" );
requestCH.send(null);
}
function droiteB()
{
var requestDB = new XMLHttpRequest();
requestDB.open( "GET" , "droiteB.php" );
requestDB.send(null);
}
function droiteH()
{
var requestDH = new XMLHttpRequest();
requestDH.open( "GET" , "droiteH.php" );
requestDH.send(null);
}
function leds()
{
var requestL = new XMLHttpRequest();
requestL.open( "GET" , "leds.php" );
requestL.send(null);
}
</script>
<body>
<center>
<img src="http://85.69.5.218:9000/?action=stream" usemap="#panneaux" />
<map name="panneaux">
<area shape="rect" coords="0,0,150,150" onclick="gaucheH()" alt="Haut-Gauche" />
<area shape="rect" coords="490,0,640,150" onclick="droiteH()" alt="Haut-Droite" />
<area shape="rect" coords="246,0,395,150" onclick="centreH()" alt="Haut-Centre" />
<area shape="rect" coords="0,325,150,480" onclick="gaucheB()" alt="Bas-Gauche" />
<area shape="rect" coords="490,330,640,480" onclick="droiteB()" alt="Bas-Droite" />
<area shape="rect" coords="246,330,395,480" onclick="centreB()" alt="Bas-Centre" />
<area shape="circle" coords="320,240,50" onclick="leds()" alt="LEDon" />
</map>
</center>
</body>
</html></pre>
<p><br /></p>
<h3>7 - <ins>Configurer son routeur pour sortir en publique le stream vidéo et le site web</ins> :<br /></h3>
<ul>
<li>Je laisse ici le soin à chacun de se démerder :)<br /><br /></li>
</ul>
<ul>
<li>Voilà, normalement j'ai rien oublié, voici la démo vidéo :<br /></li>
</ul>
<iframe width="640" height="360" sandbox="allow-same-origin allow-scripts" src="https://peertube.makotoworkshop.org/videos/embed/e8314eb4-97e9-4373-b23e-e5afe860b92a?warningTitle=0" frameborder="0" allowfullscreen></iframe>
<p><br /></p>
<p><ins>Ressources</ins> :<br /></p>
<p>- <a href="http://rpitips.com/python-libraries-pigpio/">http://rpitips.com/python-libraries-pigpio/</a><br />
- <a href="http://rpitips.com/python-libraries-rpi-gpio/">http://rpitips.com/python-libraries-rpi-gpio/</a><br />
- <a href="http://rpitips.com/python-libraries-wiring-pi/">http://rpitips.com/python-libraries-wiring-pi/</a><br /></p>http://burogu.makotoworkshop.org/index.php?post/2016/06/01/RpipiEYE4#comment-formhttp://burogu.makotoworkshop.org/index.php?feed/atom/comments/609Rpi-pi_EYE -Fin-urn:md5:27048139edda3ace210b402344944fa12015-11-27T18:36:00+01:002019-11-12T20:41:51+01:00makoto doushiteRaspberry PiCameraDIYHackingImpression3DModélisation3DPythonRaspBerryPIRaspbianVidéos<p>Suite <a href="http://burogu.makotoworkshop.org/index.php?post/2015/10/03/RpipiEYE2">de l'épisode précédent</a> :<br />
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/demopieye.jpg" title="demopieye.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.demopieye_s.jpg" alt="demopieye.jpg" style="float:right; margin: 0 0 1em 1em;" /></a></p>
<ul>
<li>Me revoici donc avec la finalisation de ce projet !<br /></li>
</ul>
<p>Faute de compétences suffisantes en python-html-css, je me suis vite retrouvé limité dans la compréhension de <em>webpy</em> pour pouvoir afficher une interface comme je voulais…<br />
Je commençais à partir dans tous les sens, sans rien produire, avec une grosse sensation de perte de temps, un projet devenu un point noir qu'on a plus envie de voir.<br />
Et pourtant je voulais le terminer, il était donc temps de redéfinir mes ambitions, que je sache clairement ce que je voulais faire afin de trouver la bonne méthode.<br />
Abandon de l'idée de boutons d'incrémentation de la position de l'œil, exit donc les boutons de formulaire à côté de l'image de la <em>picamera</em>, ils sont une gêne pour la navigation quand on zoome avec un ordiphone, exit donc aussi le <em>css responsive design</em>, et puis tiens si en plus on pouvait se passer d'image à cliquer tout aussi problématique que les boutons…<br /></p>
<ul>
<li>Table en marbre, abandon de <em>webpy</em>, ce que je veux c'est :<br /></li>
</ul>
<blockquote><p>- Afficher l'image de la vidéo.<br />
- Cliquer dans l'image de la vidéo pour bouger la camera, sans que la page soit rechargée.<br />
- Cliquer dans l'image de la vidéo pour allumer une lumière, sans que la page soit rechargée.<br />
- Pouvoir zoomer à volonté dans le navigateur sans que ce soit un problème pour les fonctions précédentes.</p></blockquote>
<p><br /></p> <h3><ins>Prérequis</ins> :<br /></h3>
<ol>
<li>Avoir un serveur web installé sur le Raspberry Pi.<br /></li>
<li>Avoir un stream vidéo <em>MJPG-Streamer</em> de la picamera fonctionnel.<br /></li>
<li>Avoir configuré son routeur pour sortir en publique le stream vidéo et le site web.<br /></li>
<li>Désactiver la saisie du mot de passe sudo à l'appel d'une commande python, pour l'utilisateur www-data :<br /></li>
</ol>
<pre class="brush: bash">sudo visudo</pre>
<p>Ajouter cette ligne à la fin du fichier :<br /></p>
<pre class="brush: bash">www-data ALL = NOPASSWD: /usr/bin/python</pre>
<p><br /><br /></p>
<ul>
<li>Le site web est disponible en pièce jointe à ce billet, je vais décrire ici son fonctionnement :<br /></li>
</ul>
<h3><ins>Plusieurs scripts en python</ins> :<br /></h3>
<ul>
<li>Dans chaque scripts, ce qu'il faut pour faire bouger l'œil dans une seule position.<br /></li>
</ul>
<p>On continue d'utiliser la librairie <em>RPIO</em> décrite dans les billets précédents.<br />
Ici le script <em>centre.py</em> :<br /></p>
<pre class="brush: python">#!usr/bin/env/ python
import RPIO, time
from RPIO import PWM
servo = PWM.Servo()
servo.set_servo(17, 2300)
servo.set_servo(18, 1350)
time.sleep(0.5)
PWM.cleanup()</pre>
<p><br /></p>
<h3><ins>Plusieurs scripts en php</ins> :<br /></h3>
<ul>
<li>Chaque script contient une commande système permettant d'appeler le scritp python.<br /></li>
</ul>
<p>Ici le script <em>centre.php</em> :<br /></p>
<pre class="brush: php"><?php
system ("sudo python python/centre.py");
?></pre>
<p><br /></p>
<ul>
<li>Le script pour allumer la lumière est un peu différent, il appelle directement des commandes système liées à l'utilisation classique du logiciel <a href="http://wiringpi.com/">wiringpi</a>.<br /></li>
</ul>
<pre class="brush: php"><?php
// allume la led connectée en 2
system ( "gpio mode 2 out" );
system ( "gpio write 2 1" );
sleep(10); // attend 10 secondes
system ( "gpio write 2 0" ); // éteint la led connectée en 2
?></pre>
<p><br /></p>
<h3><ins>Un script en JavaScript</ins> :<br /></h3>
<ul>
<li>Le script va permettre de gérer des actions sur des cliques de souris, sans recharger la page web !<br /></li>
</ul>
<p>Ici un morceau du script qui permet d'appeler le script <em>centre.php</em>.<br /></p>
<pre class="brush: js">function centre()
{
var requestC = new XMLHttpRequest();
requestC.open( "GET" , "centre.php" );
requestC.send(null);
}</pre>
<p>J'ai laissé le JavaScript dans la page html…<br /><br /></p>
<h3><ins>La page html du site</ins> :<br /></h3>
<ul>
<li>L<em>'index.html</em> va donc contenir le code JavaScript, l'image de la vidéo de la picamera et des zones cliquables définies par des coordonnées sur cette image.<br /></li>
</ul>
<p>Je rappelle que pour streamer la vidéo de la picamera, j'utilise <em>MJPG-Streamer</em> <a href="https://github.com/jacksonliam/mjpg-streamer">version spéciale Pi</a>, le tuto par ici : <a href="http://burogu.makotoworkshop.org/index.php?post/2014/09/10/picamstream">Le Stream sur IP live avec MJPG-Streamer raspicam</a>.<br /></p>
<pre class="brush: xml"><!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Amy-Channel =^.^=</title>
</head>
<script type="text/javascript">
function gauche()
{
var requestG = new XMLHttpRequest();
requestG.open( "GET" , "gauche.php" );
requestG.send();
}
function gauche2()
{
var requestG2 = new XMLHttpRequest();
requestG2.open( "GET" , "gauche2.php" );
requestG2.send();
}
function centre()
{
var requestC = new XMLHttpRequest();
requestC.open( "GET" , "centre.php" );
requestC.send(null);
}
function centre2()
{
var requestC2 = new XMLHttpRequest();
requestC2.open( "GET" , "centre2.php" );
requestC2.send(null);
}
function droite()
{
var requestD = new XMLHttpRequest();
requestD.open( "GET" , "droite.php" );
requestD.send(null);
}
function droite2()
{
var requestD2 = new XMLHttpRequest();
requestD2.open( "GET" , "droite2.php" );
requestD2.send(null);
}
function leds()
{
var requestL = new XMLHttpRequest();
requestL.open( "GET" , "leds.php" );
requestL.send(null);
}
</script>
<body>
<center>
<!-- l'image de la picamera -->
<img src="http://adresse ip du stream:port/?action=stream" usemap="#panneaux" />
<!-- les zones cliquables, qui appellent chacune le java script correspondant (qui appelle le script php (qui appelle le script python) ) -->
<map name="panneaux">
<area shape="rect" coords="0,0,150,150" onclick="gauche2()" alt="Haut-Gauche" />
<area shape="rect" coords="490,0,640,150" onclick="droite2()" alt="Haut-Droite" />
<area shape="rect" coords="246,0,395,150" onclick="centre2()" alt="Haut-Centre" />
<area shape="rect" coords="0,325,150,480" onclick="gauche()" alt="Bas-Gauche" />
<area shape="rect" coords="490,330,640,480" onclick="droite()" alt="Bas-Droite" />
<area shape="rect" coords="246,330,395,480" onclick="centre()" alt="Bas-Centre" />
<area shape="circle" coords="320,240,50" onclick="leds()" alt="LEDon" />
</map>
</center>
</body>
</html></pre>
<ul>
<li>Voici la démo vidéo :<br /></li>
</ul>
<iframe width="640" height="360" sandbox="allow-same-origin allow-scripts" src="https://peertube.makotoworkshop.org/videos/embed/e8314eb4-97e9-4373-b23e-e5afe860b92a?warningTitle=0" frameborder="0" allowfullscreen></iframe>
<p><br /></p>
<h3><ins>Concernant la barre de lumière</ins> :<br /></h3>
<ul>
<li>Il s'agit de 6 leds de 13000 mcd (3,2V@20mA) connectées en parallèles, alimentées directement par le 5V du Rpi et pilotées par le <em>GPIO2</em> (pin19) via par un transistor 'Mosfet'' (BS170), câblé comme suis :<br /></li>
</ul>
<p>- Le drain est connecté aux cathodes des leds.<br />
- La Grille va à la pin19 du Rpi.<br />
- La Source va à la masse.<br /></p>
<ul>
<li>Voici le schéma mis à jour et des photos du proto soudé sur une plaque à trous :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/Rpi_Pi_Eye2_bb.png" title="Rpi_Pi_Eye2_bb.png"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.Rpi_Pi_Eye2_bb_m.png" alt="Rpi_Pi_Eye2_bb.png" style="display:table; margin:0 auto;" /></a><br />
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00979.jpg" title="dsc00979.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00979_s.jpg" alt="dsc00979.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00978.jpg" title="dsc00978.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00978_s.jpg" alt="dsc00978.jpg" /></a><br /></p>
<h3><a href="http://burogu.makotoworkshop.org/index.php?post/2016/06/01/RpipiEYE4">À suivre…</a></h3>http://burogu.makotoworkshop.org/index.php?post/2015/11/27/RpipiEYE3#comment-formhttp://burogu.makotoworkshop.org/index.php?feed/atom/comments/597Rpi-pi_EYE -2-urn:md5:91c564e1bf26f17adf79a1a7525fc30f2015-10-20T20:40:00+02:002016-06-01T16:50:02+02:00makoto doushiteRaspberry PiCameraDIYHackingImpression3DModélisation3DPythonRaspBerryPIRaspbian<p>Voici la suite <a href="http://burogu.makotoworkshop.org/index.php?post/2014/11/22/RpipiEYE">du projet commencé ici</a> :<br /></p>
<p>Les fichiers 3D sont disponibles <a href="http://www.thingiverse.com/thing:520703">ici</a> et en annexe de ce billet.<br /></p>
<ul>
<li>Depuis la dernière fois, j'ai modélisé l'arrière du boîtier qui accueille le <em>Raspberry</em>, revu le boitier de face pour que l'anneau soit facile à mettre en position, et tranché en deux les pièces d'engrenages.<br /></li>
</ul>
<p>J'ai donc imprimé tout ça en bleu et conservé l'œil blanc pour le moment.<br /></p>
<ul>
<li>Voici le kit de composants nécessaires à l'œil caméléon :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00855.jpg" title="dsc00855.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00855_m.jpg" alt="dsc00855.jpg" /></a><br />
- Un <em>Raspberry pi Model B</em>.<br />
- Un module <em>Camera Pi</em>.<br />
- Deux Servos <em>TowerPro SG90</em>.<br />
- Une carte SD d'au moins 4Go.<br />
- Un écrou de 1/4" BSW (TPI 20) (1/4 pouce <em>British Standard Whitworth</em>, <em>Threads Per Inch</em> de 20).<br />
- Une tige métallique de 2,1 cm coupée dans un gros trombone.<br />
- Deux très petites vis de récup.<br />
- Le kit de pièces imprimées.<br /><br /></p> <h3><ins>Le montage</ins> :<br /></h3>
<ul>
<li>L'écrou servira à permettre l'utilisation d'un trépied.<br /></li>
</ul>
<p>Il suffit de le glisser dans la fente prévue à cet effet !<br />
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00862.jpg" title="dsc00862.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00862_s.jpg" alt="dsc00862.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00863.jpg" title="dsc00863.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00863_s.jpg" alt="dsc00863.jpg" /></a><br /></p>
<ul>
<li>Ensuite on peut mettre en place le <em>Raspberry</em> avec sa carte SD dans le logement du boitier arrière.<br /></li>
</ul>
<p>En jouant sur l'élasticité du plastique ça passe sans problème, il se clipse au fond pour ne plus bouger.<br />
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00864.jpg" title="dsc00864.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00864_m.jpg" alt="dsc00864.jpg" /></a><br /></p>
<ul>
<li>Les pièces d'engrenages existent en deux versions au choix.<br /></li>
</ul>
<p>En un morceau, qu'il faudra imprimer verticalement, en activant les supports, où en deux morceaux qu'il faudra coller avec de la cyanoacrylate.<br />
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00866.jpg" title="dsc00866.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00866_s.jpg" alt="dsc00866.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00869.jpg" title="dsc00869.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00869_s.jpg" alt="dsc00869.jpg" /></a><br /></p>
<ul>
<li>La caméra est fixée dans l'œil avec les vis de récup.<br /></li>
</ul>
<p>N'oubliez pas la technique du briquet pour ne pas éclater le plastique<sup>[<a href="http://burogu.makotoworkshop.org/index.php?post/2015/10/03/RpipiEYE2#wiki-footnote-1" id="rev-wiki-footnote-1">1</a>]</sup> !<br />
On utilise la tige métallique pour assembler les engrenages et on joue une nouvelle fois sur l'élasticité du plastique pour les loger dans l'œil.<br />
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00868.jpg" title="dsc00868.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00868_s.jpg" alt="dsc00868.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00870.jpg" title="dsc00870.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00870_s.jpg" alt="dsc00870.jpg" /></a><br /></p>
<ul>
<li>Maintenant que l'anneau a des ergots, il est facile de le mettre en place sur le boîtier avant, et avec un peu de chance il se clipse et tiens tout seul, sinon suffit de le coller.<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00871.jpg" title="dsc00871.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00871_s.jpg" alt="dsc00871.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00872.jpg" title="dsc00872.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00872_s.jpg" alt="dsc00872.jpg" /></a><br /></p>
<ul>
<li>Les servos et le mécanisme de l'œil sont en places, il reste à les visser sur le boîtier :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00873.jpg" title="dsc00873.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00873_m.jpg" alt="dsc00873.jpg" /></a><br /></p>
<ul>
<li>Le boitier se referme et tient tout seul grâce au système de clips que j'ai conçu :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00876.jpg" title="dsc00876.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00876_s.jpg" alt="dsc00876.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00878.jpg" title="dsc00878.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00878_s.jpg" alt="dsc00878.jpg" /></a><br /></p>
<ul>
<li>On branche l'alimentation sur le côté, et on peut visser le trépied.<br /></li>
</ul>
<p>Si besoin, il sera possible de connecter un cordon <em>HDMI</em>.<br />
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00879.jpg" title="dsc00879.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00879_s.jpg" alt="dsc00879.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00881.jpg" title="dsc00881.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00881_s.jpg" alt="dsc00881.jpg" /></a><br /></p>
<ul>
<li>Voilà !</li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00884.jpg" title="dsc00884.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00884_s.jpg" alt="dsc00884.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00885.jpg" title="dsc00885.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00885_s.jpg" alt="dsc00885.jpg" /></a><br /><br /></p>
<h3><ins>Les branchements</ins> :<br /></h3>
<p>J'ai dessiné ce petit crobar avec <em><a href="http://fritzing.org">Fritzing</a></em> ! (source en annexe)<br /></p>
<p><a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/Rpi_Pi_Eye_bb.png" title="Rpi_Pi_Eye_bb.png"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.Rpi_Pi_Eye_bb_m.png" alt="Rpi_Pi_Eye_bb.png" style="display:table; margin:0 auto;" /></a><br />
Ces branchements sont très simples, les voici pour rappel en texte :<br />
- Fil orange du servo N°1 sur le <a href="https://projects.drogon.net/raspberry-pi/wiringpi/pins/">GPIO1</a> du Raspberry (pin 12 - BCM18).<br />
- Fil orange du servo N°2 sur le <a href="https://projects.drogon.net/raspberry-pi/wiringpi/pins/">GPIO0</a> du Raspberry (pin 11 - BCM17).<br />
- Fils rouge sur le +5V.<br />
- Fils marron sur la masse de l'alimentation.<br /></p>
<ul>
<li>J'ai donc bricolé ce raccord avec une plaque à trou et des pinoches mâle et femelles :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00894.jpg" title="dsc00894.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00894_s.jpg" alt="dsc00894.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/dsc00893.jpg" title="dsc00893.jpg"><img src="http://burogu.makotoworkshop.org/public/bricolage/Rpi-pi_eye/.dsc00893_s.jpg" alt="dsc00893.jpg" /></a><br /><br /></p>
<h3><ins>Le Code</ins> :<br /></h3>
<p>Je rappelle que j'utilise ici le serveur <a href="http://webpy.org/">web.py</a> pour faire fonctionner les servo à travers une interface web.<br />
Référez-vous au <a href="http://burogu.makotoworkshop.org/index.php?post/2014/11/22/RpipiEYE">billet précédent</a> pour plus de précisions !<br />
Pour l'exemple qui suit, j'ai déterminé au préalable les valeurs max pour les quatre positions cardinales et le centre.<br /></p>
<ul>
<li>On va écrire un programme qui sera placé dans le dossier <em>/webpyserver/cameleon01.py</em> :<br /></li>
</ul>
<pre class="brush: python">#!/usr/bin/env python
import web, RPIO, time
from web import form
from RPIO import PWM
servo = PWM.Servo()
# definit la page de nom index pour le site web
urls = ('/', 'index')
dossier_web = web.template.render('templates')
app = web.application(urls, globals())
# definit les boutons a afficher
ma_forme = form.Form(
form.Button("btn", id = "btn2", value = "s2", html = "Droite", class_ = "bouton_2"),
form.Button("btn", id = "btn3", value = "s3", html = "Gauche", class_ = "bouton_3"),
form.Button("btn", id = "btn4", value = "s4", html = "Centre", class_ = "bouton_4"),
form.Button("btn", id = "btn5", value = "s5", html = "Haut", class_ = "bouton_5"),
form.Button("btn", id = "btn6", value = "s6", html = "Bas", class_ = "bouton_6")
)
# definit l action a effectuer quand la page index est appele
class index:
def GET(self):
forme = ma_forme()
return dossier_web.index(forme, "Raspberry Pi control Servo")
def POST(self):
userdata = web.input()
# Droite
if userdata.btn == "s2": # Si le bouton 2 est appuye
servo.set_servo(17, 1350) # Alors bouger le servo 17
servo.set_servo(18, 1350) # Alors bouger le servo 18
time.sleep(0.5) # Attendre une demi seconde que le servo ait le temps de bouger
servo.stop_servo(17) # Par securite, stopper le servo 17
servo.stop_servo(18) # Par securite, stopper le servo 18
# Gauche
if userdata.btn == "s3":
servo.set_servo(17, 2150)
servo.set_servo(18, 2150)
time.sleep(0.5)
servo.stop_servo(17)
servo.stop_servo(18)
# Centre
if userdata.btn == "s4":
servo.set_servo(17, 1750)
servo.set_servo(18, 1750)
time.sleep(0.5)
servo.stop_servo(17)
servo.stop_servo(18)
# Haut
if userdata.btn == "s5":
servo.set_servo(17, 1350)
servo.set_servo(18, 2150)
time.sleep(0.5)
servo.stop_servo(17)
servo.stop_servo(18)
# Bas
if userdata.btn == "s6":
servo.set_servo(17, 2150)
servo.set_servo(18, 1350)
time.sleep(0.5)
servo.stop_servo(17)
servo.stop_servo(18)
raise web.seeother('/')
# programme
if __name__ == '__main__':
app.run()</pre>
<ul>
<li>Tout est prêt, on démarre le serveur web avec la commande :</li>
</ul>
<pre>sudo python cameleon01.py</pre>
<p>Et on se rend avec son navigateur à l'adresse IP du Raspberry en spécifiant le port 8080…<br />
Apparaissent alors 5 boutons d'actions, enjoy ^__^<br /></p>
<h3><a href="http://burogu.makotoworkshop.org/index.php?post/2015/11/27/RpipiEYE3">À suivre…</a></h3>
<div class="footnotes"><h4>Note</h4>
<p>[<a href="http://burogu.makotoworkshop.org/index.php?post/2015/10/03/RpipiEYE2#rev-wiki-footnote-1" id="wiki-footnote-1">1</a>] Les trous de vis seront peut-être un peu étroit en fonction des vis à disposition; dans ce cas, pour éviter d'éclater le plastique en vissant, il suffit d'engager la vis puis de chauffer la tête de vis quelques secondes avec une flame, et enfin de visser doucement et d'attendre que le plastique durcisse. Le pas de vis aura donc été creusé sans danger.</p></div>
http://burogu.makotoworkshop.org/index.php?post/2015/10/03/RpipiEYE2#comment-formhttp://burogu.makotoworkshop.org/index.php?feed/atom/comments/595Rpi-pi_EYEurn:md5:291af44ad3511e90c8bda3da41a071912015-02-04T21:00:00+01:002019-11-12T20:38:05+01:00makoto doushiteRaspberry PiCameraDIYHackingImpression3DModélisation3DPythonRaspBerryPIRaspbianVidéos<ul>
<li>En traînant sur <em>Thingiverse</em> à la recherche d'un support à imprimer pour la <em><a href="http://burogu.makotoworkshop.org/index.php?post/2014/09/10/picamstream">RaspiCam</a></em>, je suis tombé sur ce truc : <a href="https://www.thingiverse.com/thing:198590">Raspberry-P-eye by Ghiotto</a> !<br /></li>
</ul>
<p>Impressionné par le résultat, j'ai alors entrepris de l'imprimer, ce malgré le manque d'informations et d'<strong>instructions</strong> flagrant, me disant naïvement que le gars avait dû faire les choses bien, que ça passerait sans problèmes…<br />
Bien mal m'en a pris, ce fût une catastrophe !<br />
L'impression en <em>ABS</em> étant toujours assez galère avec des décollements de pièces importants, j'ai dû jeter la pièce principale du <em>P-eye</em> qui non seulement était donc déformée, et qui de plus ne permettait pas d’accueillir convenablement les servo-moteurs, les logements n'étant pas aux bonnes dimensions, en plus d'un système d'enclipsement de ceux-ci vraiment trop fragile.<br />
Ces impressions difficiles obligeant à avoir systématiquement recours aux supports d'impression, et le fait qu'il manque le panneau arrière pour loger le <em>Raspberry</em> me fit enfin comprendre que non, son truc n'est vraiment pas terminé.<br />
Encore eut-il fallut le signaler, la fonction existe, une case à cocher dans <em>Thingiverse</em> pour signaler qu'il s'agit d'un <em>WIP</em>:<br /></p>
<blockquote><p>Hey! This thing is still a Work in Progress. Files, instructions, and other stuff might change!</p></blockquote>
<p>Hum, bref, passons…<br />
J'importe et nettoie l'objet dans <em>Sketchup</em> histoire de tout refaire… Wép, le travail n'est pas sourcé, puis de retourner sur la page dans l'idée de publier un remixe et de me rendre compte que le modèle était protégé par une licence restrictive (<em>CC by-nc-nd</em>) interdisant cela !<br /></p>
<ul>
<li>Pas cool, je laissais tout de même un message sur la page histoire de faire baver les <em>follower</em> qui attendaient la suite depuis un an, et <em>Ghiotto</em>, eut alors l'amabilité de libérer son travail afin que je puisse le publier : <a href="http://www.thingiverse.com/thing:520703">http://www.thingiverse.com/thing:520703</a><br /><br /></li>
</ul>
<h3><ins>Le prototype</ins> :<br /></h3>
<p><a href="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/img_0186.jpg" title="img_0186.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/.img_0186_t.jpg" alt="img_0186.jpg" style="float:left; margin: 0 1em 1em 0;" /></a>
<a href="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/img_0183.jpg" title="img_0183.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/.img_0183_t.jpg" alt="img_0183.jpg" style="float:right; margin: 0 0 1em 1em;" /></a>
Voici donc une version au design plus simple que le projet d'origine, plus facilement imprimable.<br />
Tous les éléments du kit de <em>Ghiotto</em> ont été conservés, sauf le boîtier principal que j'ai entièrement refait et séparé en deux morceaux.<br /></p>
<p><a href="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/img_0185.jpg" title="img_0185.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/.img_0185_t.jpg" alt="img_0185.jpg" style="float:left; margin: 0 1em 1em 0;" /></a>
J'ai notamment modifié, agrandit et consolidé les supports de servo pour les adapter à ceux dont je disposais, en plus d'y adjoindre une fixation par vis.<br />
Le fichier source <em>Sketchup</em> permettra au besoin d'ajuster la position latérale de ces supports, ou de les revoir complètement.<br />
Il reste à faire un boîtier arrière pour intégrer le <em>Raspberry-Pi</em> et fermer cet ouvrage.<br /></p>
<ul>
<li>Voici une vue de l'arrière, avec les servos fixés par des petites vis de récupération :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/img_0181.jpg" title="img_0181.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/.img_0181_m.jpg" alt="img_0181.jpg" /></a></p> <p>En action avec la vidéo :<br /></p>
<iframe width="640" height="360" sandbox="allow-same-origin allow-scripts" src="https://peertube.makotoworkshop.org/videos/embed/25989c8d-c8f7-46f7-a256-fe455e10e921?warningTitle=0" frameborder="0" allowfullscreen></iframe>
<ul>
<li>On peut fixer les servos de deux manières différentes :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/img_0129.jpg" title="img_0129.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/.img_0129_s.jpg" alt="img_0129.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/img_0184.jpg" title="img_0184.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/.img_0184_s.jpg" alt="img_0184.jpg" /></a><br /></p>
<ul>
<li>Il faudra peut-être percer un peu plus grand en fonction des vis dont on dispose, ou utiliser la technique du briquet, pour éviter l'éclatement du plastique lorsque le pas de vis va creuser son sillon.<br /></li>
</ul>
<blockquote><p>C'est simple : engager la vis, chauffer la tête, visser doucement dans le plastique qui va ramollir sur le passage de la vis, attendre que ça refroidisse/solidifie pour dévisser, ébavurer l'excédent de plastique fondu remonté au bord du trou, <a href="http://burogu.makotoworkshop.org/index.php?post/2013/11/17/evidences01">revisser en utilisant la bonne technique</a> !<br /></p></blockquote>
<p><br /></p>
<ul>
<li>L'anneau gris est à coller sur la structure :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/img_0182.jpg" title="img_0182.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/.img_0182_s.jpg" alt="img_0182.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/img_0130.jpg" title="img_0130.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/pi_eye/.img_0130_s.jpg" alt="img_0130.jpg" /></a><br /></p>
<p>C'est un peu plus esthétique, ici en vidéo :</p>
<iframe width="640" height="360" sandbox="allow-same-origin allow-scripts" src="https://peertube.makotoworkshop.org/videos/embed/25ba9655-b3aa-4940-afc5-66e8dd4535ee?warningTitle=0" frameborder="0" allowfullscreen></iframe>
<p><br /><br /></p>
<h3> <ins>Câblage des servos sur les <em>GPIO</em> du <em>Raspberry</em></ins> :<br /></h3>
<p>Avec des servo <em>TowerPro SG90</em>,<br /></p>
<ul>
<li>Premier servo<br /></li>
</ul>
<p>- Fil orange sur le <a href="https://projects.drogon.net/raspberry-pi/wiringpi/pins/">GPIO1</a> du Raspberry (pin 12 - BCM18).<br />
- Fil rouge sur le +5V d'une alimentation externe (l<em>'USB</em> du <em>Raspi</em> n'est pas assez puissant).<br />
- Fil marron sur la masse de l'alimentation.<br /></p>
<ul>
<li>Second servo<br /></li>
</ul>
<p>- Fil orange sur le <a href="https://projects.drogon.net/raspberry-pi/wiringpi/pins/">GPIO0</a> du Raspberry (pin 11 - BCM17).<br />
- Fil rouge sur le +5V de l'alimentation.<br />
- Fil marron sur la masse de l'alimentation.<br /></p>
<p>Relier une masse <em>GPIO</em> du <em>Raspberry</em> sur la masse de l'alimentation externe.<br /><br /></p>
<h3><ins>Utilisation de la librairie <em>RPIO</em></ins> :<br /></h3>
<p>Voici la doc de la librairie : <a href="http://pythonhosted.org/RPIO/">http://pythonhosted.org/RPIO/</a><br /></p>
<ul>
<li>Pour l'installer, c'est facile :<br /></li>
</ul>
<pre>
sudo apt-get install python-setuptools
sudo easy_install -U RPIO
</pre>
<ul>
<li>Voilà quelques morceaux de code qu'on peut utiliser dans la console python, notamment pour déterminer les valeurs limites de la course du servo (valeurs à tâtonner doucement, pour ne pas trop la dépasser, car sinon on force le micro-mécanisme au risque de l'abîmer).<br /></li>
</ul>
<blockquote><p>Valeurs minimale et maximale de la <em>PWM</em> testée pour mes servos : 820µs à 2690µs.<br /></p></blockquote>
<p>On initialise la libraire :<br /></p>
<pre class="brush: python">from RPIO import PWM
servo = PWM.Servo()</pre>
<ul>
<li>Puis on fait bouger le servo connecté au GPIO17 avec 820µs :<br /></li>
</ul>
<pre class="brush: python">servo.set_servo(17, 820)</pre>
<ul>
<li>On fait bouger le servo connecté au GPIO17 avec 2690µs, dans le sens opposé donc:<br /></li>
</ul>
<pre class="brush: python">servo.set_servo(17, 2690)</pre>
<ul>
<li>On stoppe les opération pour le GPIO17 :<br /></li>
</ul>
<pre class="brush: python">servo.stop_servo(17)</pre>
<p>À ce stade, on sait donc piloter les servos, il suffit de choisir la valeur qui sied à la position dont on a besoin. Avec ces commandes simples, on peut déjà créer un programme…<br /><br /></p>
<h3><ins>Piloter les servos via une interface web avec <em>web.py</em></ins> :<br /></h3>
<ul>
<li>Découvert après quelques recherches, on va utiliser un module <em><a href="http://burogu.makotoworkshop.org/index.php?post/2014/11/22/web.py">http://webpy.org/</a></em>, qui contient un serveur Web ultra-léger.<br /></li>
</ul>
<blockquote><p>Et de me rendre compte de la mention en bas de page :<br />
started by Aaron Swartz (webpy@aaronsw.com)<br />
…<br />
Tomber sur un petit bout du travail d<em>'Aaron Swartz</em>, peu après avoir visionné sa bio en vidéo, ma saisi au tripe… quand on sait le gâchis qu'a été cette histoire, une victime pour l'exemple, du <em>patriot act</em> américain, que l'état Français cherche à faire la même chose au travers de lois sécuritaires, donc liberticides, que beaucoup applaudissent, dont madame pécresse qui déclare publiquement des bêtises (<a href="https://twitter.com/vpecresse/status/554225297307205632">« Il faudra bien entendu un Patriot Act à la française… »</a>), pour déclarer plus tard : « je ne sais même pas ce qu'il y a dans le Patriot Act américain »…<br />
Tout ça me file la nausée… juste, connectez vos cerveaux ou allez faire chier les mygales dans leurs nids, qu'on ait la paix !<br />
Ces lois n'empêcheront pas les poseurs de bombes, ho que non ! Par contre elles permettent de contrôler touuuut le monde, voire d'en pousser certains à bout, jusqu'au suicide…<br /></p></blockquote>
<ul>
<li>Si vous ne l'avez pas vu, allez tout de suite télécharger la vidéo : <em>The Internets Own Boy_The Story of Aaron Swartz</em>, voici <a href="http://burogu.makotoworkshop.org/public/divers/TheInternetsOwnBoy_TheStoryofAaronSwartz-HD.srt">les sous-titres en Français</a>.<br /></li>
</ul>
<p>Hum…<br /></p>
<ul>
<li>C'est donc avec émotions qu'on installe le module, à l'aide d<em>'easy install</em> :<br /></li>
</ul>
<pre>
sudo easy_install web.py
</pre>
<ul>
<li>Puis on crée une arborescence sur le <em>Raspberry-Pi</em>:<br /></li>
</ul>
<pre>
cd /
mkdir webpyserver
cd /webpyserver
mkdir templates
mkdir static
</pre>
<p>Le dossier <em>webpyserver</em> contiendra le fichier Python à exécuter.<br />
Le dossier <em>webpyserver/templates</em> contiendra une page HTML.<br />
Et le dossier <em>webpyserver/static</em> contiendra une feuille de style au format CSS.<br /></p>
<ul>
<li>On va écrire un programme qui sera placé dans le dossier <em>/webpyserver/DeuxServo.py</em> :<br /></li>
</ul>
<pre class="brush: python">#!/usr/bin/env python
import web, RPIO
from web import form
from RPIO import PWM
servo = PWM.Servo()
# definit la page de nom index pour le site web
urls = ('/', 'index')
dossier_web = web.template.render('templates')
app = web.application(urls, globals())
# definit les boutons a afficher
ma_forme = form.Form(
form.Button("btn", id = "btn1-0", value = "s1-0", html = "Servo 1 - 0 degre", class_ = "bouton_1-0"),
form.Button("btn", id = "btn1-90", value = "s1-90", html = "Servo 1 - 90 degres", class_ = "bouton_1-90"),
form.Button("btn", id = "btn1-180", value = "s1-180", html = "Servo 1 - 180 degres", class_ = "bouton_1-180"),
form.Button("btn", id = "btn2-0", value = "s2-0", html = "Servo 2 - 0 degre", class_ = "bouton_2-0"),
form.Button("btn", id = "btn2-90", value = "s2-90", html = "Servo 2 - 90 degres", class_ = "bouton_2-90"),
form.Button("btn", id = "btn2-180", value = "s2-180", html = "Servo 2 - 180 degres", class_ = "bouton_2-180")
)
# definit l action a effectuer quand la page index est appele
class index:
def GET(self):
forme = ma_forme()
return dossier_web.index(forme, "Raspberry Pi control Servo")
def POST(self):
userdata = web.input()
if userdata.btn == "s1-0":
servo.set_servo(17, 820)
if userdata.btn == "s1-180":
servo.set_servo(17, 2600)
if userdata.btn == "s1-90":
servo.set_servo(17, 1710)
if userdata.btn == "s2-0":
servo.set_servo(18, 820)
if userdata.btn == "s2-180":
servo.set_servo(18, 2600)
if userdata.btn == "s2-90":
servo.set_servo(18, 1710)
raise web.seeother('/')
# programme
if __name__ == '__main__':
app.run()</pre>
<ul>
<li>Enfin dans le dossier <em>templates</em> on écrit un fichier <em>index.html</em> :<br /></li>
</ul>
<pre class="brush: xml">$def with (form, title)
<!doctype html>
<html>
<head>
<title>$title</title>
</head>
<body>
<br />
<form class="form" method="post">
$:form.render()
</form>
</body>
</html></pre>
<ul>
<li>Tout est prêt, on initialise le programme avec la commande :<br /></li>
</ul>
<pre>
sudo python DeuxServo.py
</pre>
<ul>
<li>Et on se rend à l'adresse IP du <em>Raspberry</em> en spécifiant le port 8080 :<br /></li>
</ul>
<p><a href="http://burogu.makotoworkshop.org/public/ordi/raspi/ControlServo.jpg" title="ControlServo.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/.ControlServo_s.jpg" alt="ControlServo.jpg" /></a></p>
<ul>
<li>C'est tout pour ce programme de test !<br /></li>
</ul>
<blockquote><p>Reste à écrire un programme pour piloter les deux servos à l'unisson afin de diriger l'œil de la caméra aux coordonnées désirées.
Cela fera peut-être l'objet d'un futur billet, mais il faut déjà que je termine la modélisation3D du boîtier.</p></blockquote>
<p><br /></p>
<h3><a href="http://burogu.makotoworkshop.org/index.php?post/2015/10/03/RpipiEYE2">À suivre</a>…<br /><br /></h3>
<p><strong><ins>Ressources</ins> :</strong><br /></p>
<p><a href="http://itechnofrance.wordpress.com/2013/02/04/piloter-les-ports-gpio-partir-dun-navigateur-internet/">http://itechnofrance.wordpress.com/2013/02/04/piloter-les-ports-gpio-partir-dun-navigateur-internet/</a><br />
<a href="http://webpy.org/">http://webpy.org/</a><br /></p>
<p><a href="https://www.censa.mx/imgs/prods/18022004/docs/doc1-1401817609.pdf">https://www.censa.mx/imgs/prods/18022004/docs/doc1-1401817609.pdf</a><br />
<a href="http://www.servodatabase.com/servo/towerpro/sg90">http://www.servodatabase.com/servo/towerpro/sg90</a><br />
<a href="https://www.censa.mx/imgs/prods/18022004/docs/doc1-1401817609.pdf">https://www.censa.mx/imgs/prods/18022004/docs/doc1-1401817609.pdf</a><br />
<a href="https://projects.drogon.net/raspberry-pi/wiringpi/pins/">https://projects.drogon.net/raspberry-pi/wiringpi/pins/</a><br />
<a href="https://groups.google.com/forum/#!topic/raspberrybots/lRfu5ucbjYE">https://groups.google.com/forum/#!topic/raspberrybots/lRfu5ucbjYE</a><br />
<a href="http://papinthierry.free.fr/index.php?option=com_content&view=article&id=32&Itemid=32">http://papinthierry.free.fr/index.php?option=com_content&view=article&id=32&Itemid=32</a><br /></p>http://burogu.makotoworkshop.org/index.php?post/2014/11/22/RpipiEYE#comment-formhttp://burogu.makotoworkshop.org/index.php?feed/atom/comments/556Module Camera Pi défectueuxurn:md5:0e7f5175cc08683c49cf92ee25baf5a52014-09-08T17:53:00+02:002014-09-08T17:00:54+02:00makoto doushiteRaspberry PiCameraDépannageRaspBerryPIRaspbian <p><a href="http://burogu.makotoworkshop.org/public/ordi/raspi/modulecampi.jpg" title="modulecampi.jpg"><img src="http://burogu.makotoworkshop.org/public/ordi/raspi/.modulecampi_s.jpg" alt="modulecampi.jpg" style="float:right; margin: 0 0 1em 1em;" /></a></p>
<ul>
<li>Dernièrement je cherchais à faire du flux vidéo avec une webcam et un <em>Raspberry Pi</em>, mais malheureusement, ma « webcam Philips de l'an 2000 gagnée au concours des net d'or de <em>France Télécom</em> » (oui je dois toujours remettre mon vieux site en ligne ^^;) qui pourtant fonctionne comme un charme sous n'importe quel GNU/Linux, ne fonctionnait pas avec le <em>Pi</em>.<br /></li>
</ul>
<p>Même pas une question d'alimentation, juste une incompatibilité hardware qui reset la caméra dés qu'on lui demande quelque chose.(Philips PCVC675K)<br /></p>
<p>J'ai alors voulu voir pour une webcam, une HD tant qu'à faire, et vraiment de me rendre compte que l'USB était bien trop lent pour streamer quelque chose de correct en HD en terme de débit d'image et de qualités de celles-ci.<br /></p>
<blockquote><p>Je me suis alors souvenu du Module Camera pour la <em>Raspberry</em>, qui, pour moins cher qu'une webcam, est capable de capturer de la HD à grande vitesse sur le port prévu à cet effet !<br /></p></blockquote>
<p>Hop, j'en acquiert donc un et me met au boulot…<br /><br /></p>
<ul>
<li>J'installe une <em>Raspbian</em> toute fraîche (2014-06-20-wheezy-raspbian), et j'active la caméra à l'étape <em>raspi-config</em>, puis je mets à jour :<br /></li>
</ul>
<pre>
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install rpi-update
sudo rpi-update
</pre>
<ul>
<li>Je m'en vais tester la caméra avec la simple commande : <br /></li>
</ul>
<pre>
raspistill -o image.jpg
</pre>
<ul>
<li>Rien ne se passe… puis s'affiche ceci : <br /></li>
</ul>
<pre>
mmal received unexpected camera control callback event, 0x4f525245
</pre>
<p>Allons bon… qu'est-ce qui va pas encore ! Un problème de version ?<br /></p>
<ul>
<li>Je tente de rétrograder dans des anciennes versions choisies parmi la liste <a href="https://github.com/Hexxeh/rpi-update/commits/master">https://github.com/Hexxeh/rpi-update/commits/master</a>, par exemple</li>
</ul>
<pre>
rpi-update 1b9a0011
</pre>
<p>Toujours rien… Rahhh mais euuuuuu j'ai beau tenter plein de trucs, refaire et vérifier les branchements, tester sur ma seconde <em>Raspberry</em>, ça ne veut rien savoir.<br />
La commande <em>raspistill</em> allume bien la led de la cam, mais la commande freeze, la led reste allumée, puis l'erreur est envoyée.<br /><br /></p>
<ul>
<li>Une petit gars gentil, merci <em>das-leben-ist-schoen</em>, à pris la peine de s'inscrire <a href="http://93.93.128.176/forums/viewtopic.php?f=43&t=64750&sid=30218800999dfb84cfbacce82f94fbef&start=25">sur ce forum</a> juste pour indiquer qu'après avoir vérifié les modalités d'usages, comme le branchement correct de la nappe, celui du petit connecteur jaune, et quelques commandes comme <em>vcgencmd get_camera</em>, <strong>si l'erreur persiste, la solution est tout simplement de remplacer la caméra</strong>…<br /></li>
</ul>
<p>Mince alors, les recherches en ligne montrant que je n'étais pas seul dans ce cas, le produit étant neuf, on ne pense pas tout de suite à un défaut de fabrication, et pourtant, il faut bien s'y résoudre malgré la journée perdue à chercher en vain.<br />
À défaut de confirmer avec une seconde caméra qu'on m'aurait prêté, j'ai donc fait appel au SAV qui m'a remplacé le module sans difficulté !<br /></p>
<ul>
<li>Problème réglé !<br /></li>
</ul>
<p>C'est rare de tomber en panne après l'achat mais ça arrive quand même, d'où l'importance pour certains types de produits de bien choisir l'enseigne du magasin.<br /></p>http://burogu.makotoworkshop.org/index.php?post/2014/09/08/camerapihs#comment-formhttp://burogu.makotoworkshop.org/index.php?feed/atom/comments/548Camescope numériqueurn:md5:d7e679317d5727b0420cb113b16ff68b2010-02-11T19:50:00+01:002013-08-30T10:23:32+02:00makoto doushiteMaKoToCamera <p>Après quelques mois de réflexion, beaucoup de temps passé à étudier de nombreux modèles et <a href="http://burogu.makotoworkshop.org/index.php?post/2010/01/30/Les-questions-que-personne-ne-se-pose-%C3%A0-l-achat-d-un-camescope">une étude approfondie</a>, j'ai enfin opté hier pour une caméra, la <em>Canon Legria FS200</em>.</p>
<p><a href="http://burogu.makotoworkshop.org/public/achats/dsc06739.jpg" title="dsc06739.jpg"><img src="http://burogu.makotoworkshop.org/public/achats/.dsc06739_s.jpg" alt="dsc06739.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/achats/dsc06743.jpg" title="dsc06743.jpg"><img src="http://burogu.makotoworkshop.org/public/achats/.dsc06743_s.jpg" alt="dsc06743.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/achats/dsc06742.jpg" title="dsc06742.jpg"><img src="http://burogu.makotoworkshop.org/public/achats/.dsc06742_m.jpg" alt="dsc06742.jpg" /></a>
<br /></p>
<h4><ins>Pourquoi ce modèle</ins> ?</h4>
<ul>
<li>Compatible GNU/Linux, testé et validé !</li>
<li>Enregistrement sur carte mémoire SD et SDHC, format très répandu et pas cher.</li>
<li>Entrée micro !</li>
<li>Sorte Casque !</li>
<li>Pré-réglages débrayables. (exposition, balance des blancs, mise au point…)</li>
<li>Absence quasi totale de pièce mécanique tombant facilement en panne. (magneto)</li>
<li>Écran <strong>non</strong> tactile (c'est crade, imprécis à cette taille, et si le tactile tombe en panne et que l'écran marche encore… t'as l'air malin!)</li>
<li>Pas besoin de numériser ou transcoder, car les codecs sont exploitables directement par les logiciels de montage.</li>
<li>Note technique du test Fnac.</li>
<li>Format d'image conforme à mes attentes.</li>
</ul>
<pre><strong>Un flux vidéo MPEG</strong>
Résolution 720 x 576
Ratio PAL 16:9 (64:45)
FPS 25 images/secondes
<strong>Un flux Audio AC3</strong>
Canaux Stéreo
Bitrate 32000 Bps / 256 kbps
Fréquence 48000 Hz</pre>
<p>Il est vraiment très compact !<br />
<a href="http://burogu.makotoworkshop.org/public/achats/dsc06747.jpg" title="dsc06747.jpg"><img src="http://burogu.makotoworkshop.org/public/achats/.dsc06747_s.jpg" alt="dsc06747.jpg" /></a>
<a href="http://burogu.makotoworkshop.org/public/achats/dsc06748.jpg" title="dsc06748.jpg"><img src="http://burogu.makotoworkshop.org/public/achats/.dsc06748_s.jpg" alt="dsc06748.jpg" /></a></p>http://burogu.makotoworkshop.org/index.php?post/2010/02/11/Camescope-numerique#comment-formhttp://burogu.makotoworkshop.org/index.php?feed/atom/comments/133Les questions que personne ne se pose à l'achat d'un camescope ?!urn:md5:8ac80cd95168544fe58515d9ccee71652010-01-30T19:48:00+01:002010-02-05T21:38:12+01:00makoto doushiteDécouvertesCamera<p>J'ai testé pour vous 4 caméras SD… mais pas comme tous les sites de tests le font habituellement ! (<a href="http://www.lesnumeriques.com/">les numériques</a>, <a href="http://www.svmlemag.fr">SVM</a>, <a href="http://www.magazinevideo.com/">magazine vidéo</a>, etc)<br /></p>
<p>En effet, après avoir étudié, leurs avis en terme d'utilisation, d'images, et d'options, je me suis demandé si je pourrais effectuer des montages vidéos sur mon ordi avec mon Ubuntu.<br />
Et me suis donc posé des questions du genre :<br /></p>
<ul>
<li>Quid du port USB ?<br /></li>
</ul>
<p>En effet, certains modèles ont une mémoire interne pour le stockage des vidéos MPG2 ou H264, et il y a toujours le doute lors du raccordement USB de l'appareil, de ne pouvoir récupérer les fichiers vidéo qu'à l'aide d'un logiciel spécifique fournit pour Windows®<br /></p>
<ul>
<li>Quid de la carte mémoire ?<br /></li>
</ul>
<p>J'imagine qu'une fois montée comme un stockage de masse, on puisse simplement copier les fichiers vidéo s'y trouvant… à moins que, là encore, il faille la laisser dans la caméra et utiliser un logiciel de transfert …<br /></p>
<ul>
<li>Quid du format de fichier ?<br /></li>
</ul>
<p>A savoir aussi si les codecs employés sont standard ou «triturés» par ces messieurs constructeurs… rendant leur utilisation scabreuse en montage et visionnage sans encore un foutu «drivers» Windows® ou le passage obligé par une étape de conversion.<br /></p>
<blockquote><p>Bref, pas mal d'interrogations, car le «méchant propriétaire» s'immisce décidément partout…<br /></p>
<p>
Mais <strong>surtout de m'étonner que les sites sus-cités se cantonnent à critiquer l'optique sans jamais aborder ces sujets</strong> (et ça c'est vraiment «grave» de nos jours), et de ne jamais trouver de retour d'expérience utilisateur, de ce genre de questionnement… Ou alors quand j'en trouvais, il s'agissait de questions sans réponses…<br /></p></blockquote> <h5>Par exemple, aux questions :<br /></h5>
<p><em>Quelle est la résolution de l'image filmée, son format, son débit et son conteneur ?</em><br />
- Sur les sites marchand, pas d'info, ou alors des bêtises !<br />
- En boutique, idem…<br />
- L'avantage du net, c'est aussi de pouvoir lire les notices des appareils avant leur achat ! Je pensais alors pouvoir trouver mon bonheur, mais en fait non…dans 80% des cas, absence totale d'information !<br /></p>
<p>Je me suis alors demandé : «<em>suis-je le seul con à exiger l'exactitude et l'exhaustivité des documents ?, le public aime t'il se faire embobiner de la sorte ?</em>»<br />
Bref, je suis surement un consommateur (très) exigent, comme l'aimable vendeuse de la Fnac me le confirma en m'indiquant que, par montage vidéo, les gens entendent «du copier/coller…»<br /></p>
<p>J'ai vraiment passé de nombreuses heures à surfer pour trouver des réponses fiables, mais en vain…<br />
Les seules informations obtenues proviennent de <a href="http://www.lprod.org/wiki/doku.php/matos:achat_camescope:liste_camescope">Lprod</a><br /></p>
<pre></pre>
<p>Comme je ne suis pas du genre à me satisfaire de <em>MPEG2, XP/SP/LP</em> comme seuls éléments de réponses, et comme on est jamais mieux servit que par soit-même, je suis allé tester avec mes cartes SD dans les show-room des magasins…<br />
Je m'en suis tapé 4<sup>[<a href="http://burogu.makotoworkshop.org/index.php?post/2010/01/30/Les-questions-que-personne-ne-se-pose-%C3%A0-l-achat-d-un-camescope#pnote-122-1" id="rev-pnote-122-1">1</a>]</sup> avant de trouver celui où les modèles que je visais étaient vendu, exposés, branchés, et sans antivol mal placés empêchant l'accès à la fente du logement SD. (Fnac Paris St Lazare validé!)<br /></p>
<p>J'ai abandonné les modèles <em>Sony</em> car je ne voudrais pas d'un écran tactile, ni du format mémory-stick à la noix imposé… toute façon j'avais pas de carte de ce genre pour tester et de toute manière elle est déjà notée compatible par Lprod !<br />
Abandonné aussi le <em>Samsung SMX F300</em>, car il enregistre en H264, et après avoir fait des tests de montage de vidéos enregistrées dans ce format, c'est inexploitable sans devoir convertir par exemple en DV… et ça c'est couillon, car il serait bien dommage de devoir perdre ce temps, qu'on est censé avoir gagné puisqu'on est plus obligé de numériser des bandes magnétique.<br /></p>
<p>J'ai donc testé ces modèles-ci : [carte SD formatée dans la caméras, réglées en qualité d'image maxi]<br /></p>
<h2><ins>Canon Legria FS200</ins><br /></h2>
<p><img src="http://burogu.makotoworkshop.org/public/ordi/cameras/canonFS200.png" alt="canonFS200.png" style="float:right; margin: 0 0 1em 1em;" /></p>
<ul>
<li>La carte SD est formatée FAT32 et nommée «CANON»; elle se monte donc comme une clé USB.</li>
<li>Les clip vidéos se retrouvent à cet emplacement de la carte : <em>sd_video/prg001/</em></li>
<li>Ils sont contenu dans un .mod et nommés de manière incrémentale : <em>mov001.mod</em></li>
</ul>
<p><ins>Avidemux informe qu'il sont composés ainsi</ins> : <br /></p>
<pre><strong>Un flux vidéo MPEG</strong>
Résolution 720 x 576
Ratio PAL 16:9 (64:45)
FPS 25 images/secondes
<strong>Un flux Audio AC3</strong>
Canaux Stéreo
Bitrate 32000 Bps / 256 kbps
Fréquence 48000 Hz</pre>
<p><img src="http://burogu.makotoworkshop.org/public/ordi/cameras/canonFS200Labo.png" alt="canonFS200Labo.png" style="float:right; margin: 0 0 1em 1em;" />
<ins>Lecteurs testés</ins> :<br /></p>
<p>- VLC refuse de lire ces fichiers, sauf une fois renommés en .mpg<br />
- Kaffeine lit ces fichiers mais ne détecte pas l'anamorphose, il faut donc forcer le ratio en 16/9.<br /></p>
<p><ins>Montage testés</ins> :<br /></p>
<p>- Cinelerra travaille directement sur ces fichiers renommés en .mpg, essai de montage satisfaisant avec rendu final sans encombres.<br /></p>
<p>Modèle présents sur les <strong>Labo Fnac</strong> Été 2009 (en annexe de cet article, Pictogramme extrait de celui-ci)<br /></p>
<pre></pre>
<h2><ins>Canon Legria FS20</ins><br /></h2>
<p><img src="http://burogu.makotoworkshop.org/public/ordi/cameras/canonFS20.png" alt="canonFS20.png" style="float:right; margin: 0 0 1em 1em;" /></p>
<ul>
<li>La carte SD est formatée FAT32 et nommée «CANON»; elle se monte donc comme une clé USB.</li>
<li>Les clip vidéos se retrouvent à cet emplacement de la carte : <em>sd_video/prg001/</em></li>
<li>Ils sont contenu dans un .mod et nommés de manière incrémentale : <em>mov001.mod</em></li>
</ul>
<p><ins>Avidemux informe qu'il sont composés ainsi</ins> : <br /></p>
<pre><strong>Un flux vidéo MPEG</strong>
Résolution 720 x 576
Ratio PAL 16:9 (64:45)
FPS 25 images/secondes
<strong>Un flux Audio AC3</strong>
Canaux Stéreo
Bitrate 32000 Bps / 256 kbps
Fréquence 48000 Hz</pre>
<p><img src="http://burogu.makotoworkshop.org/public/ordi/cameras/canonFS20Labo.png" alt="canonFS20Labo.png" style="float:right; margin: 0 0 1em 1em;" />
<ins>Lecteurs testés</ins> :<br /></p>
<p>- VLC refuse de lire ces fichiers, sauf une fois renommés en .mpg<br />
- Kaffeine lit ces fichiers mais ne détecte pas l'anamorphose, il faut donc forcer le ratio en 16/9.<br /></p>
<p><ins>Montage testés</ins> :<br /></p>
<p>- Cinelerra travaille directement sur ces fichiers renommés en .mpg, essai de montage satisfaisant avec rendu final sans encombres.<br /></p>
<p>Modèle présents sur les <strong>Labo Fnac</strong> Été 2009 et 2010 (en annexe de cet article, Pictogramme extrait de celui-ci)<br /></p>
<pre></pre>
<h2><ins>JVC GZ-MS125</ins><br /></h2>
<p><img src="http://burogu.makotoworkshop.org/public/ordi/cameras/JVC-GZ-MS125.png" alt="JVC-GZ-MS125.png" style="float:right; margin: 0 0 1em 1em;" /></p>
<ul>
<li>La carte SD est formatée FAT32 et nommée «EVERIO_SD»; elle se monte donc comme une clé USB.</li>
<li>Les clip vidéos se retrouvent à cet emplacement de la carte : <em>sd_video/prg001/</em></li>
<li>Ils sont contenu dans un .mod et nommés de manière incrémentale : <em>mov001.mod</em></li>
</ul>
<p><ins>Avidemux informe qu'il sont composés ainsi</ins> : <br /></p>
<pre><strong>Un flux vidéo MPEG</strong>
Résolution 720 x 576
Ratio PAL 16:9 (64:45)
FPS 25 images/secondes
<strong>Un flux Audio AC3</strong>
Canaux Stéreo
Bitrate 48000 Bps / 384 kbps
Fréquence 48000 Hz</pre>
<p><img src="http://burogu.makotoworkshop.org/public/ordi/cameras/JVC-GZ-MS125Labo.png" alt="JVC-GZ-MS125Labo.png" style="float:right; margin: 0 0 1em 1em;" />
<ins>Lecteurs testés</ins> :<br /></p>
<p>- VLC refuse de lire ces fichiers, sauf une fois renommés en .mpg<br />
- Kaffeine lit ces fichiers mais ne détecte pas l'anamorphose, il faut donc forcer le ratio en 16/9.<br /></p>
<p><ins>Montage testés</ins> :<br /></p>
<p>- Cinelerra travaille directement sur ces fichiers renommés en .mpg, essai de montage satisfaisant avec rendu final sans encombres.<br /></p>
<p>Modèle présents sur les <strong>Labo Fnac</strong> Été 2009 et 2010 (en annexe de cet article, Pictogramme extrait de celui-ci)<br /></p>
<pre></pre>
<h2><ins>Sanyo Xacti WH1</ins><br /></h2>
<p><img src="http://burogu.makotoworkshop.org/public/ordi/cameras/SanyoXactiWH1.png" alt="SanyoXactiWH1.png" style="float:right; margin: 0 0 1em 1em;" /></p>
<ul>
<li>La carte SD est formatée FAT32 et nommée «XACTI»; elle se monte donc comme une clé USB.</li>
<li>Les clip vidéos se retrouvent à cet emplacement de la carte : <em>/dcim/100sanyo/</em></li>
<li>Ils sont contenu dans un .mp4 et nommés de manière incrémentale : <em>sany0001.mp4</em></li>
</ul>
<p><ins>Avidemux informe qu'il sont composés ainsi</ins> : <br /></p>
<pre><strong>Un flux vidéo H264</strong>
Résolution 1280 x 720
Ratio 1:1 (1:1)
FPS 29.970 images/secondes
<strong>Un flux Audio AAC</strong>
Canaux Stéreo
Bitrate 16000 Bps / 128 kbps
Fréquence 48000 Hz</pre>
<p><img src="http://burogu.makotoworkshop.org/public/ordi/cameras/SanyoXactiWH1Labo.png" alt="SanyoXactiWH1Labo.png" style="float:right; margin: 0 0 1em 1em;" />
<ins>Lecteurs testés</ins> :<br /></p>
<p>- VLC lit ces fichiers sans problèmes.<br />
- Kaffeine lit ces fichiers sans problèmes.<br /></p>
<p><ins>Montage testés</ins> :<br /></p>
<p>- Cinelerra ne sait pas travailler directement sur ces fichiers, montage impossible.<br /></p>
<p>Modèle présents sur les <strong>Labo Fnac</strong> Été 2009 et 2010 (en annexe de cet article, Pictogramme extrait de celui-ci)<br /></p>
<pre></pre>
<p>Envie de vérifier par vous-même ? Voyez-donc les fichiers joints en annexe :)<br /></p>
<p>J'ai d'ores et déjà donné mes conclusions de tests à Lprod, peut-être pourront-ils servir à la communauté.</p>
<div class="footnotes"><h4>Notes</h4>
<p>[<a href="http://burogu.makotoworkshop.org/index.php?post/2010/01/30/Les-questions-que-personne-ne-se-pose-%C3%A0-l-achat-d-un-camescope#rev-pnote-122-1" id="pnote-122-1">1</a>] boycottez Surcouf, surtout celui de Paris Daumesnil… les cam du show-room ne sont pas branchées et ils refusent de le faire, même quand le magasin est désert et que visiblement ils n'ont que ça à faire… je ne blâme pas les vendeurs, il semble ça soit la politique de leur maison… tsss</p></div>
http://burogu.makotoworkshop.org/index.php?post/2010/01/30/Les-questions-que-personne-ne-se-pose-%C3%A0-l-achat-d-un-camescope#comment-formhttp://burogu.makotoworkshop.org/index.php?feed/atom/comments/122