Mettez Ubuntu dans Raspi, mettez Docker dessus et contrôlez GPIO avec python à partir du conteneur

introduction

C'est devenu un titre déroutant, mais ça ressemble à ça スクリーンショット 2020-02-11 14.56.17.png

environnement

Développement PC: Mac Mojave Mémoire RaspBerry Pi4 4 Go Carte SD 16 Go

Écrire Ubuntu 19.10 sur SD

https://ubuntu.com/download/raspberry-pi J'ai téléchargé la version 64 bits et l'ai écrite en utilisant balena Etchar.

Installer docker sur Ubuntu

Entrez Ubuntu avec ssh ou quelque chose comme ça

sudo apt-get install docker-ce

Vous pouvez l'installer avec.

sudo usermod -aG docker ubuntu

Vous pouvez docker sans utiliser sudo.

Créer une image de base

Vous pouvez écrire un script python sur le PC de développement, puis le copier dans dockerImage avec Dockerfile, mais c'était difficile à comprendre, donc une fois que vous avez créé une base avec Dockerfile, entrez dans un conteneur et créez une image à partir de ce conteneur.

Dockerfile

[Création d'un environnement Docker pour TensorFlow avec Raspberry Pi](https://qiita.com/kohbis/items/53c27ce6c62a7039aaa2#raspberrypi-%E3%81%AB-docker-%E3%82%92%E3%81%88%E3 % 81% 84% E3% 82% 84) J'ai évoqué cet article, presque ci-dessus. Je voulais mettre rpi.gpio, mais je ne savais pas comment le mettre, alors je l'ai juste écrit.

FROM resin/rpi-raspbian:stretch

RUN echo "deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi firmware" > /etc/apt/sources.list

RUN apt-get update -y
RUN apt-get install -y --no-install-recommends \
        vim git less wget \
        build-essential \
        libatlas-base-dev \
        python3-pip python3-dev python3-setuptools\
        python3-scipy python3-h5py \
        libraspberrypi-bin \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

RUN pip3 install --upgrade pip setuptools
RUN pip3 install rpi.gpio

Puis construisez

docker build -t rpi/rpi:0.1 .

Assurez-vous de pouvoir le faire avec des images docker! Ca devrait être fait.

Lancer un conteneur et écrire un script python

Démarrez le conteneur à partir de l'image que vous avez créée précédemment.

docker run --name rpi_test -ti --privileged rpi/rpi:0.1 /bin/bash

Ensuite, il sera à l'intérieur du conteneur, alors installez ce que vous voulez. Parce que c'est une nano école

sudo apt-get update
sudo apt-get install nano

Allez à la maison et créez un script. Je pense qu'il est préférable de définir un répertoire de travail ici ...

cd home
nano test.py

C'est un programme qui met une LED sur GPIO17 et fait un L-scintillement approprié.


import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
while True:
    GPIO.output(11, True)
    time.sleep(2)
    GPIO.output(11, False)
    time.sleep(2)

Après avoir enregistré le script

exit

Veuillez vous déconnecter avec

docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS                     PORTS               NAMES
e700d8490be8        rpi/rpi:0.1           "/usr/bin/entry.sh /…"   11 minutes ago      Exited (0) 6 seconds ago                       rpi_test

Le conteneur est arrêté. Pour créer une image à partir de ce conteneur

docker commit rpi_test rpi/rpi:0.2
docker images
REPOSITORY           TAG                 IMAGE ID            CREATED             SIZE
rpi/rpi              0.2                 50f7f2a406e7        2 minutes ago       622MB

Vous avez maintenant une image avec le script enregistré.

Commencez

sudo docker run --privileged -it -d --name rpi -w /home rpi/rpi:0.2 python3 test.py

Le conteneur se déplace en arrière-plan et continue de flotter! Si vous voulez l'arrêter, arrêtez avec docker stop rpi

Résumé

Je veux bientôt obtenir les données du capteur

Recommended Posts

Mettez Ubuntu dans Raspi, mettez Docker dessus et contrôlez GPIO avec python à partir du conteneur
J'ai défini des variables d'environnement dans Docker et je les ai affichées en Python.
Mettez Scipy + Matplotlib dans Ubuntu sur Vagrant et affichez le graphique avec X11 Forwarding
Installez CaboCha dans l'environnement Ubuntu et appelez-le avec Python.
Remplissez la chaîne avec des zéros en python et comptez certains caractères de la chaîne
Mettez Cabocha 0.68 dans Windows et essayez d'analyser la dépendance avec Python
Installez Chrome en ligne de commande sur Sakura VPS (Ubuntu) et lancez Chrome avec python à partir de l'affichage virtuel et du sélénium
Placez Python3 dans le conteneur Docker d'Amazon Linux2
Mettez Docker dans Windows Home et exécutez un serveur Web simple avec Python
Installez le sélénium sur votre Mac et essayez-le avec python
Recevoir des e-mails de Gmail et étiqueter avec Python3
Ubuntu 20.04 sur raspberry pi 4 avec OpenCV et utilisation avec python
Récupérez la chaîne correspondante dans l'expression régulière et réutilisez-la lors du remplacement sur Python3
Mettez Python 3.x dans Ubuntu
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
[Python] J'ai installé le jeu depuis pip et j'ai essayé de jouer
Jeu de vie avec Python [je l'ai fait] (sur terminal et Tkinter)
Comment est le progrès? Continuons le boom ?? en Python
Contrôlez le moteur avec un pilote de moteur en utilisant python sur Raspberry Pi 3!
Comment installer OpenCV sur Cloud9 et l'exécuter en Python
Installez mecab sur le serveur partagé Sakura et appelez-le depuis python
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Pour utiliser python, mettez pyenv sur macOS avec PyCall
Lisez le fichier en Python avec un chemin relatif depuis le programme
Installez lp_solve sur Mac OSX et appelez-le avec python.
De l'installation ubuntu à l'exécution de kinect avec docker et ros (présentation)
Utilisez Firefox avec Selenium depuis python et enregistrez la capture d'écran
Mettez python, numpy, opencv3 dans ubuntu14
Jusqu'à ce que vous mettiez Python dans Docker
Passez les éléments sélectionnés dans Tablacus Explorer de JScript à python et renommez-les tous à la fois
[Petite histoire] Je ne peux pas le trouver même si je recherche pour installer Python sur ubuntu avec Docker
2.Faites un arbre de décision à partir de 0 avec Python et comprenez-le (2. Bases du programme Python)
Déployez le modèle de reconnaissance faciale Python sur Heroku et utilisez-le depuis Flutter ②
[Python] Doux Est-ce doux? À propos des suites et des expressions dans les documents officiels
Mettez OpenCV dans OS X avec Homebrew et vidéo d'entrée / sortie avec python
Mettez vos propres données d'image dans Deep Learning et jouez avec
Envoyer un e-mail avec SES en Python et un message court avec SMS sur SNS
Utilisez python sur Raspberry Pi 3 pour éclairer la LED avec le contrôle du commutateur!
Mettez le résultat du chat entre guillemets et mettez-le dans une variable
Récupérer le csv publié avec Github Action et le publier sur les pages Github
Définissez cron à partir de 1 sur Ubuntu 16.04 (Sakura VPS) et exécutez régulièrement le programme python
Comment rendre le nom du conteneur accessible dans Docker en tant que sous-domaine
Créez et modifiez des feuilles de calcul dans n'importe quel dossier sur Google Drive avec python
Mettre la liaison MeCab pour Python sur Windows, Mac et Linux avec pip
Obtenez et convertissez l'heure actuelle dans le fuseau horaire local du système avec python
Déployer et utiliser le modèle de prédiction créé en Python sur SQL Server
Lisez le fichier avec python et supprimez les sauts de ligne [Notes sur la lecture du fichier]
Comparez le retour nocturne et le retour diurne du cours moyen de l'action Nikkei avec Python
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (4. Structure des données)
Apprentissage profond à partir de zéro - Conseils du chapitre 4 pour la théorie de l'apprentissage profond et la mise en œuvre apprise en Python
[python] Envoyez l'image capturée de la caméra Web au serveur et enregistrez-la
Créez un arbre de décision à partir de 0 avec Python et comprenez-le (5. Entropie des informations)
Utiliser l'application LibreOffice en Python (2) Manipuler calc (à partir d'une macro et externe)
Contrôle exclusif avec fichier de verrouillage en Python
Derrière le flyer: utiliser Docker avec Python
Créer un environnement Python 3 et OpenCV sur Ubuntu 18.04
Environnement virtuel Python et packages sur Ubuntu
Afficher Python 3 dans le navigateur avec MAMP
Un mémo contenant Python2.7 et Python3 dans CentOS
Gérer les "années et mois" en Python