Vendredi, juin 3 2016

Rpi-pi_EYE -Mise à jour-

Suite de l'épisode précédent :
demopieye.jpg

  • Et vlan, un nouveau billet sur le sujet, alors que c'était pourtant terminé… non ?

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 Raspbian, j'ai donc formaté la carte et entrepris de réinstaller tout ça…

  • Sauf qu'après avoir installé le dernier Raspbian, je me suis rendu compte que la librairie RPIO que j'utilisais jusqu'alors pour piloter les servos n'était plus supportée, et qu'il fallait alors me reporter sur une autre solution.

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.

  • Voici donc le plan d'action :

1 - Installer le Raspbian.
2 - Installer un serveur web.
3 - Configurer un stream vidéo MJPG-Streamer de la picamera.
4 - Installer la librairie pigpio.
5 - Installer la librairie wiringPi.
6 - Configurer le site Web.
7 - Configurer son routeur pour sortir en publique le stream vidéo et le site web.


1 - Installer le Raspbian :

Il existe actuellement 2016-05-10-raspbian-jessie-lite.zip, 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é)

  • Déployer l'image sur une carte SD depuis un système GNU/Linux, avec la commande DD

(attention, of=/dev/sdx à adapter pour la cible de votre carte SD, en cas d'erreur risque d'effacement d'un disque dur non désiré)

dd bs=4M if=2016-05-10-raspbian-jessie-lite.img of=/dev/sdx; sync
  • Placer la carte SD dans le Raspberry, et le mettre sous tension.

raspi-config s'exécute tout seul au premier démarrage, configurer tous les trucs comme on veut, et surtout activer la prise en charge de la camera !
Pour exécuter raspi-config plus tard, simplement :

raspi-config

Après le reboot, pour rappel :

Login : pi
Pass : raspberry

  • Effectuer les mises à jour :
sudo apt-get install rpi-update
sudo rpi-update
sudo apt-get update
sudo apt-get upgrade
  • Mettre les fichiers temporaires en ram pour économiser sur la durée de vie la la carte SD.
sudo nano /etc/fstab
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



2 - Installer un serveur web. :

sudo apt-get install apache2 php5



3 - Configurer un stream vidéo MJPG-Streamer de la picamera :

  • Installer MJPG-Streamer raspicam
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
  • Créer le script stream.sh avec la commande pour streamer :
nano ~/stream.sh
#!/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" &
  • Rendre le script exécutable :
chmod+x ~/stream.sh
  • Pour exécuter le script à chaque démarrage, éditer le fichier /etc/rc.local et avant la ligne exit 0, inscrire ces deux lignes :
sleep 8
su -l pi -c "/home/pi/stream.sh &"
  • Pour sortir sur le web, il faudra bien entendu ouvrir le port 9000 (ou autre au choix) sur le routeur ou la machin-box.
  • Pour intégration à un site web, créer la page de visualisation du flux stream.html :
<img src="http://IP-Publique:9000/?action=stream" />

Et voici le code à intégrer à sa home page pour avoir une vignette cliquable vers la page de visualisation du flux :

<a href="http://DOMAINE.com/stream.html"><img src="http://IP-Publique:9000/?action=snapshot"  width="270" height="190" /></a>



4 - Installer la librairie pigpio :

  • La librairie pigpio 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 !

Pour l'installer :

wget abyz.co.uk/rpi/pigpio/pigpio.tar
tar xf pigpio.tar
cd PIGPIO
make -j4
sudo make install
  • Pour exécuter le démon pigpiod à chaque démarrage, éditer le fichier /etc/rc.local et avant la ligne exit 0, inscrire ces deux lignes :
sudo pigpiod



5 - Installer la librairie wiringPi :

sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
./build



6 - Configurer le site Web :

  • 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 :

Plusieurs scripts en python :

  • Dans chaque scripts, ce qu'il faut pour faire bouger l'œil dans une seule position.

Ici le script centreH.py :

#!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()


Plusieurs scripts en php :

  • Chaque script contient une commande système permettant d'appeler le script python.

Ici le script centreH.php :

<?php
system ("python python/centreH.py");
?>


  • 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 WiringPi.
<?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
?>


Un script en JavaScript :

  • Le script va permettre de gérer des actions sur des cliques de souris, sans recharger la page web !

Ici un morceau du script qui permet d'appeler le script centre.php.

function centre()
{
var requestC = new XMLHttpRequest();
requestC.open( "GET" , "centre.php" );
requestC.send(null);
}


La page html du site :

  • L'index.html 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.
<!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>


7 - Configurer son routeur pour sortir en publique le stream vidéo et le site web :

  • Je laisse ici le soin à chacun de se démerder :)

  • Voilà, normalement j'ai rien oublié, voici la démo vidéo :


