Câblage Communication Pi-SPI avec Python

Connectez le MCP3002 ADC au Raspberry Pi 2 avec "Connectez le convertisseur A / N MCP3002 au Raspberry Pi" afin que la valeur du capteur analogique puisse être lue via SPI. fait. J'ai utilisé py-spidev pour effectuer une communication SPI à partir de python, mais python wrapper de WiringPi v2 Vous pouvez également contrôler le SPI à l'aide, donc ici, j'utiliserai WiringPi2 python pour lire le capteur analogique via SPI.

Circuit expérimental

FSR_prototype2_ブレッドボード.png

FSR_prototype2_回路図.png

Contrôle SPI / GPIO à l'aide de WiringPi

Implémentez un programme en python qui lit la valeur du capteur de pression du MCP3002 et fait clignoter la LED lorsqu'une valeur dépassant la valeur THRESHOLD est observée.

Lire à l'aide de la bibliothèque SPI

Si vous envoyez 2 octets de 0x68,0x00 selon la fiche technique du MCP3002, la valeur du capteur de 2 octets connecté à CH0 (valide est les 10 bits inférieurs) sera renvoyée. Si 0x78 est utilisé au lieu de 0x68, la valeur du capteur connecté à CH1 peut être obtenue.

read_adc_wp2.py


#!/usr/bin/env python3

import wiringpi2 as wp
import time

# SPI channel (0 or 1)
SPI_CH = 0

# SPI speed (hz)
SPI_SPEED = 1000000

# GPIO number
LED_PIN = 25

# threshold
THRESHOLD = 200

# setup
wp.wiringPiSPISetup (SPI_CH, SPI_SPEED)
wp.wiringPiSetupGpio()
wp.pinMode(LED_PIN, wp.GPIO.OUTPUT)

while True:
    buffer = 0x6800
    buffer = buffer.to_bytes(2,byteorder='big')
    wp.wiringPiSPIDataRW(SPI_CH, buffer)
    value = (buffer[0]*256+buffer[1]) & 0x3ff
    print (value)

    if value > THRESHOLD:
      wp.digitalWrite(LED_PIN, wp.GPIO.HIGH)
      time.sleep(0.2)
      wp.digitalWrite(LED_PIN, wp.GPIO.LOW)
      time.sleep(0.2)

    time.sleep(1)

Utiliser l'extension MCP3002

WiringPi2 a une extension de MCP3002, vous pouvez donc l'utiliser pour lire la valeur du capteur analogique sans être conscient de la communication SPI (PIN_BASE est CH0, PIN_BASE + 1 est CH1).

read_mcp3002.py


#!/usr/bin/env python3
###
### read MCP3002 ADC analog value via RasPi SPI
###

import wiringpi2 as wp
import time

# SPI channle (0 or 1)
SPI_CH = 0

# pin base (above 64)
PIN_BASE=70

# GPIO number
LED_PIN = 25

# threshold
THRESHOLD = 200

# setup
wp.mcp3002Setup (PIN_BASE, SPI_CH)
wp.wiringPiSetupGpio()
wp.pinMode(LED_PIN, wp.GPIO.OUTPUT)

# if a sensor value is over THRESHOLD,
# flash led.
while True:
    value = wp.analogRead(PIN_BASE)
    print (value)

    if value > THRESHOLD:
      wp.digitalWrite(LED_PIN, wp.GPIO.HIGH)
      time.sleep(0.2)
      wp.digitalWrite(LED_PIN, wp.GPIO.LOW)
      time.sleep(0.2)

    time.sleep(1)

Courir

En cours d'exécution

References

Recommended Posts

Câblage Communication Pi-SPI avec Python
Scraping à l'aide de Python
Communication de socket en utilisant le serveur de socket avec python maintenant
[Python] [Windows] Communication série en Python à l'aide de DLL
Manipuler Redmine à l'aide de Python Redmine
Communication série avec python
Séquence de Fibonacci utilisant Python
Nettoyage des données à l'aide de Python
Utilisation des packages Python #external
Calcul de l'âge à l'aide de python
Communication HTTP avec Python
Rechercher sur Twitter avec Python
Identification de nom à l'aide de python
Notes sur l'utilisation de sous-processus Python
Essayez d'utiliser Tweepy [Python2.7]
Via un proxy d'authentification pour la communication à l'aide de python urllib3
mémo python utilisant l'opérateur perl-ternaire
Aplatir à l'aide du rendement Python de
Scraping à l'aide de Python 3.5 async / await
Communication TCP à l'aide du module Socket-Python3
Enregistrer des images à l'aide de requêtes python3
[S3] CRUD avec S3 utilisant Python [Python]
[Python] Essayez d'utiliser le canevas de Tkinter
Utilisation de Quaternion avec Python ~ numpy-quaternion ~
Essayez d'utiliser Kubernetes Client -Python-
notes python pour l'utilisation de variables spéciales perl
[Python] Utilisation d'OpenCV avec Python (basique)
Scraping à l'aide de la syntaxe Python 3.5 Async
Surveillance des changements de site Web à l'aide de python
Publier sur Twitter en utilisant Python
Commencez à Selenium en utilisant python
Algorithme de recherche utilisant word2vec [python]
Introduction à la communication série [Python]
Changer la version de python à l'aide de pyenv
python: principes de base de l'utilisation de scikit-learn ①
# 1 [python3] Calcul simple à l'aide de variables
Créer des tickets JIRA en utilisant Python
Manipulez les feuilles de calcul localement à l'aide de Python
mémo python utilisant perl --join
Afficher la communication Python avec Fiddler
Web scraping avec Selenium (Python)
[Python] Validation de JSON avec Voluptuous
Réalisez une communication http asynchrone en utilisant asyncio
Diffusion sur LINE en utilisant python
Analyse de données à l'aide de pandas python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Utiliser OpenCV avec Python @Mac
[Python] Jeu de tir avec pyxel
Envoyer en utilisant Python avec Gmail
La communication I2C est effectuée en contrôlant la communication série avec python (à l'aide d'un périphérique USBGPIO8)
Contrôle de la communication série avec communication python et SPI (à l'aide d'un périphérique USBGPIO8)
Comment installer Python à l'aide d'Anaconda
Moyenne harmonique par Python (en utilisant SciPy)
Initialisation de variables globales à l'aide de décorateurs Python
[Python] Chargement de fichiers csv à l'aide de pandas
Programmation GUI en Python avec Appjar
Communication de socket avec Python LEGO Mindstorms