Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
aéroglisseur commandé
#1
Il semble que je sois le premier à présenter un projet Smile Je gagne quelque chose? Rolleyes

Alors voila.
Nous sommes en train de faire un aéroglisseur télécommandé.
Le jeu, c'est de commander ça par le raspberry va la wiimote.
J'ai donc commencé par installer la Raspbian “wheezy”. J'ai eu quelques soucis, de type clavier usb hs et autre, mais bon, l'un dans l'autre j'ai réussi à avoir un clavier fonctionnel, mais en qwerty!
Une fois validé que cela fonctionne, j'ai repassé ma carte sd sur mon pc sous linux, mounter la partition root, et j'ai configuré l'accès réseau (wifi) et un ssh (en fait j'ai configuré quasiment tout ce que je pouvais de cette façon)
Je redémarre, et je me connecte en ssh à présent sur le raspberry. Tout le reste, je le fais en ssh.
J'installe ensuite les paquet bluetooth, ce qu'il me manque pour i2c, et le paquet python-cwiid . Il me restait un 'vieux' dongle usb bluetooth. Je le branche et au premier essai, paf, ça marche!
C'est magique!
Pour tester la wiimote, j'ai utilisé un script python de démo, que j'ai remanié un peu:
Code :
#!/usr/bin/env python
#-------------------------------------------------------------------------------
# Name:        Wii Remote - connect to Bluetooth cwiid
# Purpose:
#
# Author:      Brian Hensley
#
# Created:     21/07/2012
# Copyright:   (c) Brian 2012
#-------------------------------------------------------------------------------
# modified: R. Suinot 01/07/2013
#-------------------------------------------------------------------------------
# Code touches:
#       - 1 : bouton 2
#       - 2 : bouton 1
#       - 4 : bouton B
#       - 8 : bouton A
#       - 16   : bouton -
#       - 128  : home
#       - 256  : a gauche
#       - 512  : a droite
#       - 1024 : en bas
#       - 2048 : en haut
#       - 4096 : bouton +
# code led: sur 4 bits de poid faible (non testé)
#-------------------------------------------------------------------------------

import cwiid
import time


def main():

        print 'Press button 1 + 2 on your Wii Remote...'
        time.sleep(1)

        wm=cwiid.Wiimote()
        print 'Wii Remote connected...'
        print '\nPress the HOME button to disconnect the Wii and end the application'
        time.sleep(1)

        Rumble = False
        # on demande a recuperer les donnees de type bouton et accelerometre
        wm.rpt_mode = cwiid.RPT_BTN | cwiid.RPT_ACC
        # wm.rpt_mode = cwiid.RPT_BTN
        wm.led = 0
        position = 50
        print 'starting position: ', position

        while True:
            if wm.state['buttons'] == 1:
                print 'Bouton 2 '
                wm.led = 1
                time.sleep(.5)
            elif wm.state['buttons'] == 2:
                wm.led = 2
                print 'Bouton 1 '
                time.sleep(.5)
            elif wm.state['buttons'] == 4:
                wm.led = 4
                print 'Bouton B '
                time.sleep(.5)
            elif wm.state['buttons'] == 8:
                wm.led = 8
                print 'Bouton A '
                time.sleep(.5)
            elif wm.state['buttons'] == 16:
                wm.led = 15
                print 'Bouton - '
                time.sleep(.5)
            elif wm.state['buttons'] == 256:
                print 'bouton gauche \n'
                wm.led = 3
                time.sleep(.5)
            elif wm.state['buttons'] == 512:
                print 'bouton droite \n'
                wm.led = 5
                time.sleep(.5)
            elif wm.state['buttons'] == 1024:
                print 'bouton bas  \n'
                wm.led = 6
                time.sleep(.5)
            elif wm.state['buttons'] == 2048:
                print 'bouton haut  \n'
                wm.led = 7
                time.sleep(.5)
            elif wm.state['buttons'] == 4096:
                print 'bouton code + \n'
                wm.led = 9
                time.sleep(.5)
            elif wm.state['buttons'] == 128:
                print 'closing Bluetooth connection. Good Bye!'
                time.sleep(1)
                exit(wm)
            elif wm.state['buttons'] == cwiid.MESG_ACC:
                print 'code telecommande: ',wm.state['buttons'],'.\n'
                time.sleep(.5)

if __name__ == '__main__':
    main()
Par contre, j'ai un soucis avec mon dongle bluetooth, qui ne veut pas connecter la wiimote si je démarre le RPi alors qu'il est connecté. Il faut que je démarre soit le dongle déconnecté, soit que je l'enlève et que je le replace. Je ne sais pas encore pourquoi.

J'ai trouvé pour la gestion des servo, un module sur cette adresse: lectronics.chroma.se
(Bon contact avec le vendreur, et en plus, l'enveloppe avait de magnifiques timbes!)

Pour le reste, je vous ferais part de la suite si vous le voulez.
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.
- Albert Einstein
Répondre


Messages dans ce sujet

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)

A propos de Communauté francophone RPi

Communauté francophone RPi est un forum d'aide et de partage autour du Raspberry Pi et des micro-ordinateurs.