Ressources :

- http://rpitips.com/python-libraries-pigpio/
- http://rpitips.com/python-libraries-rpi-gpio/
- http://rpitips.com/python-libraries-wiring-pi/

Vendredi, mai 20 2016

Un générateur de Scanlines hardware

Dans le cadre de la réalisation du bartop, celui-ci étant quasiment terminé, et après les premiers essais de jeux, ce que je craignais s'est révélé être très prégnant…
Utiliser un écran LCD, c'est vraiment le mal pour le jeux vidéo dit « rétro ».

  • Les pixels carrés affichés sur un tel moniteur, dénaturent les images du jeux.

indievsretro.pngAlors peut-être que ça ne dérange pas les jeunes joueurs où les gens habitués aux productions récentes aux look dit « rétro », mais qui ne ressemblent en rien à du rétro, car non, les pixels ne sont pas carrés, sur une Télévision cathodique, ils sont ronds, et le rendu est alors très différent ! Les graphismes des jeux d'époques ont d'ailleurs été développés sur des écrans cathodiques dans leur résolution native afin d'optimiser le graphisme en jouant sur le « mélange » des couleurs rendu par le pixel rond. Les développeurs indies l'ont peut-être oublié, ou simplement n'ont-il vu des jeux d'époque que via un émulateur sur un écran d'ordinateur ?
Dans le cas du bartop, d'accord on pourrait activer et triturer pendant des plombes des tas de filtres logiciels, que de toute manière la configuration matérielle ne supporterait pas, tant ils peuvent se révéler gourmand en ressource CPU et donc trop lourd…

L'alternative d'un filtre matériel parait alors ici bien plus adéquate !

Alors ça s’achète tout fait, par exemple un SLG3000, où alors un RetroVGA 2 sous licence CC-BY-SA, du coup bien plus intéressant…
Car on va pouvoir tester ce que ça donne avant d'envisager un achat où une fabrication maison !

Prototype :

  • J'ai donc téléchargé le schéma de Bruno Freita et après avoir récupéré quelques composants glanés par-ci par-la sur de vieilles cartes électroniques (oui, faut jamais jeter !), j'ai câblé le circuit sur une plaque à trou :

img_0283.jpg img_0285.jpg

Essais :

img_0281.jpg

  • Voilà c'est tout simple, il suffit d’intercaler le circuit entre la sortie de la carte graphique de l'ordinateur et l'entrée de l'écran LCD 4/3 (un écran 16/9 ?? non non non… tu sors !), et de configurer l'ordinateur pour qu'il affiche impérativement une résolution de 640x480.

Et voici le résultat avant/après activation des scanlines :

img_0276.jpg img_0275.jpg
L'effet est vraiment bluffant et apporte une véritable plus-value dans le rendu graphique des jeux.
Solution adoptée !

Le circuit :

  • Ayant besoin de plusieurs exemplaire du circuit, j'ai finalement décidé de le construire moi-même.

Et une fois n'est pas coutume, j'ai fait mes propres modifications par rapport au design d'origine.
En effet, le circuit imprimé de Bruno Freita est prévu pour deux prises VGA femelles.
Or cela implique d'utiliser deux câbles VGA, pour entrer et sortir du circuit… C'est dommage, d'autant que ça rallonge considérablement le câblage, avec les pertes de qualités du signal que cela peut engendrer.

  • J'ai donc complètement refait le design, en remplaçant une des prises VGA femelles par une prise mâle, en supprimant les diodes Schottky inutiles selon moi, et en ajoutant des condensateurs de découplage sur les circuit intégrés, choses trop souvent oubliée (ou méconnue ?).

GeneScanlinesStructurel.png

  • Le projet Kicad est dispo en annexe du billet[1], voici quelques captures d'écrans pour info :

