bleugafoto

Des photos, et des restes. le blog de ecaheti.

[Jeux] Quake sur 3DS

Tuesday 3 May 2016 à 15:41

Oui, Quake sur 3DS. Ben quoi ? Allez, c’est pas comme si on découvrait les homebrews, surtout sur ce blog. Même si ça fait longtemps que j’en avais pas parlé.

Intro sur les homebrews

Petit point rapide sur les homebrews et la 3DS : si l’exécution de rom commerciale nécessite un linker (petite cartouche au format 3DS avec un port uSD dessus qui coute 80€), les homebrews nécessitent … rien de plus qu’une 3DS et sa carte SD. Evidemment, les mise à jour de la console bloque cette fonction régulièrement, et les gentils “white hacker” trouvent régulièrement de nouveaux contournement pour lancer des homebrews.

Le principe de base rappelle celui du hack de la Wii, à savoir

  1. On exploite une faille
  2. On installe des trucs sur la carte SD
  3. On lance un lanceur de homebrew, une sorte de “home” secondaire
  4. Profit

L’installation du homebrew launcher est très largement dépendant de votre version de 3DS, aussi, ne la mettez pas à jour avant d’avoir installer une première fois le truc. Si vous dépucelez la console, faut voir ici : Standalone Homebrew Launcher Exploits, sinon, faut voir par là : Secondary Exploits.

Honnêtement, c’est un peu plus tordu que sur Wii à la bonne époque, et j’ai un peu de mal à suivre les mise à jour de chaque “hack” et consort. Mais c’est pas grave car je ne joue qu’aux émulateurs SNES, NES, PS1 (non je déconne, 10 FPS ça me va pas) et à …

Quake

Voilà, le premier. Ca se télécharge ici : https://github.com/masterfeizz/ctrQuake/releases et ça se joue avec la version sharewar et complète, et il me semble même que les add on (on appelait comme ça les DLC, avant… bande de jeunes cons) fonctionnent. La page du projet sur github.

A quoi ça ressemble… ben, à la version pas GL pour le moment, c’est à dire que les textures, modèles 3D et compagnie sont tout plein de pixels, délicieusement rétro et tout à fait dans le style du jeu. Certains vous diront que c’est moche, d’autre que ça respecte leur souvenir d’enfance. Donc le jeu se trouve sur l’écran du haut, et en bas sur l’écran tactile vous aurez le droit à une zone tactile pour les l33t players qui joue au stylet, comprenant plusieurs boutons virtuels pour binder des actions, et vous pouvez swappez à tout moment vers un clavier, pour utiliser la console du jeu (celle qu’on ouvre avec ~ ou ²).

Ok, donc graphiquement, c’est comme avant. Et ça tourne très bien. Si la version DS ramait un peu, ici avec le nouveau hardware, ça tourne au poil, et c’est accompagné par les bruitages angoissant du jeu de base. Manque juste les musiques de Nine Inch Nail de l’original…

Bon, dernier point, essentiel pour les simulateurs de meurtres : la maniabilité. Est ce maniable ? Sploiler : oui.

Soit vous êtes un joueur console et aimez les choses simples, alors, vous pouvez configurer tout (c’est le cas par défaut je crois) pour jouer à la manette, et … ben c’est Quake avec une manette. Ca supporte le circle pad, mais ça reste imprécis. Ou bien vous êtes un aventurier de l’IHM et vous utilisez le stylet. Et là c’est tout bête, ça ridiculise tous les autres FPS DS et 3DS (sauf Metroid qui est très maniable), ainsi que tout les autres FPS sur console à mes yeux. Avec le stylet, vous êtes presque aussi précis qu’avec une souris. Je reconnais qu’il faut un certain temps d’adaptation et que la prise en main fatigue vite, mais dans l’ensemble c’est super jouissif. En fait, avec Doom, c’est le meilleur jeux de la 3DS. Bon, un des meilleurs en tout cas ! Ce qui est curieux, c’est de voir qu’un jeu comme ça, long, maniable, prenant, n’est pas d’équivalent commercial. J’avais déjà eu cette impression en jouant à la version DS, c’est vraiment étrange que cette console ne soit pas plus utilisé pour les FPS tant la précision apportée par le stylet permet de jouer à des trucs un peu speed.

Parlant de truc speed, il semble que cette version permette de jouer en multi avec un PC. Je serais curieux de voir un match (même si le joueur 3DS se prendra une rouste). Faudra un grand cross over de toutes les versions homebrews tout support confondu….

[RaspberryPi] Premières astrophotos !

Sunday 28 June 2015 à 0:04

Bon, vite fait, des photos prises avec un Raspberry Pi dans le télescope du grand-père. J’ai absolument pas joué sur les options pour prendre les photos, j’ai fait un bête et con “raspistill -o cam.jpg” et roule ma poule. Franchement c’est pas si mal !

