Creé este repositorio debido a la falta de información sobre el manejo GPIO con Bananapi m2 cero, así que mi propósito a través de esta pequeña guía es hacer la vida un poco más fácil en cuento a este tema.
Hola a todos soy su amigo TuryRx el motivo de abrir este ko-if para con su apoyo seguir el desarrollo y mantenimiento de imágenes sobre banana pi, ya que es algo complicado generar imágenes e información sobre este tipo de placas de desarrollo y su apoyo me ayudaría mucho a seguir desarrollando no solo para esta placa si no para más así como darme apoyo para seguir compartiéndoles todo lo que pueda, de antemano les agradezco a todos los que me puedan apoyar y aunque no lo puedan hacer me alegra mucho que mi contenido les pueda servir.
-Problema con puerto Ethernet solucionado.
-Problema con libreria oled solucionado.
-Problema con uso de librerías RPI.GPIO Solucionado.
-Problema con versiones de librerías solucionado.
-Problema con tabla gpio solucionado.
-Problema de instalación automática solucionado.
-Problema con libreria oled solucionado.
-Problema con el uso de la librería RPI.GPIO solucionado.
-Problema con dependencias faltantes solucionado.
-Nueva tabla gpio con pines corregidos (comando: sudo gpioread)
-Incremento de memoria swap a 1G automático
-Detección de eventos en pines gpio corregida y funcional
-Implementación de uso de resistencias pull up corregida y funcional
-Ejemplos disponibles y uso de pines gpio (https://github.com/TuryRx/Bananapi-m2-zero-GPIO-files)
Mediante la instalación rápida solo se tendrá que seleccionar su directorio una vez lo solicite (Ejemplo:/home/(su_directorio)).
Además de que se tendrá que tener en cuenta que la instalación tardara un poco y que tal vez tengan que ejecutar el script una segunda vez para evitar fallos que se hayan podido suscitar durante la instalación.
sudo git clone https://github.com/TuryRx/Banana-pi-m2-zero-GPIO.git
cd Banana-pi-m2-zero-GPIO
sudo chmod 777 -R Banana_Pi_M2Z_GPIO.sh
sudo ./Banana_Pi_M2Z_GPIO.sh
Para terminar ahora solo quedaria habilitar GPIO e I2C
Usuario | Contraseña |
---|---|
roxas | pi |
root | pi |
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y software-properties-common
sudo add-apt-repository -y universe
sudo add-apt-repository -y multiverse
sudo add-apt-repository -y restricted
sudo apt-get update -y
sudo apt-get upgrade -y
sudo apt-get install -y \
inxi \
git \
build-essential \
python3-pip \
python3-dev \
python3-smbus \
i2c-tools \
vsftpd \
python3-pil \
python3-setuptools \
libfreetype6-dev \
libjpeg8-dev \
libsdl1.2-dev \
libsdl-dev \
libportmidi-dev \
libsdl-ttf2.0-dev \
libsdl-mixer1.2-dev \
libsdl-image1.2-dev \
libjpeg-dev \
python-dev \
lm-sensors \
unrar \
libgpiod2 \
python3-libgpiod \
gpiod \
python3-all \
python3-all-dev \
debhelper \
armbian-config
sudo pip3 install setuptools==58.3.0
sudo pip3 install wheel==0.37.0
sudo pip3 install pyserial==3.5
sudo pip3 install pyusb==1.2.1
sudo pip3 install pyftdi==0.54.0
sudo pip3 install Adafruit-PureIO==1.1.9
sudo pip3 install Adafruit-PlatformDetect==3.22.0
sudo pip3 install Adafruit-Blinka==7.1.1
sudo pip3 install smbus2==0.4.1
sudo pip3 install Deprecated==1.2.13
sudo pip3 install Pillow==9.4.0
sudo pip3 install RPi.GPIO==0.6.3
sudo pip3 install spidev==3.5
sudo pip3 install argcomplete==2.1.1
sudo pip3 install wrapt==1.14.0
sudo pip3 install pusherclient==0.3.0
sudo pip3 install psutil==5.8.0
sudo pip3 install oauthlib==3.1.1
sudo pip3 install requests-oauthlib==1.3.0
sudo pip3 install tweepy==4.2.0
sudo pip3 install sgmllib3k==1.0.0
sudo pip3 install feedparser==6.0.8
sudo pip3 install subprocess.run==0.0.8
sudo pip3 install vcgencmd==0.1.1
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git
cd Adafruit_Python_GPIO
sudo python3 setup.py install
cd
git clone https://github.com/bontango/BPI-WiringPi2.git
cd BPI-WiringPi2
sudo chmod 777 build
sudo ./build
cd
git clone https://github.com/GrazerComputerClub/RPi.GPIO.git
cd RPi.GPIO
sudo python3 setup.py install
cd
git clone https://github.com/LeMaker/RPi.GPIO_BP -b bananapi
cd RPi.GPIO_BP
sudo python3 setup.py install
cd
git clone https://github.com/codelectron/ssd1306.git
cd ssd1306
sudo python3 setup.py install
cd
git clone https://github.com/rm-hull/luma.oled.git
cd luma.oled
sudo python3 setup.py install
cd
git clone https://github.com/rm-hull/luma.examples.git
cd luma.examples
sudo -H pip install -e .
cd
git clone https://github.com/TuryRx/Bananapi-m2-zero-GPIO-files.git
git clone https://github.com/BPI-SINOVOIP/BPI-WiringPi2.git
cd BPI-WiringPi2
sudo chmod 777 build
sudo ./build
cd
git clone https://github.com/BPI-SINOVOIP/RPi.GPIO.git
cd RPi.GPIO
sudo python3 setup.py install
cd
sudo pip3 install Adafruit-SSD1306==1.6.2
sudo pip3 install ssd1306==0.2.0
sudo pip3 install adafruit-circuitpython-busdevice==5.1.0
sudo pip3 install adafruit-circuitpython-framebuf==1.4.7
sudo pip3 install adafruit-circuitpython-ssd1306==2.12.2
sudo pip3 install cbor2==5.4.2
sudo pip3 install luma.oled==3.8.1
cd Bananapi-m2-zero-GPIO-files/bpi-servicee
cd etc
sudo cp -r * /etc
cd ..
cd usr
sudo cp -r * /usr
cd ..
cd var
sudo cp -r * /var
cd ..
sudo mv gpioread.sh /usr/local/bin/gpioread
sudo chmod o+x /usr/local/bin/gpioread
sudo chmod 777 /usr/local/bin/gpioread
sudo touch /var/lib/bananapi/gpio
sudo chmod o+x /var/lib/bananapi/gpio
sudo chmod 777 /var/lib/bananapi/gpio
sudo nano /var/lib/bananapi/board.sh
BOARD=bpi-m3
BOARD_AUTO=bpi-m3
BOARD_OLD=bpi-m64
BOARD=bpi-m2z
BOARD_AUTO=bpi-m2z
BOARD_OLD=bpi-m64
cd Bananapi-m2-zero-GPIO-files
sudo chmod 777 led_m2z.py
sudo mv led_m2z.py /home/$directory
sudo chmod 777 led_button_m2z.py
sudo mv led_button_m2z.py /home/$directory
sudo chmod 777 button_state_m2z.py
sudo mv button_state_m2z.py /home/$directory
sudo chmod 777 button_event_m2z.py
sudo mv button_event_m2z.py /home/$directory
sudo chmod 777 gpio_funcion_m2z.py
sudo mv gpio_funcion_m2z.py /home/$directory
sudo chmod 777 info_board_m2z.py
sudo mv info_board_m2z.py /home/$directory
sudo chmod 777 info_gpio_m2z.py
sudo mv info_gpio_m2z.py /home/$directory
sudo chmod 777 pwm_m2z.py
sudo mv pwm_m2z.py /home/$directory
sudo chmod 777 button_pull_up_m2z.py
sudo mv button_pull_up_m2z.py /home/$directory
sudo chmod 777 gpio_read_pin_m2z.py
sudo mv gpio_read_pin_m2z.py /home/$directory
sudo chmod 777 button_event_rising_m2z.py
sudo mv button_event_rising_m2z.py /home/$directory
sudo chmod 777 sys_stats.py
sudo mv sys_stats.py /home/$directory/luma.examples/examples/
sudo adduser (your user) i2c
sudo armbian-config
Uso | Comando |
---|---|
Cambiar modo de pin | gpio -1 mode (Numero_de_Pin) (Estado: in o out) |
Escribir estado de pin | gpio -1 write (Numero_de_Pin) (Modo: 1 o 0) |
Leer estado de pin | gpio -1 read (Numero_de_Pin) |
Activar o Desactivar resistencia pull-up | gpio -1 mode (Numero_de_Pin) (Modo: up o down) |
A la hora de ampliar la memoria de intercambio(swap), se recomienda dejar por defecto solo el doble de la memoria actual, esto en caso de placas como esta aun que se puede establecer la que uno desee utilizar.
Para aumentar la memoria actual al doble solo ejecutar por defecto aumentara 735M para tener 1G.
sudo chmod 777 swap_memori.sh
sudo ./swap_memori.sh
Para aumentar por otra cantidad modificar la línea (sudo fallocate -l 735M) por la cantidad que quieran.
sudo chmod 777 swap_memori.sh
sudo sed -i 's/sudo fallocate -l 735M /sudo fallocate -l (Cantidad #M o #G) /g' swap_memori.sh
sudo ./swap_memori.sh
Puedes encontrar ejemplos para la pantalla oled en el directorio /home/$user/gpio_files/luma.examples/examples/ y otros ejemplos sobre uso de leds, botones, eventos, pull_up, pwm, informacion de sistema y deteccion de eventos en el directorio /home/$user/gpio-examples/
▶️ Banana PI M2 Zero Configuracion y Uso de GPIO ✔️
https://www.youtube.com/watch?v=LGlon4DOIwc&t=18s
▶️ Banana PI M2 Zero GPIO Script ✔️🔥
https://www.youtube.com/watch?v=yt4lLYp91zM
▶️ Banana PI M2 Zero Nuevas Imagesnes ✔️🔥
https://www.youtube.com/watch?v=d5MLndnQ6w4&t=198s
▶️ TuryRx 🔥
https://www.youtube.com/channel/UC2qm0bsEO0u1wBgiINs8-5w
https://www.mediafire.com/file/f3zop887yjmqvo6/Armbian_23.02.0-trunk.0264_Bananapim2zero_focal_current_5.15.93_server.rar/file
https://www.mediafire.com/file/fjba6l2uqfcstqq/Armbian_23.02.2_Bananapim2zero_focal_current_5.15.93_server_minimal.rar/file
https://www.mediafire.com/file/yms7q2hiyqeob6u/Armbian_23.02.0-trunk_Bananapim2zero_focal_current_5.15.93_xfce_desktop.rar/file
https://www.mediafire.com/file/fvjhy045ybfc81n/Armbian_22.11.0-trunk_Bananapim2zero_jammy_current_5.15.80_server.rar/file
https://www.mediafire.com/file/509uuchjp8jmk34/Armbian_22.11.0-trunk_Bananapim2zero_jammy_current_5.15.80_server_minimal.rar/file
https://www.mediafire.com/file/250razne7xr4ocq/Armbian_22.11.0-trunk_Bananapim2zero_jammy_current_5.15.80_xfce_desktop.rar/file
https://www.mediafire.com/file/vjcj0sqdj3hhakn/Armbian_22.11.0-trunk_Bananapim2zero_jammy_current_5.15.80_i3-wm_desktop.rar/file
https://www.mediafire.com/file/kx4zckpabug0y87/Armbian_23.02.0-trunk.0264_Bananapim2zero_buster_current_5.15.93_server.rar/file
https://www.mediafire.com/file/pjqn7xw9bqbejab/Armbian_23.02.0-trunk.0264_Bananapim2zero_buster_current_5.15.93_server_minimal.rar/file
https://www.mediafire.com/file/uofhauefzrkxq91/Armbian_23.02.0-trunk.0264_Bananapim2zero_buster_current_5.15.93_lxde_desktop.img.rar/file
https://www.mediafire.com/file/4i761iai2eazgu9/Armbian_23.02.0-trunk.0264_Bananapim2zero_buster_current_5.15.93_mate_desktop.rar/file
https://www.mediafire.com/file/0jilyu1f2ohtvqk/Armbian_22.11.0-trunk_Bananapim2zero_bullseye_current_5.15.80_server.rar/file
https://www.mediafire.com/file/1yltw5sk4q4vzzu/Armbian_22.11.0-trunk_Bananapim2zero_bullseye_current_5.15.80_minimal.img.rar/file
coming soon
coming soon
https://www.mediafire.com/file/6vuzdxlawoomisq/LibreELEC_H2_Bananapi_M2_Zero.rar/file
https://www.lisy.dev/
https://forum.banana-pi.org/u/bontango
https://forum.banana-pi.org/t/configuracion-y-uso-de-gpio-bpi-m2-zero/13179/79
https://github.com/adafruit/Adafruit_Python_GPIO
https://github.com/adafruit/Adafruit_Python_SSD1306
https://learn.adafruit.com/circuitpython-on-raspberrypi-linux/installing-circuitpython-on-raspberry-pi#enable-i2c-and-spi-3-5
https://unipython.com/gpio-raspberry-pi-explicacion-uso-encender-led/
https://github.com/codelectron/ssd1306
https://github.com/PyAV-Org/PyAV/issues/491
https://github.com/rm-hull/luma.oled/wiki/Usage-&-Benchmarking
https://github.com/rm-hull/luma.examples
https://luma-oled.readthedocs.io/en/latest/hardware.html
https://github.com/rm-hull/luma.oled
https://www.raspberrypi-spy.co.uk/2018/04/i2c-oled-display-module-with-raspberry-pi/
https://stackoverflow.com/questions/47694421/pil-issue-oserror-cannot-open-resource
https://github.com/adafruit/Adafruit_CircuitPython_SSD1306
https://github.com/adafruit/Adafruit_Blinka
https://ssd1306.readthedocs.io/en/latest/python-usage.html
https://ssd1306.readthedocs.io/en/latest/index.html
https://ssd1306.readthedocs.io/en/latest/intro.html
https://programmerclick.com/article/48301644742/
https://github.com/BPI-SINOVOIP/RPi.GPIO
https://github.com/LeMaker/RPi.GPIO_BP/blob/bananapro/test/info_RPi.GPIO.py
https://github.com/GrazerComputerClub/RPi.GPIO
https://github.com/BPI-SINOVOIP/BPI-WiringPi2