GeneScanline.png
GeneScanlineSerigraphie.png GeneScanlineCuivreDessus.png GeneScanlineCuivreDessous.png

  • Notez bien que sur la droite le contour du design n'englobe pas complètement la fiche HD15M, il s'agit d'une erreur esthétique dont je me suis rendu compte trop tard et qui est toujours présente dans projet Kicad, libre à chacun de le modifier.

Avec :

- R1 et R2 = 100 kΩ
- C1 et C2 = 100 µF
- U1 = 74HC74
- U2 = 74HC125
- RV1, RV2 et RV3 = 1kΩ (à l'utilisation, je dirais que 500 Ω serait suffisant)
- VGA1 = D-SUB15 F
- VGA2 = D-SUB15 M
- SW1, SW2, SW3 et SW4 = Switch inverseur


Fabrication :

J'aurais voulu tirer le circuit imprimé double face moi-même, mais j'ai réalisé que des trous métallisés seraient indispensables au niveau des prises VGA pour assurer la continuité du circuit entre les deux faces, sinon il aurait fallu mettre en place un tas de via, et je n'en avais ni l'envie ni l'énergie.

  • Coincé, car autant c'est possible pour les autres composants, autant pour ces prises là, il est impossible de réaliser des soudures du côté des composants, j'ai donc fait appel à Seeedstudio pour réaliser le circuit…

Le site a beaucoup évolué et l'envoi de fichier Gerber est vraiment plus clair et facile qu'avant !

  • J'ai commandé quelques composants manquants, via Ebay avec les bon mots clef[2], et une fois la totalité reçue, j'ai pu fabriquer le circuit :

dsc01376.jpg dsc01382.jpg
dsc01385.jpg dsc01387.jpg

dsc01388.jpg

  • Les 3 potentiomètres de réglage de l'intensité des scanlines sont facultatifs, il est possible de mettre un fil à la place (de fait les scanlines sont donc au maximum, ce qui est parfait).

dsc01378.jpg dsc01390.jpg

Utilisation :

dsc01403.jpg

  • Une fois connecté entre l'ordinateur et l'écran, il suffit d'utiliser le switch ON/OFF pour activer les scanlines.
  • EVEN/ODD sert à basculer sur les lignes paires ou impaires.
  • WITDH est là pour le choix entre deux grosseurs de lignes, les plus fines sont les plus adéquates selon moi.
  • Et enfin VSYNC est à utiliser si les scanlines n'apparaissent pas dans la résolution choisie.

Car il faut au mieux configurer l'ordinateur pour afficher 640x480, ce qui donne le meilleur rendu, mais il est possible d'utiliser 800x600, voire 1024x768, qui nécessite alors de basculer VSYNC.

Remarque importante, il faut absolument utiliser un câble VGA qui possède bien 15 pin (et non 14, la pin 9 absente, comme on en voit encore parfois), car le circuit prend son alimentation sur la pin 9, tension 5 Volt délivrée par la carte graphique de l'ordinateur.


Boîtier imprimé 3D :

dsc01408.jpg dsc01423.jpg
dsc01412.jpg dsc01415.jpg dsc01424.jpg dsc01425.jpg

Ressources :

- http://www.mmmonkey.co.uk/scanlines-do-it-yourself/
- http://www.brunofreitas.com/node/36
- https://insertcoins.net/achats-recherches/des-adresses-pour-un-slg/
- https://www.youtube.com/watch?v=ceCIs3U2MMg
- http://www.smallcab.net/generateur-scanline-slg3000-p-307.html

Notes

[1] ci-dessous…

[2] VGA DB15 15-Pin D-SUB 3 Rows Male Right Angle PCB Solder | ss12f23 toggle vertical slide switch 5pin 4mm | RM065 1K ohm 102 Trim Pot Trimmer Potentiometer

Mercredi, mai 18 2016

Une éolienne à axe vertical -5-

Suite de l'ouvrage précédent :

Après la réalisation de la maquette, on reprend la construction du modèle taille réelle !

  • On va ici réaliser les croix de fixation des ailes (les pièces en plastique bleu sur la maquette).

dsc01327.jpg Au final utiliser les espagnolettes et le tube de vélo semblait vraiment inadéquat, et après mure réflexion, c'est de barre d'acier de 40 mm de large pour 4 mm d'épaisseur qu'il nous fallait. Sauf que ce n'est pas facile à dénicher...
En fouillant le brico du coin, on a trouvé ces caractéristiques avec des pentures de volet qu'on détournerait donc de leur usage premiers.

Le perçage :

Première étape, percer quatre pentures d'un trou de 25 mm afin de pouvoir y passer l'axe de rotation de l'éolienne.
Mais sans perceuse à colonne ni forêt à étage, le travail s'annonce un poil laborieux...

  • Alors on se débrouille avec la perceuse pour d'abord agrandir à 10 mm un des trous d'origine de la penture, puis de l'élargir encore avec un forêt de 20 mm, sur les deux faces, sans pour autant traverser la pièce de métal.

En effet, c'est déjà un exercice périlleux, l'ouvrage vibrant et la perceuse tapant le métal, et vu la puissance demandée il serait vraiment difficile de parvenir à maintenir la perceuse en place au moment de transpercer.
dsc01323.jpg dsc01330.jpg

  • On préfère donc terminer le travail à la lime, et continuer d'élargir le trou pour atteindre les 25 mm demandé.

dsc01331.jpg dsc01336.jpg dsc01338.jpg dsc01325.jpg

La soudure :

  • Avant de pouvoir souder il faut préparer le métal en décapant la zone utile.

Avec un décapeur thermique (ou un petit chalumeau à gaz) et un couteau à mastiquer. Puis on termine avec du papier abrasif.
On peut alors mettre les barres de la croix en place, avec le tube de 25 mm pour bien centrer le truc.
dsc01341.jpg dsc01342.jpg

  • Et hop on soude à l'arc…

dsc01343.jpg dsc01345.jpg

  • Ensuite on place le tube de vélo (en bleu) sur le tube de 25 mm (en vert) et on procède à la soudure…

dsc01346.jpg dsc01349.jpg dsc01350.jpg

Alors oui c'est moche, et j'ai dû meuler pour arranger ça et vérifier que les soudures avaient bien prises.
Encore beaucoup de difficultés à souder correctement, comme lors de ma toute première session de soudure sur la borne, et je suis arrivé à la fin du stock de baguettes de soudure.
C'est en me fournissant en baguettes neuves que je compris que je m'étais jusqu'alors grave fait suer pour des prunes -_-
Les anciennes collaient sans arrêt, rendant l'amorçage de l'arc difficile, et la soudure compliquée à maintenir suffisamment… Obligeant à reprendre sans cesse… Une horreur, que je mettais sur le compte de mon inexpérience.

  • Que du bonheur ces baguettes neuves (du 2 mm et du 4 mm) !!

Avec le bon réglage de l'intensité sur l'appareil, elles ne collent pas, on frotte et hop l'arc s'amorce et ça soude sans effort, reste alors à ne pas trembler, imprimer le bon geste avec un angle pas trop pourris, une descente progressive tout en n'allant pas trop vite… et pour la seconde croix on y arrive comme il se doit en un seul passage ^^
dsc01357.jpg dsc01359.jpg

La découpe :

  • Reste maintenant à découper les barres à dimension, ici 50 cm.

dsc01360.jpg dsc01361.jpg

  • Petite mise en situation avant la suite bientôt…

dsc01355.jpg dsc01356.jpg

À suivre…

Lundi, mai 16 2016

Un peu de vrac

Oulà, ça commençait à prendre la poussière par ici !
Heureusement, c’était de la poussière de travaux, pas de la poussière d’abandon </div>
            
            
                          <p class= aucun rétrolien

Jeudi, mai 5 2016

Glasses Challenge

Bonjour les gens !

Un collègue m'a soumis un challenge : réparer une paire de lunettes qu'il aimerait garder. Le problème est simple : les deux branches sont cassées et il n'a plus les bouts manquants. La solution est d'imprimer en 3D deux nouvelles branches de lunettes. Une seule réponse acceptable : Challenge accepted !

Alors visuellement, voilà ce que ça donne :

challenge

C'est la première fois que je designe une pièce si compliquée sous Sketchup, mais faut bien se surpasser un peu de temps en temps ;). Alors voici comment j'ai procédé. J'ai tout d'abord dessiné sur une feuille de papier la forme de la branche en vue de dessus et côté. J'ai numérisé la feuille, importé le tout sous Inkscape et reproduit la forme en vectoriel en vérifiant les quelques mesures des bouts restants. Et voilà le dessin.

branch

J'ai ensuite importé sous Sketchup et reproduit au plus juste la forme. A ce moment, j'aurais aimé importer les formes vectorielles. Je n'ai pas cherché mais ça aurait été une bonne idée de s'arrêter pour vérifier ce point. J'ai ensuite étiré les deux formes perpendiculairement comme cela.

etape1

Afin de créer la forme finale, j'ai utilisé l'option "intersection de faces". Et Bim ! Voilà la forme générale de la branche qui apparaît. Ensuite, je n'ai pas de recette miracle, j'ai corrigé le modèle, vérifié les dimensions et imprimé la première version. Malheureusement pour moi, il y avait de petites imperfections dans mon modèle qui au final bloquaient l'ouverture complète de la branche. J'ai fait une deuxième version, avec quelques corrections, et après montage tout est parfait (ou en tous cas, comme je le voulais).

branchef2 branchef2-2 impression test1 fini fini2 fini3

Les branches sont imprimées en PLA à 99% de remplissage avec des couches de 0,1mm sur une Ultimaker2. Alors oui, je n'ai pas arrondi les arrêtes de la branche et donc la finition est plutôt rustique. Par contre, sur la branche de test, j'ai passé du papier de ponçage de 500 puis de 1000 et le résultat est pas mal et les angles sont adoucis. La tenue sur la tête est très bien mais les branches glissent des tempes si l'on fait ses lacets pendant 10 min. J'ai pensé les recouvrir de gaine thermo-rétractable pour une meilleure accroche (à voir). Vu que mon collègue utilise ses lunettes pour faire de la voile, j'ai ajouté un trou en bout de branche pour mettre un élastique.

Je suis très heureux du résultat :) et mon collègue les verra lundi.

