WiringPi-SPI-Kommunikation mit Python

Verbinden Sie den MCP3002 ADC mit dem Raspberry Pi 2 mit "Verbinden Sie den A / D-Wandler MCP3002 mit dem Raspberry Pi", damit der analoge Sensorwert über SPI gelesen werden kann. tat. Ich habe py-spidev verwendet, um die SPI-Kommunikation von Python aus durchzuführen, aber Python-Wrapper von WiringPi v2 Sie können den SPI auch mit steuern, daher verwende ich hier WiringPi2 Python, um den analogen Sensor über SPI zu lesen.

Experimentelle Schaltung

FSR_prototype2_ブレッドボード.png

FSR_prototype2_回路図.png

SPI / GPIO-Steuerung mit WiringPi

Implementieren Sie ein Programm in Python, das den Wert des Drucksensors vom MCP3002 liest und die LED blinkt, wenn ein Wert beobachtet wird, der den THRESHOLD-Wert überschreitet.

Lesen Sie mit der SPI-Bibliothek

Wenn Sie 2 Bytes von 0x68.0x00 gemäß dem Datenblatt von MCP3002 senden, werden 2 Bytes des mit CH0 verbundenen Sensorwerts (gültig sind die unteren 10 Bits) zurückgegeben. Wenn 0x78 anstelle von 0x68 verwendet wird, kann der an CH1 angeschlossene Sensorwert erhalten werden.

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)

Verwenden Sie die MCP3002-Erweiterung

WiringPi2 hat eine Erweiterung von MCP3002, sodass Sie damit den Wert des analogen Sensors lesen können, ohne die SPI-Kommunikation zu kennen (PIN_BASE ist CH0, PIN_BASE + 1 ist 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)

Lauf

Laufen

References

Recommended Posts

WiringPi-SPI-Kommunikation mit Python
Scraping mit Python
Socket-Kommunikation über Socket-Server mit Python jetzt
[Python] [Windows] Serielle Kommunikation in Python über DLL
Bearbeiten Sie Redmine mit Python Redmine
Serielle Kommunikation mit Python
Fibonacci-Sequenz mit Python
Datenbereinigung mit Python
Verwenden von Python # externen Paketen
Altersberechnung mit Python
HTTP-Kommunikation mit Python
Suchen Sie Twitter mit Python
Namensidentifikation mit Python
Hinweise zur Verwendung von Python-Unterprozessen
Versuchen Sie es mit Tweepy [Python2.7]
Über einen Authentifizierungs-Proxy für die Kommunikation mit Python urllib3
Python-Memo mit perl-ternärem Operator
Mit Python abflachen
Scraping mit Python 3.5 async / await
TCP-Kommunikation mit Socket-Modul-Python3
Speichern Sie Bilder mit Python3-Anforderungen
[S3] CRUD mit S3 unter Verwendung von Python [Python]
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Verwenden von Quaternion mit Python ~ numpy-quaternion ~
Versuchen Sie es mit Kubernetes Client -Python-
Python-Notizen zur Verwendung von Perl-Spezialvariablen
[Python] Verwenden von OpenCV mit Python (Basic)
Scraping mit Python 3.5 Async-Syntax
Überwachung von Website-Änderungen mit Python
Mit Python auf Twitter posten
Starten Sie mit Python zu Selen
Suchalgorithmus mit word2vec [Python]
Einführung in die serielle Kommunikation [Python]
Ändern Sie die Python-Version mit pyenv
Python: Grundlagen der Verwendung von Scikit-Learn ①
# 1 [python3] Einfache Berechnung mit Variablen
Erstellen Sie JIRA-Tickets mit Python
Bearbeiten Sie Tabellenkalkulationen lokal mit Python
Python-Memo mit Perl --join
Web Scraping mit Selenium (Python)
[Python] Validierung von JSON mit Voluptuous
Erzielen Sie eine asynchrone http-Kommunikation mit asyncio
Online-Übertragung mit Python
Datenanalyse mit Python-Pandas
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Verwenden von OpenCV mit Python @Mac
[Python] Schießspiel mit Pyxel
Senden Sie mit Python mit Google Mail
Die I2C-Kommunikation erfolgt durch Steuerung der seriellen Kommunikation mit Python (über ein USBGPIO8-Gerät).
Serielle Kommunikationssteuerung mit Python- und SPI-Kommunikation (mit USBGPIO8-Gerät)
So installieren Sie Python mit Anaconda
Harmonischer Mittelwert von Python (mit SciPy)
Initialisierung globaler Variablen mit Python-Dekoratoren
[Python] Laden von CSV-Dateien mit Pandas
GUI-Programmierung in Python mit Appjar
Socket-Kommunikation mit Python LEGO Mindstorms