La Lune - Oculaire x20

La Lune - Oculaire x20

Saturne - Oculaire x20

Saturne - Oculaire x20 - Crop 100%

Saturne - Oculaire x20 + doubleur
On se rapproche, mais c’est plein d’aberration de couleur et puis c’est flou.

Saturne - Oculaire x20 + doubleur - Crop 100%

Saturne - Oculaire x6

Saturne - Oculaire x6 - Crop 100%
Là, franchement, j’ai arrêté parce que je me suis dis que je ne ferais pas mieux.

[RaspberryPi] Premiers pas vers l’astrophoto …

Wednesday 24 June 2015 à 12:45

Il y a peu, j’ai récupéré un télescope. Pas de toute première jeunesse, il avait été offert à mon grand-père pour ses … pour son anniversaire d’il y a longtemps, vers la fin des années 80. Je n’étais à peine plus haut que trois pommes et deux beignets avec mes 6 ou 7 ans, mais j’avais été admiratif devant l’objet d’astronomie.

Plus de 25 ans plus tard, suite au départ de ma grand-mère partie rejoindre son amour disparu 20 ans avant (mon grand-père, donc), j’ai mis la main un peu par hasard sur le télescope lors du partage des affaires de mes aïeux.

  • Premier constat : il est vieux.
  • Deuxième constat : j’y connais QUE DALLE en astronomie. Bien que l’espace m’intéresse, je connais que pouic aux télescopes, leur fonctionnement, leurs vocabulaires, et ce qu’on peut en faire.

C’est un Merak fait par Perl, avec un diamètre de 115mm et une distance focale de 900mm, avec un oculaire de 6mm et un de 20mm et un doubleur de focal. D’après ce que j’ai compris, pour commencer, c’est déjà pas mal. Je vous passe la partie mise en place : lecture d’une doc avec une superbe photo bichrome du télescope, bienvenue dans le passé, alignement du chercheur avec l’axe du télescope, et utilisation des deux oculaires.

Voilà, c’est en place, et je fais mes réglages sur la flèche de la cathédrale de Rouen (la plus haute de France à 151m, pour l’anecdote), que j’immortalise avec mon appareil photo un peu à l’arrache, à l’aide du 20mm Panasonic qui a le bon goût d’avoir une lentille frontal pas trop grosse et donc de s’aligner facilement avec l’oculaire du télescope.

Bon, venons en à la partie “geek” du bouzin : l’avantage de faire des réalisations régulières avec un Raspberry Pi, c’est qu’il arrive un moment où on se rend compte qu’on a du stock en rab à la maison. Je récupère donc :

  • l’ancien R-Pi de mon robot, un B+
  • une Camera Pi
  • un dongle Wi-Fi USB
  • la batterie externe de mon robot (que j’ai du aller rechercher dans le sac de maternité de madame, heureux évènement devant arrivé dans les semaines prochaines, promis chérie je le remets chargé dès que j’ai fini)
  • un bout de carton
  • du petit scotch d’électricien

Coût total neuf, surement moins de 100 euros, coût en récup’ : 0€.

L’idée est donc de mettre la caméra devant l’oculaire à la place de mon oeil, et de faire des photos. Evidement, tout cela se fait de jour, parce que c’est plus facile ! Pour faire des photos, j’utilise bêtement la commande raspistill via ssh. Mais il est nettement plus facile de régler l’alignement optique avec une visu en temps réel de la camera.

J’ai donc utilisé MJPG-streamer, qui permet de balancer des captures avec un format préréglé à l’avance via le réseau, soit sur une page web, soit sur VLC. Pour se faire, j’ai suivi le tuto disponible sur le merveilleux site http://www.instructables.com. Attention cependant, pour pouvoir utiliser la Camera Pi avec MJPG-streamer, il faut au préalable charger le module de compatibilité V4L2 dans le R-Pi :

sudo modprobe bcm2835-v4l2

Egalement, à l’étape 3 du tuto on vous demande de téléchopper via svn la dernière version du soft, mais l’adresse est obsolète. Il faut donc récupérer le soft via :

svn checkout svn://svn.code.sf.net/p/mjpg-streamer/code/ mjpg-streamer-code

Une fois que c’est fait, vous pouvez nuancer la fin du tuto d’instructables.com avec quelques options (format de l’image, port de streaming, etc) via la doc faite à l’arrache par le dev de Mjpg-streamer sur son blog.

Vous finissez donc avec un télescope qui prend des photos, et qui peut même faire du streaming sur l’internet mondial (rep à ça Philae et Hubble !).



Alors vous me direz “mais elle est flou ton image !”. Oui, en effet, j’ai une impression de netteté bien supérieur en vidéo ou en visu direct dans l’oculaire. Deux explications :

  1. J’ai peut être mal réglé la partie optique
  2. J’ai l’impression que cela pourrait être du à des turbulences entre les couches d’air chaud et froid traversées par les rayons arrivant au télescope.