Bonne bidouille à tous !

Vendredi, avril 29 2016

A Droid of some kind !

Bonjour les gens !

Après mon premier essai de cadre 3D (pas besoin de chercher, il n'y a pas d'article dessus), je me suis décidé à augmenter le nombre de couches dans le cadre et d'ajouter un peu de couleur. Le processus de fabrication est assez simple mais un peu long. Déjà il faut trouver une composition qui soit belle (Ok ! Google image n'est pas étranger à cette étape.), ensuite sous Inkscape je prépare tous les éléments qui seront découpés dans du papier aquarelle. Une fois passé dans la machine magique, j'ai aquarellé tous les éléments, test à plat et enfin montage.

Le fichier est dispo ici et en image ça donne quelque chose comme ça

droide1 droide2 fond1 fond2 essai fini1 fini2 fini3

Je suis très content du résultat. Je trouve que ça vaut le coup de retenter l'expérience et d'ajouter de nouvelles techniques. On verra où cela me mènera. Vous pouvez laisser en commentaire un thème que vous aimeriez voir réaliser (même si le prochain est déjà en réalisation), et vu que mes murs ne sont pas extensibles, j'en donnerai sûrement un prochain :).

Bonne bidouille à tous !

Jeudi, avril 28 2016

Le bartop, la borne d'arcade pour demi-portions ! -03-

