mercredi 21 mai 2014

Python, Twitter et GrovePi

J'ai récemment acquis une carte d'extension pour le raspberry pi appelée GrovePi, elle permet de brancher les extensions utilisant la connectique Grove sur le raspberry pi. Elle comporte également un microcontroleur identique à celui de l'arduino. Ce dernier communique avec le raspberry pi via le protocole i2c. On peut ainsi utiliser les instructions similaires à celles du langage c d'arduino dans un programme en python: pinMode, digitalRead, analogRead, etc.
Tout de suite une application inspirée du site de DexterIndustries utilisant les capacités du raspberry pi et des capteurs : envoyer un tweet automatique affichant la température à intervalles réguliers.
Il faut au préalable obtenir de twitter des codes d'authentification à entrer dans l'application:
Rendez vous sur le site https://apps.twitter.com/ et identifier vous avec votre compte twitter. Faites Create New App et renseignez les champs demandés. Vous verrez apparaître des codes : Api key et Api secret. Modifiez tout de suite la paramètre Access level en Read and write sinon vous ne pourrez pas poster de tweets. Il faut ensuite générer des access token pour votre appli, vous aurez notamment deux codes: Access token et Access token secret.
Il faut maintenant installer python-twitter, la procédure est décrite ici
Voici le code:

import twitter
import smbus
import time
import grovepi
import math

bus = smbus.SMBus(0)
address = 0x04

#identification twitter
api=twitter.Api(consumer_key='...',  #correspond à API key
                consumer_secret='...',       #correspond à API secret
                access_token_key='...',
                access_token_secret='...')

while(1):
    #A chaque heure on envoie un tweet
    if time.localtime().tm_min==0 and time.localtime().tm_sec==0:
        #Lecture de la température
        t = grovepi.temp(0)
       
        message="Salut, il est "+time.strftime("%H:%M.")+" La température est de %.2f°." %t

        #Envoi du tweet
        status=api.PostUpdate(message)

        #Message de confirmation
        print(message)
        
        #délai nécessaire pour que plusieurs tweets identiques ne soient pas envoyés
        time.sleep(1)


jeudi 8 mai 2014

Raspidrone

Une première version du projet de drone roulant à base de raspberry pi est finalisée. Les détails sont sur cette page web: http://raspidrone.weebly.com/



Atari STE + Raspberry Pi

J'ai réussi à recycler la coque de mon vieil Atari 520 STE de mon enfance grâce au raspberry pi et à l'arduino leonardo. Je voulais conserver le clavier d'origine et remplacer la carte mère par un raspberry pi. Bien sûr, il ne s'agit pas d'un clavier USB. Mais l'arduino leonardo peut se comporter comme un clavier USB, reste plus qu'à interpréter les signaux reçus du clavier par l'arduino qui va envoyer sur l'USB, le signal de la touche appuyée.
Plus facile à dire qu'à faire, c'est la raison pour laquelle je remercie grandement Kevin Peat, qui se trouve quelque part au Royaume-Uni je pense, d'avoir fait ce travail.
Le résultat est excellent et toutes les touches fonctionnent. Il y a toujours une nostalgie qui apparaît et un grand plaisir de revoir fonctionner l'ordinateur de mon enfance qui a plus de vingt ans.