Removed requirement for raspi-blinka.py
This commit is contained in:
parent
05ec62caba
commit
0160ef6e97
@ -1,19 +0,0 @@
|
|||||||
import board
|
|
||||||
import digitalio
|
|
||||||
import busio
|
|
||||||
|
|
||||||
print("Hello, blinka!")
|
|
||||||
|
|
||||||
# Try to create a Digital input
|
|
||||||
pin = digitalio.DigitalInOut(board.D4)
|
|
||||||
print("Digital IO ok!")
|
|
||||||
|
|
||||||
# Try to create an I2C device
|
|
||||||
i2c = busio.I2C(board.SCL, board.SDA)
|
|
||||||
print("I2C ok!")
|
|
||||||
|
|
||||||
# Try to create an SPI device
|
|
||||||
spi = busio.SPI(board.SCLK, board.MOSI, board.MISO)
|
|
||||||
print("SPI ok!")
|
|
||||||
|
|
||||||
print("done!")
|
|
155
raspi-blinka.py
155
raspi-blinka.py
@ -1,155 +0,0 @@
|
|||||||
"""
|
|
||||||
Adafruit Raspberry Pi Blinka Setup Script
|
|
||||||
(C) Adafruit Industries, Creative Commons 3.0 - Attribution Share Alike
|
|
||||||
|
|
||||||
Written by Melissa LeBlanc-Williams for Adafruit Industries
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
|
|
||||||
try:
|
|
||||||
from adafruit_shell import Shell
|
|
||||||
except ImportError:
|
|
||||||
raise RuntimeError("The library 'adafruit_shell' was not found. To install, try typing: sudo pip3 install adafruit-python-shell")
|
|
||||||
|
|
||||||
shell = Shell()
|
|
||||||
shell.group="Blinka"
|
|
||||||
default_python = 3
|
|
||||||
blinka_minimum_python_version = 3.7
|
|
||||||
|
|
||||||
def default_python_version(numeric=True):
|
|
||||||
version = shell.run_command("python -c 'import platform; print(platform.python_version())'", suppress_message=True, return_output=True)
|
|
||||||
if numeric:
|
|
||||||
try:
|
|
||||||
return float(version[0:version.rfind(".")])
|
|
||||||
except ValueError:
|
|
||||||
return None
|
|
||||||
return version
|
|
||||||
|
|
||||||
def get_python3_version(numeric=True):
|
|
||||||
version = shell.run_command("python3 -c 'import platform; print(platform.python_version())'", suppress_message=True, return_output=True)
|
|
||||||
if numeric:
|
|
||||||
return float(version[0:version.rfind(".")])
|
|
||||||
return version
|
|
||||||
|
|
||||||
def check_blinka_python_version():
|
|
||||||
"""
|
|
||||||
Check the Python 3 version for Blinka (which may be a later version than we're running this script with)
|
|
||||||
"""
|
|
||||||
print("Making sure the required version of Python is installed")
|
|
||||||
current = get_python3_version(False)
|
|
||||||
current_major, current_minor = current.split(".")[0:2]
|
|
||||||
required_major, required_minor = str(blinka_minimum_python_version).split(".")[0:2]
|
|
||||||
|
|
||||||
if int(current_major) >= int(required_major) and int(current_minor) >= int(required_minor):
|
|
||||||
return
|
|
||||||
|
|
||||||
shell.bail("Blinka requires a minimum of Python version {} to install, current one is {}. Please update your OS!".format(blinka_minimum_python_version, current))
|
|
||||||
|
|
||||||
def sys_update():
|
|
||||||
print("Updating System Packages")
|
|
||||||
if not shell.run_command("sudo apt-get update --allow-releaseinfo-change"):
|
|
||||||
shell.bail("Apt failed to update indexes!")
|
|
||||||
print("Upgrading packages...")
|
|
||||||
if not shell.run_command("sudo apt-get -y upgrade"):
|
|
||||||
shell.bail("Apt failed to install software!")
|
|
||||||
|
|
||||||
def set_raspiconfig():
|
|
||||||
"""
|
|
||||||
Enable various Raspberry Pi interfaces
|
|
||||||
"""
|
|
||||||
print("Enabling I2C")
|
|
||||||
shell.run_command("sudo raspi-config nonint do_i2c 0")
|
|
||||||
print("Enabling SPI")
|
|
||||||
shell.run_command("sudo raspi-config nonint do_spi 0")
|
|
||||||
print("Enabling Serial")
|
|
||||||
if not shell.run_command("sudo raspi-config nonint do_serial_hw 0", suppress_message=True):
|
|
||||||
shell.run_command("sudo raspi-config nonint do_serial 0")
|
|
||||||
print("Enabling SSH")
|
|
||||||
shell.run_command("sudo raspi-config nonint do_ssh 0")
|
|
||||||
print("Enabling Camera")
|
|
||||||
shell.run_command("sudo raspi-config nonint do_camera 0")
|
|
||||||
print("Disable raspi-config at Boot")
|
|
||||||
shell.run_command("sudo raspi-config nonint disable_raspi_config_at_boot 0")
|
|
||||||
|
|
||||||
def update_python():
|
|
||||||
print("Making sure Python 3 is the default")
|
|
||||||
if default_python < 3:
|
|
||||||
shell.run_command("sudo apt-get install -y python3 git python3-pip")
|
|
||||||
shell.run_command("sudo update-alternatives --install /usr/bin/python python $(which python2) 1")
|
|
||||||
shell.run_command("sudo update-alternatives --install /usr/bin/python python $(which python3) 2")
|
|
||||||
shell.run_command("sudo update-alternatives --skip-auto --config python")
|
|
||||||
|
|
||||||
def update_pip():
|
|
||||||
print("Making sure PIP and setuptools is installed")
|
|
||||||
shell.run_command("sudo apt-get install --upgrade -y python3-pip python3-setuptools")
|
|
||||||
|
|
||||||
def install_blinka(user=False):
|
|
||||||
print("Installing latest version of Blinka locally")
|
|
||||||
shell.run_command("sudo apt-get install -y i2c-tools libgpiod-dev python3-libgpiod")
|
|
||||||
pip_command = "pip3 install --upgrade"
|
|
||||||
username = None
|
|
||||||
if user:
|
|
||||||
username = os.environ["SUDO_USER"]
|
|
||||||
shell.run_command(f"{pip_command} RPi.GPIO", run_as_user=username)
|
|
||||||
shell.run_command(f"{pip_command} adafruit-blinka", run_as_user=username)
|
|
||||||
|
|
||||||
# Custom function to run additional commands for Pi 5
|
|
||||||
def check_and_install_for_pi5(pi_model):
|
|
||||||
if pi_model.startswith("RASPBERRY_PI_5"):
|
|
||||||
print("Detected Raspberry Pi 5, applying additional fixes...")
|
|
||||||
os.system("sudo apt remove python3-rpi.gpio")
|
|
||||||
os.system("pip3 install rpi-lgpio")
|
|
||||||
else:
|
|
||||||
print(f"Detected {pi_model}, no additional fixes needed.")
|
|
||||||
|
|
||||||
def main():
|
|
||||||
global default_python
|
|
||||||
shell.clear()
|
|
||||||
# Check Raspberry Pi and Bail
|
|
||||||
pi_model = shell.get_board_model()
|
|
||||||
print("""This script configures your
|
|
||||||
Raspberry Pi and installs Blinka
|
|
||||||
""")
|
|
||||||
print("{} detected.\n".format(pi_model))
|
|
||||||
if not shell.is_raspberry_pi():
|
|
||||||
shell.bail("Non-Raspberry Pi board detected. This must be run on a Raspberry Pi")
|
|
||||||
os_identifier = shell.get_os()
|
|
||||||
if os_identifier != "Raspbian":
|
|
||||||
shell.bail("Sorry, the OS detected was {}. This script currently only runs on Raspberry Pi OS.".format(os_identifier))
|
|
||||||
if not shell.is_python3():
|
|
||||||
shell.bail("You must be running Python 3. Older versions have now been deprecated.")
|
|
||||||
shell.check_kernel_update_reboot_required()
|
|
||||||
python_version = default_python_version()
|
|
||||||
if not python_version:
|
|
||||||
shell.warn("WARNING No Default System python tied to the `python` command. It will be set to Version 3.")
|
|
||||||
default_python = 0
|
|
||||||
if not shell.prompt("Continue?"):
|
|
||||||
shell.exit()
|
|
||||||
elif int(default_python_version()) < 3:
|
|
||||||
shell.warn("WARNING Default System python version is {}. It will be updated to Version 3.".format(default_python_version(False)))
|
|
||||||
default_python = 2
|
|
||||||
if not shell.prompt("Continue?"):
|
|
||||||
shell.exit()
|
|
||||||
sys_update()
|
|
||||||
check_blinka_python_version()
|
|
||||||
set_raspiconfig()
|
|
||||||
update_python()
|
|
||||||
update_pip()
|
|
||||||
install_blinka(True)
|
|
||||||
|
|
||||||
# Check and install for Pi 5 if detected
|
|
||||||
check_and_install_for_pi5(pi_model)
|
|
||||||
|
|
||||||
# Done
|
|
||||||
print("""DONE.
|
|
||||||
|
|
||||||
Settings take effect on next boot.
|
|
||||||
""")
|
|
||||||
shell.prompt_reboot()
|
|
||||||
|
|
||||||
# Main function
|
|
||||||
if __name__ == "__main__":
|
|
||||||
shell.require_root()
|
|
||||||
main()
|
|
30
setup.sh
30
setup.sh
@ -64,7 +64,7 @@ PROJECT_DIR="/home/$USER/Desktop/temp-sensor"
|
|||||||
if [ ! -d "$PROJECT_DIR" ]; then
|
if [ ! -d "$PROJECT_DIR" ]; then
|
||||||
echo -e "$line\nCreating 'temp-sensor' in Desktop directory for current user.\n$line\n"
|
echo -e "$line\nCreating 'temp-sensor' in Desktop directory for current user.\n$line\n"
|
||||||
mkdir -p "$PROJECT_DIR"
|
mkdir -p "$PROJECT_DIR"
|
||||||
cp "./raspi-blinka.py" "./temp-calc.py" "$PROJECT_DIR/"
|
cp "./temp-calc.py" "./blinka-test.py" "$PROJECT_DIR/"
|
||||||
echo -e "$line\nCreated '$PROJECT_DIR' directory.\n$line\n"
|
echo -e "$line\nCreated '$PROJECT_DIR' directory.\n$line\n"
|
||||||
else
|
else
|
||||||
echo -e "$line\n$PROJECT_DIR already exists. Please delete the folder before running this script.\n$line\n\nExiting..."
|
echo -e "$line\n$PROJECT_DIR already exists. Please delete the folder before running this script.\n$line\n\nExiting..."
|
||||||
@ -73,17 +73,37 @@ fi
|
|||||||
|
|
||||||
# Create and activate Python virtual environment
|
# Create and activate Python virtual environment
|
||||||
cd "$PROJECT_DIR/"
|
cd "$PROJECT_DIR/"
|
||||||
chmod ugo+x ./raspi-blinka.py ./temp-calc.py
|
chmod 444 ./temp-calc.py ./blinka-test.py
|
||||||
python3 -m venv . --system-site-packages
|
python3 -m venv . --system-site-packages
|
||||||
echo -e "$line\nVirtual environment created.\n$line\n"
|
echo -e "$line\nVirtual environment created.\n$line\n"
|
||||||
echo -e "$line\nActivating virtual environment...\n$line\n"
|
echo -e "$line\nActivating virtual environment...\n$line\n"
|
||||||
source $PROJECT_DIR/bin/activate
|
source $PROJECT_DIR/bin/activate
|
||||||
|
|
||||||
echo -e "$line\nInstalling dependencies...\n$line\n"
|
echo -e "$line\nInstalling dependencies...\n$line\n"
|
||||||
pip3 install --upgrade setuptools click adafruit-python-shell adafruit-circuitpython-dht
|
pip3 install --upgrade setuptools click adafruit-python-shell adafruit-circuitpython-dht RPi.GPIO adafruit-blinka libgpiod
|
||||||
|
|
||||||
|
echo -e "$line\nSetting up raspiberry pi...\n$line\n"
|
||||||
|
sudo raspi-config nonint do_i2c 0
|
||||||
|
sudo raspi-config nonint do_spi 0
|
||||||
|
sudo raspi-config nonint do_serial_hw 0
|
||||||
|
sudo raspi-config nonint do_ssh 0
|
||||||
|
sudo raspi-config nonint do_camera 0
|
||||||
|
sudo raspi-config nonint disable_raspi_config_at_boot 0
|
||||||
|
|
||||||
|
if [! dpkg -l | grep -q i2c-tools]; then
|
||||||
|
sudo apt install -y i2c-tools
|
||||||
|
fi
|
||||||
|
if [! dpkg -l | grep -q libgpiod-dev]; then
|
||||||
|
sudo apt install -y i2c-tools
|
||||||
|
fi
|
||||||
|
if [! dpkg -l | grep -q python3-libgpiod]; then
|
||||||
|
sudo apt install -y i2c-tools
|
||||||
|
fi
|
||||||
|
|
||||||
|
python3 ./blinka-test.py
|
||||||
|
echo -e "$line\nSetup complete\n$line\n"
|
||||||
|
# sudo python3 raspi-blinka.py
|
||||||
|
|
||||||
echo -e "$line\nSetting up raspi-blinka...\n$line\n"
|
|
||||||
sudo python3 raspi-blinka.py
|
|
||||||
|
|
||||||
echo -e "\n\n\n$line$line$line\nSetup completed.\nExecute the command 'python3 temp-calc.py' to calculate\nthe temperature.\n# DESIGNED AND ENGINEERED BY KSHITIJ.\n# END OF SCRIPT\n$line$line$line\n\n\n"
|
echo -e "\n\n\n$line$line$line\nSetup completed.\nExecute the command 'python3 temp-calc.py' to calculate\nthe temperature.\n# DESIGNED AND ENGINEERED BY KSHITIJ.\n# END OF SCRIPT\n$line$line$line\n\n\n"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user