Suite de l'étude précédente :
Après l'assemblage de la borne et quelques essais, nous allons maintenant parler hardware !

Les fournitures arcade :

Cette fois j'ai changé de boutique de fourniture arcade.

  • Je voulais les boutons translucide de la marque Seimitsu et le site Chinois Arcade Spare Parts n'en vendant tout simplement pas, j'ai donc opté pour les Japonais d'Akishop.

Ne sachant que choisir parmi les couleurs disponibles, je les ai toutes prise en double…
Attention, sur les photos ce sont des sticks Seimitsu LS32 qui ne seront pas utilisés dans le bartop, mais pour un autre projet.
De toute manière le LS32 voit sa tige trop courte pour être utilisé sur un panel en bois, alors que le Sanwa JLF-TP-8Y que j'utilise ici est parfait pour traverser le contre-plaqué de 9 mm, avec sa tige de 32mm, ce qui laisse dépasser les 23 mm réglementaires :)
dsc01205.jpg dsc01212.jpg
dsc01229.jpg dsc01231.jpg
dsc01227.jpg dsc01247.jpg

dsc01244.jpg dsc01241.jpg dsc01242.jpg dsc01248.jpg
dsc01250.jpg dsc01252.jpg

Ordinateur :

Comme prévu, le PC de test est trop peu puissant pour mes jeux préférés (Pentiun4@2Ghz), mais bien suffisant pour jouer 80% des roms Mame (estimation au doigt mouillé compte tenu de mon expérience).

  • Afin de pouvoir faire tourner du Shmup CAVE, il faut une machine au moins aussi puissante qu'un Intel Core 2 Duo E7300@2,66Ghz

