Overgeek

“Over Geek”, c’est tellement geek que tu peux pas test.

Utiliser le port mini jack de votre Raspberry Pi 2

Pour utiliser le port mini jack du Raspberry Pi 2, il faut faire 2 choses.

La première :

amixer cset numid=3 1

Le chiffre 1 à la fin signifie que vous souhaitez utiliser le mini jack, 2 l’audio du HDMI.

sudo nano /usr/share/alsa/alsa.conf

Changez la ligne “pcm.front cards.pcm.front” par “pcm.front cards.pcm.default”.

Introduction au GPIO du Raspberry Pi 2

Il y a quelques semaines, j'ai craqué pour un starter Pack Raspberry Pi 2. N'ayant pas de serveur, je me suis dit que ce serait idéal pour programmer quelques tâches cron et bidouiller un peu.

En effet, en parlant de bidouille, mn starter pack comprenait un petit kit "Traffic Light", avec 3 led, un assortiment de câbles, résistances, et un bouton poussoir, tout ce qu'il faut pour se lancer dans les prémices de l'électronique.

Il y a déjà plusieurs articles (même en Français) qui évoquent l'utilisation des led sur Raspberry Pi, mais aucun a ma connaissance ne mettent en exergue la version 2, avec le système a 40 broches. Vous me direz "c'est la même chose". Oui et non. Le principe est le même, les algos sont similaires, mais quelques points changent.

Déjà, il y a une pléthore de système de numérotation des broches. J'en ai compté jusqu'à 3 pour la version 40 broches. Nous allons donc passer tou cela en revue, afin de vous évitez quelques fuites de neuronnes.

Le projet de démonstration que nous allons faire repose sur l'utilisation de 2 leds. Le but étant de les faire clignoter tour à tour. Le schéma pour un circuit de led est assez simple :

  • GPIO > Résistance > Led > Terre

Détaillons tout cela :

  • GPIO : le terme désigne une broche qui va transmettre du courant. On peut choisir si elle est en mode in ou out (entrée ou sortie) et si elle transmet ou non du courant (1 ou 0). Si elle est en out & à 1, le courant est envoyé.

  • Résistance : dans notre démonstration, nous allons utiliser une résistance de 75Ω. Elle va permettre de stabiliser la quantité de courant circulant sur le circuit, afin d'éviter la surchauffe de celui-ci.

  • Led : c'est elle qui va clignoter ;)

  • Terre : notre circuit va se terminer par une broche terre, nommé "ground" sur les schéma de broches.

En plus de cela, nous allons avoir besoin d'une breadboard (littéralement planche à pain) : il s'agit en réalité d'un prototype de circuit électronique. Si vous utilisez le même que moi, elle est connecté ainsi :

breadboard

Voici un schéma de la broche :

gpio-raspberry-pi-2

Tout d'abord, ce visuel est à imaginer en mettant votre Raspberry Pi 2 le port Ethernet en bas à gauche.

Comme vous pouvez le voir, il y a plusieurs numérotations. La première et la plus simple, une numérotation de 1 à 40, la numéro 40 étant en bas à droite. La seconde, la numérotation GPIO est celle qui est utilisée par défaut par wiringPi (nous allons en parler un peu plus tard) et qui indique que la pin 40 comporte la numérotation GPIO 29.

J'ai fait le choix de dupliquer le code source du projet en plusieurs langages, dans un premier temps nous allons utiliser un script bash afin de lancer des commandes qui pourraient être directement tapés dans le terminal, et dans un second temps en python, un "vrai" langage qui va permettre de réaliser n'importe quelle opération/projets par la suite.

Nous allons avoir besoin d'utiliser la librairie wiringPi, qui permet de changer simplement l'état de chaque pin.

Pour cela, nous allons mettre à jour apt-get :

sudo apt-get update
sudo apt-get upgrade

Récupérer le projet Git en question :

git clone git://git.drogon.net/wiringPi

Une fois téléchargé, il vous reste à compiler le tout :

cd wiringPi
./build

Une fois ceci effectué, vous pouvez lancer cette commande, qui vous donnera un état de chacune de vos pins.

gpio readall

