--- /dev/null
+import sys
+import time
+sys.path.append('/home/pi/Adafruit_Micropython_Blinka/src')
+sys.path.append('/home/pi/Adafruit_Python_GPIO')
+
+import board
+import digitalio
+import busio
+
+print("hello blinka!")
+
+
+i2c = busio.I2C(board.SCL, board.SDA)
+
+print([hex(i) for i in i2c.scan()])
+
+led = digitalio.DigitalInOut(board.D4)
+led.direction = digitalio.Direction.OUTPUT
+led.value = True
+
import smbus
import time
-
class I2C:
-
+ MASTER = 0
+ SLAVE = 1
+ _baudrate = None
+ _mode = None
_i2c_bus = None
- def __init__(self, bus_num=0):
- i2c_bus = smbus.SMBus(bus_num)
+
+ def __init__(self, bus_num, mode=MASTER, baudrate=None):
+ if mode != self.MASTER:
+ raise NotImplementedError("Only I2C Master supported!")
+ _mode = self.MASTER
+
+ if baudrate != None:
+ print("I2C frequency is not settable in python, ignoring!")
+
+ try:
+ self._i2c_bus = smbus.SMBus(bus_num)
+ except FileNotFoundError:
+ raise RuntimeError("I2C Bus #%d not found, check if enabled in config!" % bus_num)
+
+ def scan(self):
+ found = []
+ for addr in range(0,0x7F):
+ try:
+ self._i2c_bus.read_byte(addr)
+ except OSError:
+ continue
+ found.append(addr)
+ return found
def __init__(self, bcm_number):
self.id = bcm_number
+ def __repr__(self):
+ return "BCM #%d" % self.id
+
def init(self, mode=IN, pull=None):
if mode != None:
print("set %d to mode %d" % (self.id, mode))
)
i2cPorts = (
- (1, SDA, SCL),
+ (1, SCL, SDA),
)
from microcontroller.pin import i2cPorts
for portId, portScl, portSda in i2cPorts:
if scl == portScl and sda == portSda:
- self._i2c = I2C(portId, mode=_I2C.MASTER, baudrate=frequency)
+ self._i2c = _I2C(portId, mode=_I2C.MASTER, baudrate=frequency)
break
else:
raise NotImplementedError("No Hardware I2C on (scl,sda)={}\nValid UART ports".format(
"""Microcontroller pins"""
from adafruit_blinka import Enum, agnostic
+from adafruit_blinka.agnostic import board as board_id
class Pin(Enum):
"""Reference Pin object"""
from adafruit_blinka.microcontroller.esp8266 import *
elif agnostic.microcontroller == "stm32":
from adafruit_blinka.microcontroller.stm32 import *
-elif agnostic.microcontroller == "raspi_3":
- from adafruit_blinka.microcontroller.raspi_23 import *
+elif agnostic.microcontroller == "linux":
+ if board_id == "raspi_3" or board_id == "raspi_2":
+ from adafruit_blinka.microcontroller.raspi_23 import *
+ else:
+ raise NotImplementedError("Board not supported: ", board_id)
else:
raise NotImplementedError("Microcontroller not supported: ", agnostic.microcontroller)
from adafruit_blinka.microcontroller.esp8266.pin import *
elif agnostic.microcontroller == "stm32":
from adafruit_blinka.microcontroller.stm32.pin import *
+elif agnostic.microcontroller == "linux":
+ if agnostic.board == "raspi_3" or agnostic.board == "raspi_2":
+ print("import raspi23")
+ from adafruit_blinka.microcontroller.raspi_23.pin import *
+ else:
+ raise NotImplementedError("Board not supported: ", agnostic.board)
else:
raise NotImplementedError("Microcontroller not supported")