Mais le choix de l'ordinateur s'est révélé un poil délicat.
À la base donc je ciblais une machine aussi puissante qu'un Intel Core 2 Duo E7300@2,66Ghz et j'ai donc farfouillé sur les site de benchmark pour comparer avec les processeurs actuels…
benchmark.png
Et quand on réfléchis pas trop, on se dit que l'AMD A4-5000 bah y ferait bien l'affaire !
Mais en fait, et bah nan, c'est une daube, car le score CPU Mark est donné pour la totalité des cœurs, alors que Mame n'exploite correctement qu'un seul cœur à la fois, et ce malgré l'option multi thread activée, qui ne fait gagner que quelques maigres performances.
Donc ce qu'il faut regarder c'est le score de Single Thread Rating, et là on comprend bien qu'un unique cœur de l'AMD A4-5000 est deux fois moins puissant que ce bon vieux Intel Core 2 Duo E7300@2,66Ghz… Et merde, trop tard :)
J'avais donc déjà acheté la carte mère ASRock QC5000M-ITX/PH ^^;
dsc01260.jpg dsc01224.jpg
J'ai pas mal hésité à conserver ou renvoyer cet ordinateur mini-itx…

Et puis comme j'ai bien mesuré 12 Watt de consommation (à vide, Processeur + Chipset; 15 Watt promis), je me suis dit que bon, j'ai déjà une borne, celle-ci est donc une seconde, je ne vais pas y jouer tant que ça, et mis à part quelques jeux CAVE[1], tout le reste (jeux 3D mis à part) tourne bien, et qu'à terme cet ordi pourrait bien venir remplacer le serveur web sur lequel tu consultes cette page, et au passage permettre de dimunuer sa consommation électrique (30 W actuellement).
En effet le serveur Atom 330 était donné pour un tpd de 8 Watt, mais en vrai il consomme 22 Watt à vide, preuve que le Chipset Intel est gourmand… Choisir un PC basse consommation c'est donc un peu la roulette, et comme j'ai pu ici vérifier les caractéristiques par moi-même…

  • Pour alimenter ça, sachant qu'il n'y a pas la place pour loger une alimentation ATX standard dans le bartop, c'est un module PicoPSU 20 pins et un bloc secteur 12V qui alimente l'ordi.

Étant donné la très faible consommation du CPU, un PicoPSU de 90 Watts suffit amplement.

Il est clair, test à l’appui qu'un Intel Core i3 @3Ghz se révélerait suffisamment puissant pour faire tourner tous les jeux sans sourciller, mais ça coûte carrément plus cher, sans compter qu'il aurait fallut utiliser une alimentation de type Flex-ATX suffisamment puissante qui puisse être casée dans la borne.

Câblage :

  • J'ai dessiné et imprimé de nouvelles plaques de restriction pour les joystick Sanwa car après essais, il s'avère que la prise en main du stick est plus agréable ainsi.

dsc01291.jpg dsc01293.jpg dsc01295.jpg

  • Les circuits de joystick sont toujours du même modèle que je fabrique et utilise depuis que je bidouille ces machin là.

Ils sont maintenu en place avec des pinces à linge au fond du panel et les câbles sont soigneusement noués ensemble pour faire bloc avec le panel.
dsc01296.jpg dsc01297.jpg dsc01298.jpg

  • Deux ventilateurs de récup sont couplés ensemble via une petite bidouille de connectique.

dsc01262.jpg dsc01263.jpg dsc01264.jpg dsc01266.jpg

  • Comme pour la RotaCity, j'ai raccordé deux cordons secteur sur une façade IEC 220V avec interrupteur 16A récupérée sur un bloc d'alimentation industriel.

