MikrofonSensor und TemperaturSenor die zwei Python programme funktionieren. mit den jeweiligen 2 json Datein. Beim TemperaturSensor wird im Terminal keine Wertre ausgegeben aber in der json Datei kann man die Temp und Hum sehen.
This commit is contained in:
parent
4c654ec969
commit
1751076592
2614 changed files with 349009 additions and 0 deletions
|
@ -0,0 +1,202 @@
|
|||
# SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
# SPDX-FileCopyrightText: 2022 Martin Schnur for Siemens AG
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
"""TI AM65XX pin names"""
|
||||
|
||||
import mraa
|
||||
|
||||
# pylint: disable=too-many-branches,too-many-statements
|
||||
# pylint: disable=pointless-string-statement
|
||||
|
||||
|
||||
class Pin:
|
||||
"""Pins don't exist in CPython so...lets make our own!"""
|
||||
|
||||
# pin modes
|
||||
IN = 0
|
||||
OUT = 1
|
||||
ADC = 2
|
||||
DAC = 3
|
||||
PWM = 4
|
||||
# pin values
|
||||
LOW = 0
|
||||
HIGH = 1
|
||||
# pin pulls
|
||||
PULL_NONE = 0
|
||||
PULL_UP = 1
|
||||
PULL_DOWN = 2
|
||||
|
||||
id = None
|
||||
_value = LOW
|
||||
_mode = IN
|
||||
|
||||
def __init__(self, pin_id=None):
|
||||
self.id = pin_id
|
||||
self._mode = None
|
||||
self._pull = None
|
||||
self._pin = None
|
||||
|
||||
def __repr__(self):
|
||||
return str(self.id)
|
||||
|
||||
def __eq__(self, other):
|
||||
return self.id == other
|
||||
|
||||
def init(self, mode=IN, pull=None):
|
||||
"""Initialize the Pin"""
|
||||
if self.id is None:
|
||||
raise RuntimeError("Can not init a None type pin.")
|
||||
if mode is not None:
|
||||
if mode == self.IN:
|
||||
self._mode = self.IN
|
||||
mypin = mraa.Gpio(self.id)
|
||||
mypin.dir(mraa.DIR_IN)
|
||||
elif mode == self.OUT:
|
||||
self._mode = self.OUT
|
||||
mypin = mraa.Gpio(self.id)
|
||||
mypin.dir(mraa.DIR_OUT)
|
||||
elif mode in (self.ADC, self.DAC):
|
||||
# ADC (DAC not available) only available on Pin 0-5 (X12 Pin 1-6)
|
||||
if self.id not in (0, 1, 2, 3, 4, 5):
|
||||
raise ValueError("Pin does not have ADC capabilities")
|
||||
self._pin = mraa.Aio(self.id)
|
||||
elif mode == self.PWM:
|
||||
# PWM only available on Pin 4-9 (X10 Pin 1-2, X11 Pin 5-8)
|
||||
if self.id not in (4, 5, 6, 7, 8, 9):
|
||||
raise ValueError("Pin does not have PWM capabilities")
|
||||
return
|
||||
else:
|
||||
raise RuntimeError("Invalid mode for pin: %s" % self.id)
|
||||
self._mode = mode
|
||||
if pull is not None:
|
||||
if self._mode != self.IN:
|
||||
raise RuntimeError("Cannot set pull resistor on output")
|
||||
if pull == self.PULL_UP:
|
||||
mypin = mraa.Gpio(self.id)
|
||||
mypin.dir(mraa.DIR_IN)
|
||||
elif pull == self.PULL_DOWN:
|
||||
mypin = mraa.Gpio(self.id)
|
||||
mypin.dir(mraa.DIR_IN)
|
||||
else:
|
||||
raise RuntimeError("Invalid pull for pin: %s" % self.id)
|
||||
|
||||
def value(self, val=None):
|
||||
"""Set or return the Pin Value"""
|
||||
# Digital In / Out
|
||||
if self._mode in (Pin.IN, Pin.OUT):
|
||||
if val is not None:
|
||||
if val == self.LOW:
|
||||
self._value = val
|
||||
mypin = mraa.Gpio(self.id)
|
||||
mypin.write(0)
|
||||
elif val == self.HIGH:
|
||||
self._value = val
|
||||
mypin = mraa.Gpio(self.id)
|
||||
mypin.write(1)
|
||||
else:
|
||||
raise RuntimeError("Invalid value for pin")
|
||||
return None
|
||||
return mraa.Gpio.read(mraa.Gpio(self.id))
|
||||
# Analog In
|
||||
if self._mode == Pin.ADC:
|
||||
if val is None:
|
||||
# Read ADC here
|
||||
mypin = mraa.Aio(self.id)
|
||||
mypin.read()
|
||||
return mypin.read()
|
||||
# read only
|
||||
raise AttributeError("'AnalogIn' object has no attribute 'value'")
|
||||
# Analog Out
|
||||
if self._mode == Pin.DAC:
|
||||
"""if val is None:
|
||||
# write only
|
||||
raise AttributeError("unreadable attribute")
|
||||
# Set DAC here
|
||||
mypin = mraa.Aio(self.id)
|
||||
mypin.setBit(val)"""
|
||||
raise AttributeError(
|
||||
"AM65xx doesn't have an DAC! No Analog Output possible!"
|
||||
)
|
||||
raise RuntimeError(
|
||||
"No action for mode {} with value {}".format(self._mode, val)
|
||||
)
|
||||
|
||||
|
||||
# Digital Pins (GPIO 0-19)
|
||||
D0 = Pin(0)
|
||||
D1 = Pin(1)
|
||||
D2 = Pin(2)
|
||||
D3 = Pin(3)
|
||||
D4 = Pin(4)
|
||||
D5 = Pin(5)
|
||||
D6 = Pin(6)
|
||||
D7 = Pin(7)
|
||||
D8 = Pin(8)
|
||||
D9 = Pin(9)
|
||||
D10 = Pin(10)
|
||||
D11 = Pin(11)
|
||||
D12 = Pin(12)
|
||||
D13 = Pin(13)
|
||||
D14 = Pin(14)
|
||||
D15 = Pin(15)
|
||||
D16 = Pin(16)
|
||||
D17 = Pin(17)
|
||||
D18 = Pin(18)
|
||||
D19 = Pin(19)
|
||||
|
||||
# Analog Pins (AIO 0-5, only ADC!)
|
||||
A0 = Pin(0)
|
||||
A1 = Pin(1)
|
||||
A2 = Pin(2)
|
||||
A3 = Pin(3)
|
||||
A4 = Pin(4)
|
||||
A5 = Pin(5)
|
||||
|
||||
# I2C allocation
|
||||
I2C_SCL = "SCL"
|
||||
I2C_SDA = "SDA"
|
||||
|
||||
# SPI allocation
|
||||
SPIO_SCLK = D13
|
||||
SPIO_MISO = D12
|
||||
SPIO_MOSI = D11
|
||||
SPIO_SS = D10
|
||||
|
||||
# UART allocation
|
||||
UART_TX = "TX"
|
||||
UART_RX = "RX"
|
||||
|
||||
# pwmOuts (GPIO 4-9)
|
||||
PWM_4 = D4
|
||||
PWM_5 = D5
|
||||
PWM_6 = D6
|
||||
PWM_7 = D7
|
||||
PWM_8 = D8
|
||||
PWM_9 = D9
|
||||
|
||||
# I2C
|
||||
# ordered as sclID, sdaID
|
||||
# i2c-4 (/dev/i2c-4) -> X10 Pin9, Pin10 (SDA, SCL)
|
||||
i2cPorts = ((4, I2C_SCL, I2C_SDA),)
|
||||
|
||||
# SPI
|
||||
# ordered as spiId, sckId, mosiID, misoID
|
||||
spiPorts = ((0, SPIO_SCLK, SPIO_MOSI, SPIO_MISO),)
|
||||
|
||||
# UART
|
||||
# use pySerial = dev/ttyS1
|
||||
# ordered as uartID, txID, rxID
|
||||
uartPorts = ((0, UART_TX, UART_RX),)
|
||||
|
||||
# PWM
|
||||
pwmOuts = (
|
||||
((0, 0), PWM_4),
|
||||
((0, 1), PWM_5),
|
||||
((2, 0), PWM_6),
|
||||
((2, 1), PWM_7),
|
||||
((4, 0), PWM_8),
|
||||
((4, 1), PWM_9),
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue