Lancement du Raspberry Pi Zero W : wifi et bluetooth intégrés

La fondation Raspberry a lancé fin février, 5 ans après la sortie du premier modèle Pi, une version « wireless » du Pi Zero. Il se nomme Zero W, avec vous l’avez deviné, W qui signifie Wireless. En effet, cette nouvelle mouture embarque la connectivité wifi et bluetooth nativement. La puissance reste la même que sa version précédente. Le tout pour £9 seulement.

Principales caractéristiques

  • 802.11 b/g/n wireless LAN
  • Bluetooth 4.1
  • Bluetooth Low Energy (BLE)
  • 1GHz, CPU simple coeur
  • 512MB RAM
  • Mini HDMI et USB On-The-Go ports
  • alimentation par Micro USB
  • HAT-compatible 40-pin header
  • Composite video
  • connecteur caméra CSI

Avec ceci, de nouveaux boitiers officiels sont également disponibles. Ils offrent différentes ouvertures sur le couvercle selon l’utilisation que vous désirez faire de votre nano ordinateur.

Ce nouveau modèle promet donc de facilité encore un peu plus la mise en oeuvre de projets IoT ou domotique. Le tout encore une fois pour un coup très maitrisé.

En bonus, voici un comparatif de la consommation électrique de chaque modèle de la famille Raspberry (tests réalisés par RaspiTV) :

 

Vous avez aimé ? Partagez 🙂

Construire son robot à base de Raspberry Pi – étape 2 : les moteurs

Etape 1 : construire le châssis
Etape 2 : les moteurs

On l’a vu dans un premier article, construire le châssis du robot est une chose aisée. Voyons maintenant comment faire fonctionner les quatre moteurs. Deux solutions s’offrent à nous.

Faire fonctionner les moteurs

La première, c’est l’utilisation des ports GPIO sans carte de contrôle de moteurs. On branche directement les moteurs sur les ports. Ça fonctionne mais ça limite l’utilisation qu’on peut faire de notre robot. C’est parfait pour faire quelques tests et se faire la main avec le code. On peut en effet facilement démarrer soit en bash soit en python avec la librairie RPi.GPIO.

raspberry-pi-zero-gpio

Si vous avez déjà lu un article sur comment allumer une LED avec votre Raspberry, c’est exactement la même chose. Le problème est que tel quel, vous ne pourrez pas gérer le sens de rotation des moteurs électriques. En effet, les moteurs classiques DC (à courant continu) peuvent fonctionner dans les deux sens de rotation. Il n’ont pourtant que deux fils pour la plupart. Il font donc ajouter en plus du branchement au ports GPIO, un montage électronique pour pouvoir gérer le sens de rotation. Sans ça, votre robot n’ira qu’en marche avant …

Principe de fonctionnement d’un moteur à courant continu :

moteur-courant-continu

Sur ce type de moteur, en inversant les polarités, on inverse également le sens de rotation. Facile 🙂

ZeroBorg : la carte de contrôle tout en un

zeroborg-piborgLa seconde option est d’utiliser une carte de contrôle. Vous en trouverez à tous les prix mais mon choix s’est porté sur le ZeroBorg de PiBorg. Le modèle KS1 pour être précis. Pour à peine plus de 20 euros, il vous permet de contrôler jusqu’à 4 moteurs DC ou 2 moteurs pas à pas. Ca tombe bien, j’ai quatre moteurs à faire fonctionner. Le grand plus, c’est une librairie python avec plusieurs scripts d’exemples qui sont disponibles. Vous les trouverez à cette adresse : https://github.com/piborg/zeroborg

La voici branchée sur mon robot :

robot-complet-dessus

Nous allons maintenant voir comment procéder, depuis l’activation du bus I2C aux premiers tours de roues 🙂

Tout d’abord, il faut savoir que la ZeroBorg utilise le Bus I2C des ports GPIO. Il faut donc l’activer si ce n’est pas déjà fait (par défaut c’est désactivé). Pour faire la manipulation, taper dans un terminal les commandes suivantes (on commence par avoir un système à jour) :

sudo apt-get update
sudo apt-get upgrade

Accessoirement, installer les outils de contrôle de fonctionnement I2C :

sudo apt-get install python-smbus
sudo apt-get install i2c-tools

Maintenant, on peut passer à l’activation du bus :

sudo raspi-config

Vous arrivez sur la fameuse fenêtre bleue :

raspi-config-advanced_options

A l’aide des flèches, descendez jusqu’à l’option 8 « Advanced Options » et appuyez sur entrée.

La fenêtre des options avancées s’ouvre, sélectionnez « A7 I2C » :

raspi-config-i2c

On vous demande alors si vous souhaitez activez I2C. On répond « yes » !

raspi-config-enable_i2c

On vous demande ensuite si le module doit être chargé lors du boot. Encore une fois on répond « yes ».

raspi-config-load_i2c_module_at_boot

Vous revenez ensuite au menu principal, utiliser la touche tabulation pour quitter. Vous devez maintenant rebooter pour que les changements soit pris en compte. On maintenant prêt à installer et utiliser notre ZeroBorg.

Branchements électriques de la carte

Le branchement au Raspberry est facile. Soit on utilise 6 câbles femelle/femelle soit on soude via les PINS le ZeroBorg sous le Raspberry. Personnellement, j’ai choisi le câblage. Voilà notre carte branchée au ports du bus I2C.

zeroborg-branchement

Il reste à l’alimenter. On peut y faire passer entre 2,7 et 10,8 volts. C’est parfait. On va utiliser la sortie 3,3 volts GPIO (broche 17, voir schéma tout en haut de page).

Broche 17 : 3,3 volts
Broche 20 : GND (masse)

zeroborg-alimentation

Nous voilà désormais complètement câblé … non, il reste les moteurs ! Prenez votre petit tournevis plat, il y en a pour 1 minute.

Il suffit de suivre l’exemple de la photo ci-dessous :

zeroborg-cablage-moteurs

Ce coup ci on est prêt. Nous pouvons passer au code 🙂

Comme expliqué en début d’article, le ZeroBorg a une libraire Python créée spécialement pour. Cela facilite grandement la prise en main puisqu’on faire tourner un moteur en quelques lignes de code et en moins de 5 minutes.

Pour ce faire, enchainez les commandes suivantes dans votre terminal :

sudo mkdir /zeroborg
cd /zeroborg
sudo wget http://www.piborg.org/downloads/zeroborg/examples.zip
sudo unzip examples.zip
sudo chmod +x install.sh
./install.sh

Passons au code, en créant un script de test :

sudo nano test.py

Copiez / coller ensuite ce code :

import ZeroBorg
import time
ZB = ZeroBorg.ZeroBorg()
ZB.Init()
ZB.SetMotor1(0.5)
time.sleep(4)
ZB.SetMotor1(0)
exit()

Le code ci-dessus fait fonctionner le moteur 1 à 50% de sa vitesse maximale pendant 4 secondes avant de se couper. Vous l’aurez compris, en ajoutant ZB.SetMotor2(1), le second moteur tournera à 100%.

Une valeur négative le fera tourner en sens inverse. Par exemple pour faire tourner les moteurs 1 et 2 en sens inverse, le code sera :

import ZeroBorg
import time
ZB = ZeroBorg.ZeroBorg()
ZB.Init()
ZB.SetMotor1(-1)    # rotation inverse moteur 1
ZB.SetMotor2(-1)    # rotation inverse moteur 2
time.sleep(4)
ZB.SetMotor1(0)     # arret moteur 1
ZB.SetMotor2(0)     # arret moteur 2
exit()

Facile non ? et bien voilà, nous savons faire tourner nos moteurs en quelques lignes de code. A vous de jouer maintenant 🙂 Utilisez les quatre moteurs, marche avant, marche arrière.

Toutes les fonctions disponibles sont expliquées ici : https://www.piborg.org/zeroborg/examples#api

Pour stopper l’ensemble des moteurs en une ligne :

ZB.MotorsOff()

Pour tourner à droite ou à gauche, il suffit de faire fonctionner les deux moteurs d’un même côté. Par exemple, pour tourner à droite, on fera tourner uniquement les deux moteurs situés sur la droite. Inversement pour tourner à gauche.

Dans le prochain article, nous verrons comment contrôler notre robot avec les flèches du clavier et nous ajouterons des leds et un klaxon.

 

 

 

 

 

Vous avez aimé ? Partagez 🙂

Construire son robot à base de Raspberry Pi – étape 1

Etape 1 : construire le châssis
Etape 2 : les moteurs

Depuis quelques temps, je suis pris de passion pour 2 choses : le Raspberry Pi et la robotique. Après plusieurs projets Raspberry basés sur la programmation, j’ai voulu expérimenter le côté plus hardware. Ça tombe bien, la robotique est un mélange de code et de matériel. Le Pi se prête parfaitement à ce sujet.

J’ai donc réfléchi à ce que je voulais faire. Vouloir fabriquer un robot complètement autonome qui me ferait mon petit déjeuner est utopique car trop complexe. Fabriquer un petit véhicule motorisé, piloté par un Pi Zero, et sur lequel je pourrais ajouter divers éléments (gestion des obstacles, caméra, etc..) au fur et à mesure m’a semblé être une bonne idée. Lire la suite de « Construire son robot à base de Raspberry Pi – étape 1 »

Vous avez aimé ? Partagez 🙂

Envoyer un SMS avec votre Raspberry

Cet article vous présente comment envoyer un SMS sur un téléphone mobile avec un script Python. Personnellement, j’exploite le fantastique Raspberry mais vous pouvez utiliser ce script sur n’importe quel système.

Comment ça marche ?

Pour envoyer un SMS (Short Message Service), nous allons créer un script d’une dizaine de lignes de codes. Pour avoir si peu de code, vous vous doutez bien que nous allons utiliser une API. Il faut donc pour commencer, vous créer un compte gratuit sur le site Twilio : https://www.twilio.com

Le service est gratuit, avec un envoi de SMS quasi illimité, si vous n’enregistrer qu’un seul numéro de destinataire. Ce qui est largement suffisant pour faire du monitoring par exemple.

Une fois cotre compte créé, vous arrivez sur votre dashboard :

dashboard-twilio

Vous pouvez alors voir 2 informations importantes que nous allons réutiliser dans le script : account SID et auth token.

Account SID est votre identifiant Twilio tandis que auth token est votre clé d’utilisation de l’API.

Il faut maintenant créer un numéro de téléphone Twilio. Ce numéro est celui qui sert à envoyer les SMS et donc celui qui s’affiche lorsque vous recevez le message.

Rendez-vous sur l’onglet Phone Numbers > manage : https://www.twilio.com/user/account/phone-numbers/incoming

Choisissez bien un numéro qui peut servir à envoyer des SMS (certains ne peuvent servir qu’aux appels vocaux).

Notez ce numéro de téléphone (avec la notation internationale +33xxxx).

manage-numbers-twilio

 

Le script Python

Nous allons maintenant créer une script permettant d’exploiter l’API. Si vous n’avez pas encore installer la librairie, voici comment procéder :

sudo apt-get install python-dev

Si vous utiliser la distribution Raspbian, Python est normalement déjà installé.
Tapez maintenant :

sudo nano sendSMS.py

L’éditeur Nano s’ouvre, copier / coller les lignes suivantes :

# SCRIPT D'ENVOI DE SMS // API TWILIO
 import sys 
from twilio.rest import TwilioRestClient 

# configuration login 
account_sid = "xxxxxxxxx" 
auth_token = "xxxxxxxxx" 
client = TwilioRestClient(account_sid, auth_token) 

# Message a envoyer 
#message = "COUCOU C'EST LE RASPBERRY :)" 
#message = raw_input("Entrez votre message : ") 
message = (sys.argv[1]) 
message = client.messages.create(to="+33xxxxxx",from_="+33xxxxx", body=message) 
print message.sid 
print (sys.argv[1]) 
print (sys.argv[0]) 
print "API Twilio" print "OK!"

Veillez à bien compléter les informations suivantes :

account_sid : remplacer les « xxxx » par votre identifiant Twilio
auth_token : remplacer les « xxxx » par votre token Twilio

