Livraison gratuite à partir de 74,95 € NL (99,95 € BE / DE)

Livraison rapide avec DHL

Commandé avant 16:00 = Expédié aujourd'hui

14 jours de retour*


Transport routier

Raspberry Pi projet : Boule Magique 8

À ceci Raspberry Pi projet, nous allons en utiliser un Raspberry Pi et faites de Sense HAT une boule magique à 8 !

 Ce manuel couvre: 

  • Provisions
  • Création de circuits
  • Mise à niveau et mise à jour
  • Créer un nouveau fichier
  • Programmation (Version texte)
  • Programmation (SenseHat)
  • Secouer
  • Débutant 40% 40%
  • 60-75 min 45% 45%
  • Coûte 146,15 € 55% 55%

Étape 2 : Réaliser un circuit

Nous allons d'abord attacher le Sense HAT au Raspberry Pi. Pour ce faire, retirez les vis situées sous le Raspberry Pi et resserrons les entretoises, puis nous connectons l'en-tête GPIO 40 broches au Raspberry Pi. Vous pouvez maintenant connecter l'en-tête GPIO 40 broches Sense HAT. Fixez ensuite le Sense HAT par le haut en vissant les vis du haut à travers le Sense HAT dans les entretoises. Ça devrait ressembler à ça:

Image d'un AstroPi

Étape 3 : mise à jour et mise à niveau

Tout d’abord, mettez à jour et mettez à niveau votre système en entrant les commandes suivantes dans une fenêtre de terminal (lorsque vous êtes connecté à Internet) :

sudo apt-get update
sudo apt-get upgrade

Installez maintenant les packages logiciels Sense HAT :

sudo apt-get install sense-hat
sudo pip-3.2 install pillow

Enfin, redémarrez le Raspberry Pi pour terminer l'installation :

sudo reboot

Étape 4 : Créer un nouveau fichier

Dans ce projet, vous construirez votre propre Magic 8 Ball en utilisant votre Raspberry Pi, un Sense HAT et du code Python. Un Magic 8 Ball est un jeu dans lequel vous posez une question fermée, la secouez et elle vous donne une prédiction.

Si vous ne le faites pas Raspberry Pi et disposez de Sense HAT, vous pouvez utiliser l'émulateur Sense HAT ici ou utiliser l'émulateur Sense HAT intégré pour Windows à chaque étape de ce projet.

Un excellent moyen d'écrire et de tester votre code de manière intermittente consiste à utiliser IDLE 3, une application de développement pour Python. Vous écrirez votre code en Python 3. 

Klik op Menu > Programmeren > Python 3 (IDLE)Zodra het Python-shellvenster is geladen,
klik je op Bestand en Nieuw bestand. Dit opent een teksteditorvenster waarin je je code kunt schrijven,
opslaan en testen. Sla het lege bestand op als magic8ball.py door te klikken op Bestand en Opslaan als.

Étape 5 : Programmation (version texte)

Une bonne façon de démarrer votre programme Magic 8 Ball est de créer d'abord une version texte d'un programme Magic 8 Ball. Pensons à ce que fait une Magic 8 Ball. Tout d'abord, vous posez une question, secouez la balle, la retournez et lisez une réponse choisie au hasard. C'est pourquoi vous avez besoin d'une liste de réponses et d'un moyen d'en choisir une au hasard et d'afficher cette réponse à l'écran.

Tout d'abord, vous devez importer la fonction de choix de la bibliothèque aléatoire et la fonction de veille de la bibliothèque temporelle. Tapez ce qui suit dans votre fichier texte magic8ball.py :

from random import choice
from time import sleep

En utilisant la fonction d'impression, vous pouvez imprimer du texte à l'écran pour la personne utilisant votre programme. Taper:

print("Stel een vraag")

Ensuite, il doit y avoir une pause avant que le programme ne réponde avec une réponse, permettant à l'utilisateur de poser une question. Vous pouvez utiliser la bibliothèque de temps pour demander au programme d'attendre un certain temps, par exemple comme ceci :

sleep(3)

Le programme s'arrêtera pendant trois secondes. Vous pouvez ajuster cette valeur pour augmenter ou diminuer la durée. Faites maintenant une liste des réponses que le programme peut donner à la question. Les listes peuvent être nommées de la même manière que les variables ; par exemple, nombre = [1, 2, 3, 4]. Cette liste appelée « numéro » contient quatre éléments. Votre liste contiendra des chaînes de texte qui seront affichées à l'écran. Ces textes seront assez longs. Pour créer votre liste, tapez :

replies = ['Tekenen wijzen op ja',      
'Zonder twijfel',
'Je kunt erop vertrouwen',
'Reken er niet op',
'Het ziet er goed uit',
'Kan het nu niet voorspellen',
'Het is beslist zo',
'Outlook is niet zo goed'
]