J'ai fixé une boite en plastique afin d'éviter tout risque de choc électrique avec ma personne.
Le bouton vert sert de bouton power à l'ordinateur. Il est donc raccordé avec deux fils au bornier correspondant de la carte-mère, et deux fils supplémentaire pour la Led power contenue dans ce bouton vert translucide.
dsc01243.jpg dsc01268.jpg
dsc01270.jpg dsc01271.jpg dsc01272.jpg dsc01267.jpg

  • Voici la carte mère en place, simplement vissée au fond de la borne, et quelques gros plans des chemins de câble.

dsc01301.jpg dsc01302.jpg
dsc01280.jpg dsc01281.jpg dsc01283.jpg dsc01284.jpg
dsc01300.jpg dsc01286.jpg

Test de déco… :

  • Je ne suis pas graphiste… Alors j'éprouve de grande difficultés à concevoir une déco originale et cohérente.

Après pas mal d'essais, je suis arrivé à ça, à partir d'image tirée de l'artbook Mushihimesama.
dsc01287.jpg dsc01288.jpg
J'ai encore du travail à fournir pour la déco du panel et du top qui sera illuminé.

Premiers essais : Problème de ventilateur :

  • J'ai eu beau régler au minimum de la vitesse le ventilateur de châssis, via le bios de la carte mère, ceux-ci (puisqu'ils sont câblés en parallèles), tournent encore trop vite et surtout en émettant beaucoup de bruit.

Test de température satisfaisant de la carte mère à l'appui (environ 43°C avec un jeu exploitant toutes les ressources machine), j'ai pu déterminer une vitesse assez faible sans trop de bruit. Pour atteindre cette vitesse, j'ai bien tenté de baisser l'intensité du 12V avec une résistance de 56 Ohm, mais évidemment, elle devient brûlante… Et puis on perd tout l'intérêt de ces ventilateurs à commande impulsionnelle PWM (pwm sur le fil bleu, jaune 12V et noir Masse).
C'est donc d'une PWM dont j'avais besoin…
dsc01306.jpg

  • C'est un peu sortir l'artillerie lourde pour pas grand chose, mais c'est si facile à faire avec un µContrôleur, où si on ne veut pas s'embêter, avec un Arduino.

Le schéma suivant et ce petit bout de code C++ suffit avec un Arduino Pro Mini qu'on trouve pour moins de 3€ sur le 'ternet !
VentiloPWM_bb.png

int inputPin = A0;  // set input pin for the potentiometer
int inputValue = 0; // potentiometer input variable
int fanPin = 9;     // set output pin for the LED

void setup() {
     // declare the ledPin as an OUTPUT:
     pinMode(fanPin, OUTPUT);
}

void loop() {
     // read the value from the potentiometer:
     inputValue = analogRead(inputPin);

     // send the square wave signal to the LED:
     analogWrite(fanPin, inputValue/4);
}

Je connecte donc les ventilateurs directement sur la prise mâle de ce montage (et non plus sur la carte mère) qui est alimenté par une prise molex ATX. Le potentiomètre qu'importe sa valeur, permettant alors de régler la vitesse de rotation à sa convenance.

Premiers essais : Un problème avec l'audio :

  • Pour alimenter l'amplificateur audio, j'ai choisis d'utiliser le 12 Volts de l'alimentation ATX. En effet ce serait dommage de se priver et d'utiliser une alimentation supplémentaire juste pour si peu.

J'ai donc soudé un adaptateur, en câblant le côté 12V d'une prise molex mâle sur une fiche jack.
Dés l'allumage de la machine, un gros bruit de fond se fait entendre. En étant attentif, on se rend compte que les variations dans ces pchhhhittttts suivent l'activité de l'ordinateur (le disque qui gratte, l'affichage, les ventilateurs, …).

  • Bref, l'alimentation ATX re-pisse dans l'ampli audio, un filtrage s'avère donc nécessaire.