Voici mon tableau :

 +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 |     |     |    3.3v |      |   |  1 || 2  |   |      | 5v      |     |     |
 |   2 |   8 |   SDA.1 |   IN | 1 |  3 || 4  |   |      | 5V      |     |     |
 |   3 |   9 |   SCL.1 |   IN | 1 |  5 || 6  |   |      | 0v      |     |     |
 |   4 |   7 | GPIO. 7 |   IN | 1 |  7 || 8  | 1 | ALT0 | TxD     | 15  | 14  |
 |     |     |      0v |      |   |  9 || 10 | 1 | ALT0 | RxD     | 16  | 15  |
 |  17 |   0 | GPIO. 0 |   IN | 0 | 11 || 12 | 0 | IN   | GPIO. 1 | 1   | 18  |
 |  27 |   2 | GPIO. 2 |   IN | 0 | 13 || 14 |   |      | 0v      |     |     |
 |  22 |   3 | GPIO. 3 |   IN | 0 | 15 || 16 | 0 | IN   | GPIO. 4 | 4   | 23  |
 |     |     |    3.3v |      |   | 17 || 18 | 0 | IN   | GPIO. 5 | 5   | 24  |
 |  10 |  12 |    MOSI | ALT0 | 0 | 19 || 20 |   |      | 0v      |     |     |
 |   9 |  13 |    MISO | ALT0 | 0 | 21 || 22 | 0 | IN   | GPIO. 6 | 6   | 25  |
 |  11 |  14 |    SCLK | ALT0 | 0 | 23 || 24 | 1 | ALT0 | CE0     | 10  | 8   |
 |     |     |      0v |      |   | 25 || 26 | 1 | ALT0 | CE1     | 11  | 7   |
 |   0 |  30 |   SDA.0 |   IN | 1 | 27 || 28 | 1 | IN   | SCL.0   | 31  | 1   |
 |   5 |  21 | GPIO.21 |   IN | 1 | 29 || 30 |   |      | 0v      |     |     |
 |   6 |  22 | GPIO.22 |  OUT | 0 | 31 || 32 | 0 | IN   | GPIO.26 | 26  | 12  |
 |  13 |  23 | GPIO.23 |  OUT | 1 | 33 || 34 |   |      | 0v      |     |     |
 |  19 |  24 | GPIO.24 |   IN | 0 | 35 || 36 | 0 | IN   | GPIO.27 | 27  | 16  |
 |  26 |  25 | GPIO.25 |   IN | 0 | 37 || 38 | 0 | IN   | GPIO.28 | 28  | 20  |
 |     |     |      0v |      |   | 39 || 40 | 0 | IN   | GPIO.29 | 29  | 21  |
 +-----+-----+---------+------+---+----++----+---+------+---------+-----+-----+
 | BCM | wPi |   Name  | Mode | V | Physical | V | Mode | Name    | wPi | BCM |
 +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+ 

Voyons ensemble les différents éléments du tableau :

  • Physical : numérotation des pin de 1 à 40 comme nous avons vu dans précédemment.

  • V : quand une pin est sur 1, un signal de 3.3v est envoyé

  • Mode : Si le courant sort ou entre (out ou in)

  • Name : le nom de la pin (0v étant les pin terre/ground)

  • wPi : numérotation utilisé dans les commandes gpio

  • BCM : une autre numérotation, qui date de la première version de Raspberry Pi

Si l'on regarde un peu le cicuit de notre projet, nous pouvons voir que les pin out correspondent aux GPIO 23 & 23, et au physical 31 & 33 :

schéma_bb

Ou en réel :

cicuit-led

Donc pour faire fonctionner notre script, nous allons ouvrir les pin GPIO 23 & 23 :

gpio mode 22 out
gpio mode 23 out

Si votre circuit est déjà fait, c'est très bien, sinon allez-y ! Pour allumer les deux led tapez les lignes suivante :

gpio write 23 1
gpio write 22 1

Ensuite nous allons créer un fichier led.sh pour écrire notre script bash :

sudo nano led.sh

Voici le script :

#!/bin/bash
 
while true
do
        gpio write 23 1
        gpio write 22 0
        sleep 0.2
        gpio write 23 0
        gpio write 22 1
        sleep 0.2
done

Il est lancé dans une boucle infinie, et positionne tour à tour une des deux led sur la position 1. gpio write 23 1 lance le courant.

Il se lance via la commande suivante :

sh led.sh

Le même script en python s'écrit ainsi :

import os
from time import sleep
 
import RPi.GPIO as GPIO
 
GPIO.setwarnings(False)
 
GPIO.setmode(GPIO.BOARD)
GPIO.setup(33, GPIO.OUT)
GPIO.output(33,True)
GPIO.setup(31, GPIO.OUT)
GPIO.output(31,True)
 
while True:
        GPIO.output(33,True)
        GPIO.output(31,False)
        sleep(0.2);
        GPIO.output(33,False)
        GPIO.output(31,True)
        sleep(0.2);

Il y a quelques différence avec le script bash :

  • La définition en "out" des pin est défini directement dans le script.

  • La numérotation utilisé n'est pas la même, il s'agit de la Physical. En utilisant la fonction GPIO.setmode(GPIO.BOARD), j'ai demandé au script d'utiliser la numérotation originale de la broche. Il n'est pas possible d'utiliser la numérotation GPIO, mais vous pouvez utiliser la numérotation BCM ce qui donne la 6 et la 13.

