From 2cab8e111ceca5c508eb1eea7db294a3a8972c10 Mon Sep 17 00:00:00 2001 From: ladyada Date: Sun, 17 Jun 2018 19:22:27 -0400 Subject: [PATCH] start raspi compatibility --- examples/piblinka.py | 16 ++++++++++++++++ src/adafruit_blinka/agnostic/__init__.py | 15 ++++++++++----- src/adafruit_blinka/board/raspi_23.py | 13 +++++++++++++ src/board.py | 2 ++ 4 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 examples/piblinka.py create mode 100644 src/adafruit_blinka/board/raspi_23.py diff --git a/examples/piblinka.py b/examples/piblinka.py new file mode 100644 index 0000000..182df33 --- /dev/null +++ b/examples/piblinka.py @@ -0,0 +1,16 @@ +import sys +sys.path.append('/home/pi/Adafruit_Micropython_Blinka/src') +sys.path.append('/home/pi/Adafruit_Python_GPIO') + +#from Adafruit_GPIO import Platform +#print("Platform = ", Platform.platform_detect(), Platform.pi_version()) + +from adafruit_blinka.agnostic import board as agnostic_board +print("hello blinka!") +print("Found system type: %s (sys.plaform %s implementation %s) " % (agnostic_board, sys.platform, sys.implementation.name)) + +import board + +print(dir(board)) + +#print(adafruit_blinka.adafruit_blinka.agnostic.microcontroller) diff --git a/src/adafruit_blinka/agnostic/__init__.py b/src/adafruit_blinka/agnostic/__init__.py index 8d60cff..89d0646 100755 --- a/src/adafruit_blinka/agnostic/__init__.py +++ b/src/adafruit_blinka/agnostic/__init__.py @@ -4,10 +4,7 @@ environment is established, can choose various routes to make available and re-export common modules and operations, depending on platform support """ -import gc import sys -gc.collect() - # We intentionally are patching into this namespace as module names so skip the name check. # pylint: disable=invalid-name @@ -22,10 +19,18 @@ if microcontroller is not None: elif microcontroller == "pyboard": microcontroller = "stm32" board = "pyboard" + elif microcontroller == "linux": + from Adafruit_GPIO import Platform + if Platform.platform_detect() == Platform.RASPBERRY_PI: + if Platform.pi_version() == 1: + board = "raspi_1" + elif Platform.pi_version() == 2: + board = "raspi_2" + elif Platform.pi_version() == 3: + board = "raspi_3" implementation = sys.implementation.name if implementation == "micropython": from utime import sleep -elif implementation == "circuitpython": +elif implementation == "circuitpython" or implementation == "cpython": from time import sleep -gc.collect() diff --git a/src/adafruit_blinka/board/raspi_23.py b/src/adafruit_blinka/board/raspi_23.py new file mode 100644 index 0000000..789521a --- /dev/null +++ b/src/adafruit_blinka/board/raspi_23.py @@ -0,0 +1,13 @@ +# Pins dont exist in CPython so...lets make our own! +class Pin: + def __init__(self, name, bcm_number): + self._name = name + self._number = bcm_number + +SDA = Pin("SDA", 2) +SCL = Pin("SCL", 3) +D4 = Pin("BCM 4", 4) +D17 = Pin("BCM 17", 17) +D18 = Pin("BCM 18", 18) + +# TODO: more here... diff --git a/src/board.py b/src/board.py index d1c04c4..b941174 100755 --- a/src/board.py +++ b/src/board.py @@ -37,6 +37,8 @@ elif board == "nodemcu": from adafruit_blinka.board.nodemcu import * elif board == "pyboard": from adafruit_blinka.board.pyboard import * +elif board == "raspi_2" or board == "raspi_3": + from adafruit_blinka.board.raspi_23 import * elif "sphinx" in sys.modules: pass else: -- 2.49.0