Étape 6: Raspberry Pi (le code)
Nous obtenons proches maintenant, ton hamster est presque prêt à entrer dans le monde des médias sociaux. Nous avons des capteurs, des servos et des caméras tout prêts, il suffit de les accrocher jusqu'à la Pi framboise et leur dire quoi faire. J’ai retourné à travers tous les fichiers impliqués dans le projet et les remplis de commentaires expliquant ce que chaque partie du code est fait pour ceux d'entre vous qui sont intéressés.
Il y a un peu de code nécessaire pour rendre ce projet fonctionne, donc je l’ai mis dans un référentiel (repo) sur GitHub. Vous pouvez installer l’outil de ligne de commande pour GitHub (appelé git) sur votre facture pro forma en exécutant la commande :
sudo apt-get install git
Nous pouvons maintenant utiliser git pour cloner le repo sur la pi (fondamentalement nous allons être télécharge tous les fichiers sur la pi ainsi que la structure de dossier approprié pour les rendre tous les travaux (voir photo ci-dessus)). Les commandes suivantes, vous devraient obtenir mis en place :
# cd vers le répertoire de base
CD ~ /
# cloner le repo
git clone git
Vous devriez maintenant avoir tout le code dont vous aurez besoin. Nous aurons besoin juste vérifier un couple de variables sont corrects et set up les jetons d’accès pour vos bots Twitter.
Mise en place de jetons d’accès twitter
Nous aurons besoin de créer un nouveau répertoire à l’intérieur du projet
mkdir ~/IsMartinRunning/.secrets
Faisant précéder le nom du répertoire avec un point en fait caché (vous ne serez pas capable de le voir avec '%.*ls', vous aurez besoin d’utiliser 'ls-a'). À l’intérieur de ce répertoire faire deux fichiers (un pour chacun de vos bots Twitter) :
CD ~/IsMartinRuning/.secrets
Contact martinBot.access mentions.access
Nous devons maintenant dans chacun de ces fichiers mettre les informations d’accès pour l’un des bots Twitter. En utilisant les quatre premières lignes de l’écriture de fichier :
- La clé de la consommation
- Le secret de la consommation
- Le jeton d’accès
- Le secret de jeton accès
Vous pouvez trouver ces valeurs en allant sur apps.twitter.com et allant dans l’onglet « Clés et jetons d’accès » pour votre bot. Nous faisons cela pour des raisons de sécurité, il est tout à fait possible d’écrire juste ces clés dans les scripts eux-mêmes, mais alors, si vous les hébergez dans un repo public (comme je le fais) chacun a soudainement accès à vos bots twitter (ce qui n’est pas souhaitable).
Maintenant, allons dans les fichiers, regardez ce qu’ils font et s’ils ont besoin de personnalisation.
MartinBot/MartinBot.py
Il s’agit d’un script Python qui prend les données de le dween de capteur de roue en tant qu’argument. Il prend une photo à l’aide de la webcam, vérifie si ce nouveau exécuter bat tout les records personnels précédents, construit un tweet appropriée et utilise la bibliothèque python Twython pour l’envoyer.
Ce fichier n’a un peu de travail. Tout d’abord, nous aurez besoin d’installer la bibliothèque Twython. Cela peut être fait à l’aide de la pip de gestionnaire de paquet python. Alors, vraiment, que tout d’abord, nous aurons besoin d’installer pip:)
# installer pip
sudo apt-get install python-pip
# installer Twython à l’aide de pip
sudo pip install twython
Ensuite, nous aurons besoin pour s’assurer que les chemins de fichier sont corrects. Lignes 27, 40, 60 et 65 ont des chemins d’accès qui doivent être correctes pour votre pi (c.-à-d. vous devrez peut-être modifier le nom d’utilisateur dans le chemin d’accès).
Enfin, nous aurons besoin pour s’assurer que le port série de la webcam est correcte (ligne 24'/ dev /video0'). Vous pouvez le vérifier en débranchant la webcam de la pi, la course la commande :
LS/dev
Puis brancher la webcam de retour dans et réexécuter la commande même. Cette fois, un nouveau port devrait apparaître et c’est celui que vous voulez. Nous allons utiliser cette même technique pour vérifier les ports de la Arduinos trop.
MartinBot/image.png
Il s’agit de l’image de que la webcam prend, prêts à être téléchargés sur Twitter.
MartinBot/personal_bests
Ce fichier contient les valeurs enregistrées plus hauts pour une vitesse moyenne et distance. Il est utilisé et mis à jour par le script MartinBot.py pour vérifier les nouveaux enregistrements.
MartinBot/wheel_listener.sh
Il s’agit d’un script Bash qui bouclera l’écoute en continu de la roue dween pour toutes les données sur un nouveau parcours de détection. Quand il obtient les données, il exécutera le script de MartinBot.py en transmettant les données pour qu’il puisse utiliser.
Le port série sur la ligne 15 ('/dev/ttyACM0') doit être réglé à tout port votre dween de capteur de roue est sur (tout comme la webcam).
Le chemin d’accès à la ligne 19 doit être correct.
circuit_diagrams / *
Ce sont les schémas pour les dweens ainsi que les fichiers de .fzz utilisés pour les créer avec un programme appelé Fritzing (c’est très utile).
Ceux-ci ne sont pas réellement utilisés donc vous n’avez pas besoin de s’inquiéter à leur sujet. Je voudrais juste garder toutes ces choses ensemble sur GitHub.
get_mentions/get_mentions.py
Ce script Python est plus complex que le précédent. Il frappe jusqu'à l’API Twitter vous cherchez les tweets qui mentionnent '@IsMartinRunning' (vôtre va automatiquement chercher la poignée Twitter de quelque compte possède le bot twitter). Ensuite, il vérifie pour voir si ceux-ci sont plus récents que celui plus récent il a répondu à ces nouveaux tweets, puis avoir cherché des mots-clés tels que «météo», «température» et «traiter». Si un de ces mots se trouvent qu'un tweet de réponse doit être créé. Si ils ont mentionné que de la température des mots-clés de l’humidité, le script envoie un signal à la dween de hdt_with_servo demandant pour les données de température/humidité, si le tweet contenait le mot clé régal, le script envoie un signal à le dween de dire les choses pour activer le servo distributeur de friandise. Le script puis arrive avec une réponse appropriée, tweets pour elle et puis met à jour les plus récentes ont répondu au tweet.
La variable 'serial_path' sur la ligne 55 doit se référer pour le port série correct pour la dween de hdt_with_servo.
Les chemins d’accès aux lignes 58, 92 et 145 doivent être corrects.
get_mentions/mention_listener.sh
Ce script Bash exécute le script de get_mentions.py chaque minute (c’est aussi souvent que l’API Twitter permettra).
Le chemin d’accès à la ligne 13 fie doit être correct.
get_mentions/most_recent
Ce fichier contient le tweet id du plus récent Tweet a répondu à par le script get_mentions.py . Il s’agit pour nous de répondre uniquement aux bips une fois.
croquis / ** / *
Ces fichiers sont les esquisses d’Arduino nécessaires pour rendre les capteurs et les servos fonctionnent.
Ouf, je sais il y a beaucoup à penser à tout d’un coup, mais nous devons le faire maintenant. Prochain nous allons obtenir ces scripts en cours d’exécution.