Mais cela dit, dans la notice c’est écrit que ce n’est pas un instrument d’observation terrestre, et je pense que face à un astre le problème devrait être moindre.

Il reste également d’autre point à régler, comme la latence du streaming. Il existe il me semble des solutions bien mieux adapté pour visualiser ce que voit la caméra en alternative à MJPG-streamer, où la réactivité est meilleur. Dernier point, si le mode automatique de raspistill se débrouille pas trop mal de jour, il faudra probablement mieux paramétrer la prise de vue lors de photo de nuit. Ensuite peut-être viendra le temps de l’utilisation de technique plus avancer comme l’empilement d’image pour l’observation plus profonde, ou bien l’utilisation d’une camera sans filtre infra-rouge.

Bref, to be continued comme on dit au pays de la NSA.

Résumé du projet :

  • Récupérer certaines infos sur Internet
  • Récupérer des infos locales
  • Créer une image avec ses infos
  • Afficher l’image

Vous vous souvenez du thermostat pour mon radiateur électrique ? Bien. Ce Raspberry Pi avait donc 2 rôles : faire des acquisitions de températures pour les envoyer à un serveur qui log ces données pour la postérité et, en fonction d’un fichier de consigne, piloter un radiateur pour choisir quelle commande de chauffage il doit utiliser, en fonction de la température ambiante et de l’heure (chauffer pendant la journée en semaine, c’est pas cool avec Dame Nature).
Bref, c’est un Raspberry Pi qui se tourne un peu les pouces. Et c’est là qu’intervient le recyclage d’un écran Adafruit (2.8′, tactile, avec des boutons en dessous, non utilisé dans mon cas … pour le moment) qui dormait dans une boite parce que je n’avais pas pu l’utiliser sur mon robot comme prévu.

Un boitier adapté (Adafruit également) et un peu de code plus tard, voilà tout plein d’info pertinente afficher sur l’écran !

On y voit donc :

  • La date
  • L’heure
  • La température interne
  • L’état de la commande de chauffage
  • La température extérieure, le taux d’humidité relative, la vitesse du vent, et la date d’acquisition de ses trois infos.

Cette dernière ligne est en fait issue d’un site qui recense plein de donnée météo, le National Oceanic and Atmospheric Administration. Il existe sous Debian l’outil weather-util permettant de récupérer ces infos en utilisant le nom de la station météo, son code d’immatriculation, ou bien des coordonnées dans votre petit terminal. Vous trouverez des détails sur son utilisation ici. Cela dit, je me suis rendu compte qu’en tapant http://weather.noaa.gov/pub/data/observations/metar/decoded/XXXX.TXT dans votre navigateur internet on peut récupérer les mêmes infos, il suffit de remplacer XXXX par le code de la station, trouvable via le site weather.nooa.gov. Avec un simple wget on récupère un TXT, il ne reste plus qu’à le traiter.

Concernant le traitement des données, j’ai fait un bout de code en C qui récupère le .TXT, le décode pour récupérer les données (température/humidité/vent/horodatage), récupère les infos de la sonde locale (réutilisation du code du thermostat), et on passe tous ces paramètres dans la commande « convert » venant du package debian « imagemagick » qui va afficher tout plein de texte sur un fond noir (Détails ici).

Pour utiliser l’écran, il faut avoir installé les petits package prévu par Adafruit (le tuto ici) et lancer la commande permettant d’envoyer l’image. Avec un cron toutes les minutes, ça permet d’afficher un résumé météo rapide.

Et voilà le travail ! Il faudrait encore modifié la plaquette d’essai histoire de rendre ça encore plus joli. Voir même afficher sur l’image de fond un graph de la température, changer l’afficher avec les boutons, ou que sais-je encore !

On avait donc parlé ici, puis par ici de comment on fait un robot (vite fait, hein).

J’ai fini par arrivé à un résultat convaincant, que je vous présente via une petite vidéo. C’est de l’accélérer x3 car il faut le reconnaitre, si les moteurs pas à pas me fournisse une grande précision, c’est quand même pas avec ça que je vais battre Schumacher… quoi que on me dit dans l’oreillette que sur une piste de ski c’est jouable.

Bref, voilà la vidéo, et si vous activez les sous-titres vous aurez quelques explications supplémentaire.

YouTube Preview Image

Il reste bien évidemment des ajustements à faire. J’ai notamment acheté des moteurs CC et le drive qui va derrière pour améliorer la vitesse du robot. Comme j’avais déjà 2 moteurs pas à pas 5V, ainsi que 2 moteurs 12V (ceux de la vidéos), je vais pouvoir motorisé la caméra également. Et/ou faire une tourelle avec un laser-destruktor-de-la-mor, mais j’ai un soucis de batterie à gérer pour ça.