Deux numéros de téléphones sont nécessaire :
to = : remplacer par le numéro de téléphone qui reçoit les SMS (celui avec lequel vous avez créé votre compte Twilio)
from_ : le numéro de téléphone qui envoie les SMS. C’est celui que vous avez créé dans Twilio pour l’envoi de SMS.

Notez que j’ai mis 3 méthodes pour le contenu texte du message (2 sont mises en commentaire à l’aide d’un #)

1 – la méthode « en dur ». Le texte ne change pas, c’est toujours le même envoyé à chaque message message = « votre message ». C’est en dur directement dans le script.

2 – interaction durant l’exécution du script. Une fois le script Python exécuté, vous être invité à entrer le message a envoyé.

message = raw_input("Entrez votre message : ")

3 – ma méthode préférée, l’argument lors de l’appel du script :

message = (sys.argv[1])

Pour l’utiliser, on ajout le texte terrière l’appel du script, par exemple :

sudo python sendSMS.py "le message a envoyer"

Voilà, vous pouvez maintenant utiliser votre Raspberry pour envoyer des SMS. Que ce soit pour le monitoring, de la domotique ou tout autre chose, c’est bien pratique et gratuit.

 
Vous avez aimé ? Partagez 🙂

Quelques projets intéressants avec un Raspberry Pi Zero

Le micro ordinateur dévoilé en début d’année par la fondation Raspberry est étonnant. Des dimensions record pour une puissance et un tarif plus que raisonnable.

raspberry-caracteristiques-ok

• processeur Broadcom BCM2835 avec 1GHz ARM11 core (40% plus rapide que le premier Raspberry Pi)
• 512Mo LPDDR2 SDRAM
• un slot pour carte micro-SD
• un port mini-HDMI (1080p60 video output)
• 2 ports Micro-USB pour l’alimentation et la data
• 40-pin GPIO (identiques aux modèles A+/B+/2/3)
• 1 sortie composite video (pin)
• dimensions : 65mm x 30mm x 5mm

Il tourne sous Raspbian et coute aux alentours de 5 dollars. Voici une sélection de projets réalisés avec cette fabuleuse petite machine.

Programmer son Pi Zero via USB depuis un autre ordinateur

pi-zero-usb

Andrew Mulholland vous propose une solution pour transformer votre Pi Zero en appareil USB. Il suffit ensuite de le brancher à une autre machine (PC, Mac, Linux, etc..) et vous pouvez le contrôler ou le programme. Simple, efficace et très pratique.
Lien : http://pi.gbaman.info/?p=699

Alimenter le Pi Zero avec deux piles AA

pi-zero-piles

ModMyPi propose un tutoriel très complet pour utiliser votre nano ordinateur avec simplement deux piles électriques type AA. Le mod est relativement simple et peu couteux. C’est idéal pour l’intégration dans un projet embarqué par exemple.
Lien : https://www.modmypi.com/blog/running-a-raspberry-pi-zero-from-an-aa-battery-pack

RetroPie : émulations des anciennes consoles de jeux

Retropie

Avec RetroPie, vous avez un système complet avec plus de 50 machines et consoles émulées. Vous pouvez ainsi créer votre borne d’arcade. Ajoutez des manettes type Nes ou Megadrive en USB voir pourquoi pas un stick d’arcade et le retour dans le passé est réussi. Il s’agit en fait d’une distribution modifiée. Vous mettez votre carte SD et au lancement, RetroPie est déjà prêt à fonctionner.
Lien : https://retropie.org.uk

Pi0Drone : un drone complet pour moins de 200€

pi-zero-drone

Ce projet vous permet de fabriquer grâce à un kit un drone que vous dirigez avec un controleur RC traditionnel ou via Wifi.
Lien : https://www.hackster.io/12590/pi0drone-a-200-smart-drone-with-the-pi-zero-4fec08

Streaming Audio

audio-streamer-pi-zero

Créez votre propre Streamer audio en ajoutant simplement le module PlainDAC I2S (environ 12 euros). Flashez votre carte SD avec une distribution orientée musique comme RaspyFi ou Pi MusicBox et le tour est joué.
Lien : https://polyvection.com/guides/raspberry-pi-zero-minimal-streamer/

 

Vous avez aimé ? Partagez 🙂