On peut faire cela avec ce simple filtre LC, qui nécessite un condensateur d'au moins 100µF polarisé et une self, simple bobine doté d'une ferrite. Si nécessaire on peut améliorer le filtrage en ajoutant un second étage LC.
J'ai donc soudé le circuit sur une plaque à trous en avec ces composants et ces connecteurs de récupération.
filtrelc.jpg img_0203.jpg
Mais le résultat était insignifiant, au mieux le hum (oui on dit comme ça, ou ronflette aussi) s'entendait dans les tons plus grave.

  • En y regardant de plus près on s’aperçoit que nous sommes en présence d'un bouclage de masse :

Ce qui se passe, c'est que le 12V alimente l'ampli, et voit donc sa masse connectée à la masse ampli, normal.
Et puis on raccorde le cordon audio, qui comporte lui aussi sa masse, qui passe par la carte mère, qui passe par l'alim atx, et qui fournit donc le 12v de l'ampli… Ce second cheminement forme une boucle et produit le hum !
Il faudrait donc isoler la masse…
J'ai donc déconnecté la masse pour tester, soit celle du cordon audio, soit celle de l'ampli, mais je m'en doutais, le hum est pire !

dsc01307.jpg

  • Ensuite j'ai tenté d'alimenter l'ampli avec un régulateur 12V-5V (LM7508) que j'avais sous la main (oui l'ampli tolère une alim à 5V).

Cette fois c'est mieux, le hum est très amoindris, inaudible lorsque d'ampli (sans musique) est volume à fond, mais dés qu'on baisse au max, hum… plus ténu, mais présent.

dsc01308.jpg

  • Alors on m'a parlé des convertisseurs DC-DC isolés, et on m'en a prêté un, d'assez faible puissance, mais suffisant pour le cas présent, un TRACO Power TEM 3-1212 qui traînait dans un tiroir depuis 12 ans.

Une fois câblé entre la prise molex de l'alim ATX et l'ampli audio, on rentre donc le 12V et on ressort du… 12V, mais la masse est isolée, plus de hum, nada, queue dalle, volume au minimum ou au max, avec ou sans musique, aussi parfait que si j'avais dédiée un bloc alim à l'ampli !
Cependant cette solution, bien que satisfaisante peu se révéler assez onéreuse en plus d'être inadaptée pour des ampli de forte puissance.
En effet, difficile de trouver un convertisseur de ce type qui délivre plus de 800mA (environ 10W pour 12V), alors que mon ampli volume à fond (et volume du PC aussi) flirte avec le 1A.
Et puis ça coute au minimum 30€…

img_0244.jpg

  • Plutôt que d'isoler la masse de l'alimentation, s'occuper de l'audio serait peut-être moins coûteux, le monde de la sonorisation de spectacle semble bien au fait du probléme et utilise dans ce cas un transformateur d’isolation de ligne sur le câble audio.

Histoire de tester la faisabilité, j'ai dépouillé deux vieux modem 56K de leurs transfo audio 2811B.

Et j'ai câblé ceci :
img_0246.jpg img_0247.jpg

Ça fonctionne très bien, et l'avantage de cette solution, c'est qu'on a pas à se soucier de la puissance de l'ampli.
Après quelques recherches, j'ai trouvé un montage tout fait du même acabit, dans la rubrique Transformateurs d'isolation chez Monacor.
Un ground isolator du modèle FGA devrait faire l'affaire, le schéma de la datasheet correspond à ce que j'ai câblé précédemment…

Ressources :
- http://www.arduino-tutorials.com/arduino-pwm/

À suivre…

Note

[1] Mushihimesama, Futari1.5, Espgaluda2, Ibara, Mushimushi Pork, Pinksweats, Deathmiles, Dodonpachi Dai Fukatsu

Dimanche, avril 24 2016

Leather inception

Bonjour les gens!

J'ai décidé de faire une pochette en cuir pour ranger mes outils pour manipuler le cuir. Le design de la pochette est le même que ce que j'avais vu une fois sur un ouvrier : demi-cercle en dessous, un grand rabat et le tout fermé par un lacet. Voici le plan, le reste est la même chose que la dernière fois : découpe, couture et finitions.

Voici en images :

decoupe couture couturefinie couturefinie2 lacet avecoutils fini

La taille est plus petite que prévu à cause d'une erreur d'impression de ma part mais tout rentre dedans donc aucun souci. Le résultat me plaît beaucoup et au moins tout est bien rangé pour une fois ;).

Bonne bidouille à tous !

- page 2 de 89 -