Enfin, une instruction est nécessaire pour sélectionner aléatoirement un élément de la liste puis l'afficher à l'écran. Vous pouvez utiliser la bibliothèque aléatoire pour cela en tapant :

print(choice(replies))

Enregistrez votre code en cliquant sur Fichier et Enregistrer. Exécutez ensuite votre programme pour tester s'il fonctionne en cliquant sur Exécuter et Exécuter le module. Vous devriez voir la sortie « Poser une question » dans la fenêtre du shell IDLE 3.

Étape 6 : Programmation de Sense HAT

Maintenant que vous avez imprimé du texte dans la fenêtre du shell Python 3 sur votre écran, modifions le code pour que le texte défile sur la matrice LED de votre Sense HAT. Pour ce faire, vous devez utiliser la bibliothèque Sense HAT et remplacer les fonctions d'impression par la fonction Sense HAT show_message.

Sous la section des modules importés, ajoutez les lignes suivantes :

from sense_hat import SenseHatsense = SenseHat()

Remplacez ensuite « print » par « sense.show_message » dans votre code. Vous devez le faire à deux endroits. Enregistrez votre programme en appuyant sur Ctrl + S sur votre clavier. Appuyez sur F5 pour exécuter et tester votre programme. Vous constaterez peut-être que le texte se déplace lentement sur la matrice LED Raspberry Pi défile. Pour faire défiler le texte plus rapidement, vous pouvez ajouter « scroll_speed=(0.06) » à vos chaînes de texte, comme ceci :

 

 

from sense_hat import SenseHat à partir d'un choix d'importation aléatoire from time import sleep sense = SenseHat() sense.show_message("Poser une question", scroll_speed=0.06) sleep(3) réponses = ['Les signes indiquent oui', 'Sans aucun doute' , 'Vous pouvez compter dessus', 'Ne comptez pas dessus', 'Ça a l'air bien', 'Je ne peux pas le prédire maintenant', 'C'est définitivement le cas', 'Les perspectives ne sont pas si bonnes' ] sense.show_message (choix (réponses), scroll_speed=0.06)

Étape 7 : Secouer

Les Magic 8 Balls traditionnelles exigent que la personne qui pose une question la secoue avant qu'une réponse ne soit donnée. Cela peut être simulé avec un Sense HAT en utilisant l'accéléromètre, qui mesure les vibrations et les mouvements. On trouve dans la plupart des smartphones des accéléromètres qui modifient l'orientation de l'écran en fonction de la façon dont vous tenez l'appareil.

Utilisons l'accéléromètre du Sense HAT pour détecter tout changement dans la quantité de force g sur chaque axe (x, y et z) avant d'exécuter la partie de votre programme qui fournit une réponse aléatoire à l'utilisateur.

while True:    
x, y, z = sense.get_accelerometer_raw().values()

x = abs(x)

y = abs(y)

z = abs(z)

Notez que la majuscule et l'indentation sont très importantes en Python. Assurez-vous d'utiliser 4 espaces pour mettre en retrait après une ligne avec deux points. L'utilisation de l'abs convertit chaque nombre en nombre positif, ce qui signifie qu'elle ignore la direction de la vibration et examine la quantité de vibration ! Il est maintenant temps de définir une condition dans notre code qui vérifie si les axes x, y et z ont changé (c'est-à-dire s'ils ont été déplacés) avant de sélectionner une réponse aléatoire. Si aucun mouvement n'est détecté, aucune réponse ne sera donnée.

if x > 2 or y > 2 or z > 2 :

sense.show_message(choice(replies))

else:

sense.clear()

Le programme vérifie si les axes x, y et z sont supérieurs à la valeur 2. En modifiant cette valeur, vous pouvez ajuster la sensibilité du programme au mouvement. Si vous voulez que quelqu'un ait le Raspberry Pi et Sense HAT doit vraiment être secoué vigoureusement, utilisez une valeur plus élevée. Enregistrez votre programme en appuyant sur Ctrl + S sur votre clavier. Appuyez sur F5 pour exécuter et tester votre programme. Votre code devrait ressembler à ceci :

from sense_hat import SenseHat à partir d'un choix d'importation aléatoire from time import sleep sense = SenseHat() sense.show_message("poser une question", scroll_speed=0.08) sleep(3) réponses = ["OUI!", "Non", "Peut-être" , "Certainement!", "Bien sûr que non!", ] while True : x, y, z = sense.get_accelerometer_raw().values() x = abs(x) y = abs(y) z = abs(z) si x > 2 ou y > 2 ou z > 2 : sense.show_message(choice(replies)) else : sense.clear()


Et c'était tout ! Ça n'a pas marché ? Revenez sur les étapes précédentes pour voir ce qui n’a pas fonctionné. Est-ce que ça a marché ? Alors jetez un œil à nos projets !

La note de www.elektronicavoorjou.nl à Avis sur WebwinkelKeur est 9.3 / 10 basé sur 5005 avis.