Ceci est donc une base, maintenant que vous savez utiliser les led, vous pouvez reliez l'allumage d'une led à un événement :

  • led qui clignote si vous avez des visiteurs sur votre site,

  • vous alerter de la réception d'un mail

  • etc…

J'espère que ce petit tutoriel vous a plu !

Comment supprimer les EXIF sous Mac OSX ?

Il y a plusieurs méthodes qui permettent de supprimer les EXIF sous Mac OSX.

Une méthode assez simple sans logiciel est d’utiliser une version online tel que http://www.verexif.com/en/, en chargeant le fichier puis en cliquant sur “Remove EXIF”.

Il y a cependant le logiciel gratuit ImageOptim permet de supprimer les EXIF de vos fichiers, en plus de réduire leurs tailles (généralement de près de 10%). Il suffit pour cela de faire un simple glisser-déposer de votre fichier vers le logiciel.

ImageOptim : ajouter des fichiers

Une fois l’opération d’affinement effectuée, vous pouvez vérifier que votre fichier est bien sans information EXIF en l’ouvrant dans l’application Aperçu.

Comment lire les information d’EXIF sous mac OSX ?

En ouvrant un fichier image dans aperçu, puis en allant dans “Outils” > “Afficher l’inspecteur (cmd+i)”. Depuis l’inspecteur, dans l’onglet “info”, vous disposez en fonction des appareils utilisés de sous-onglets EXIF, GPS, et TIFF.

En savoir plus

Vous pouvez ainsi de cette manière vérifier l’existence et/ou absence d’EXIF de vos fichiers.

Jailbreak iOS8 !

Pour jailbreaker votre appareil sous iOS8, vous pouvez utiliser Pangu 8, qui va jailbreaker votre téléphone et installer Cydia. Cette méthode est compatible iOS 8, 8.0.1, 8.0.2, 8.1 et 8.1.1.

Pour effectuer votre Jailbreak, vous devez dans un premier temps désactiver “Localiser mon iPhone“, et enlever le mot de passe de votre appareil.

Téléchargez Pangu !

Après avoir lancé votre application, vous devez cliquer sur “start jailbreak”.

pangu8-2

Après ceci, vous devriez avoir l’application Pangu et Cydia installé sur votre appareil.

Prise en main de la CDisplay

Ce matin, ma tablette Cdisplay est arrivée. Ayant commandé la mienne un peu après la vague, j’ai eu le droit à quelques semaines de retard sur ma livraison. 14 jours pour arriver. Un peu long, certes, mais Cdiscount n’avait manifestement pas prévu un tel engouement pour ce produit : les stocks prévus n’ont pas su faire face à la demande, ce qui explique cette attente… En lire plus…

Plus de pitié pour les opérateurs téléphonique

Depuis que la guerre des prix a éclatée, il y a de ça quelques années, les offres se font de plus en plus alléchantes. Les prix les plus incroyables étant pour les utilisateurs n’ayant pas besoin de forfait data (accès à internet), avec des prix difficilement plus proches du néant, rappelez-vous l’offre 2h d’appel + SMS/MMS illimités de Free pour 2€ !

Mais pour moi, gros consommateur de data devant l’éternel, bien qu’étant arrivé à diviser facilement mon forfait par 2, le tout illimité s’est toujours trouvé autour des 20€. Et je suis passé par Joe, B & You, Free, et SFR, pour tester toutes les options proposées par les différents opérateurs, trouver la perle rare. Mais la réalité c’est que je ne suis plus engagé, et je peux partir quand je veux, et flâner d’un opérateur à un autre, d’un mois sur l’autre.

Il y a quelques semaines, SFR a proposé son offre Appels SMS/MMS illimités + 2Go data pour 4€ pendant un an, toujours sans engagement. Comment refuser un forfait aussi intéressant, collant aussi bien à mes besoins et à un tarif aussi abordable ? Je veux bien faire l’impasse sur l’impossibilité de bloquer mon forfait pour ce prix là. Regardez d’ailleurs cette image, représentative de l’offre (et qui m’a bien fait rire au passage) :

red-sfr-facture-4

Comment faire pour être encore fidèle – à l’heure d’aujourd’hui – à un opérateur spécifique ?

Moi, je ne le suis pas.

Je veux bien comprendre que vous souhaitiez étaler sur 2 ans l’achat de votre smartphone, en le payant 2 ou 3 fois au passage, mais les propositions sont tellement alléchantes..

Allez, viens !

1 2 3 4  Remonter tout en haut