Outils pour utilisateurs

Outils du site


xu4

ODROID-XU4

pistes

Install gpio

Partie C

git clone https://github.com/hardkernel/wiringPi.git
cd wiringPi
./build

gpio readall -a pour vérifier

gpio readall -a
 +------+-----+----------+------+---+----+--- Model ODROID-XU3/4 ---+----+---+------+----------+-----+------+
 | GPIO | wPi |   Name   | Mode | V | DS | PU/PD | Physical | PU/PD | DS | V | Mode |   Name   | wPi | GPIO |
 +------+-----+----------+------+---+----+-------+----++----+-------+----+---+------+----------+-----+------+
 |      |     |     3.3V |      |   |    |       |  1 || 2  |       |    |   |      | 5V       |     |      |
 |  209 |   8 | I2C1.SDA | ALT1 | 1 |  0 |   P/U |  3 || 4  |       |    |   |      | 5V       |     |      |
 |  210 |   9 | I2C1.SCL | ALT1 | 1 |  0 |   P/U |  5 || 6  |       |    |   |      | GND(0V)  |     |      |
 |   18 |   7 | GPIO. 18 |   IN | 0 |  0 |   P/D |  7 || 8  | DSBLD | 0  | 1 | ALT1 | UART0.TX | 15  | 172  |
 |      |     |  GND(0V) |      |   |    |       |  9 || 10 | DSBLD | 0  | 0 | ALT1 | UART0.RX | 16  | 171  |
 |  174 |   0 | GPIO.174 | ALT7 | 1 |  0 |   P/U | 11 || 12 | DSBLD | 0  | 0 | ALT1 | GPIO.173 | 1   | 173  |
 |   21 |   2 | GPIO. 21 |   IN | 0 |  0 |   P/D | 13 || 14 |       |    |   |      | GND(0V)  |     |      |
 |   22 |   3 | GPIO. 22 |   IN | 0 |  0 |   P/D | 15 || 16 | P/D   | 0  | 0 | IN   | GPIO. 19 | 4   | 19   |
 |      |     |     3.3V |      |   |    |       | 17 || 18 | P/D   | 0  | 0 | IN   | GPIO. 23 | 5   | 23   |
 |  192 |  12 |     MOSI | ALT1 | 1 |  0 |   P/U | 19 || 20 |       |    |   |      | GND(0V)  |     |      |
 |  191 |  13 |     MISO | ALT1 | 1 |  0 |   P/U | 21 || 22 | P/U   | 1  | 1 | IN   | GPIO. 24 | 6   | 24   |
 |  189 |  14 |     SCLK | ALT1 | 0 |  0 |   P/U | 23 || 24 | P/D   | 0  | 1 | OUT  | CE0      | 10  | 190  |
 |      |     |  GND(0V) |      |   |    |       | 25 || 26 | P/D   | 0  | 1 | OUT  | GPIO. 25 | 11  | 25   |
 |  187 |  30 | I2C5.SDA | ALT2 | 1 |  0 |   P/U | 27 || 28 | P/U   | 0  | 1 | ALT2 | I2C5.SCL | 31  | 188  |
 |   28 |  21 | GPIO. 28 |   IN | 0 |  0 |   P/D | 29 || 30 |       |    |   |      | GND(0V)  |     |      |
 |   30 |  22 | GPIO. 30 |   IN | 0 |  0 |   P/D | 31 || 32 | P/D   | 0  | 0 | IN   | GPIO. 29 | 26  | 29   |
 |   31 |  23 | GPIO. 31 |   IN | 0 |  0 |   P/D | 33 || 34 |       |    |   |      | GND(0V)  |     |      |
 |      |  24 | POWER ON |      |   |    |       | 35 || 36 | P/D   | 0  | 0 | IN   | GPIO. 33 | 27  | 33   |
 |      |  25 |    AIN.0 |      |   |    |       | 37 || 38 |       |    |   |      | 1V8      | 28  |      |
 |      |     |  GND(0V) |      |   |    |       | 39 || 40 |       |    |   |      | AIN.3    | 29  |      |
 +------+-----+----------+------+---+----+-------+----++----+-------+----+---+------+----------+-----+------+
 | GPIO | wPi |   Name   | Mode | V | DS | PU/PD | Physical | PU/PD | DS | V | Mode |   Name   | wPi | GPIO |
 +------+-----+----------+------+---+----+--- Model ODROID-XU3/4 ---+----+---+------+----------+-----+------+

Partie python

apt install python python3 python-pip python3-pip
pip install weel
pip install odroid-wiringpi

dans /usr/local/lib/python2.7/dist-packages/odroid_wiringpi.py on trouve la liste des fonctions

#!/usr/bin/env python
# bouton sur 29,31,33 pull-down _>wPi  21,22,23
# contact vers 12/PWON 20,22 BOUTON 29/1.8V
 
import odroid_wiringpi as wpi
import time
 
wpi.wiringPiSetup()
wpi.pinMode(0, 1)
 
while True:
  bt1 =  wpi.digitalRead(21)
  bt2 =  wpi.digitalRead(22)
  bt3 =  wpi.digitalRead(23)
  btsw =  wpi.digitalRead(1)
  if bt1:
    print("bouton 1")
  if bt2:
    print("bouton 2")
  if bt3:
    print("bouton 3")
 
  time.sleep(1)

programmation horaire

évidement il faut la petite batterie.
shutdown -P permet de rallumer avec le bouton power sinon shutdown opère un power-off et le bouton est innopérant ??

de https://wiki.odroid.com/odroid-xu4/application_note/rtc_wakeup

hwclock -w # pour écrire l'heure
hwclock -r && date # pour verifier
 
# rallumer 1 min apres
echo 0 | sudo tee /sys/class/rtc/rtc0/wakealarm
echo `date '+%s' -d '+ 1 minutes'` | sudo tee /sys/class/rtc/rtc0/wakealarm
 
# Check if "alarm_IRQ" appears to "yes".
cat /proc/driver/rtc
    rtc_time	: 02:45:30
    rtc_date	: 2017-09-05
    alrm_time	: 02:46:28
    alrm_date	: 2017-09-05
    alarm_IRQ	: yes
    alrm_pending	: no
    update IRQ enabled	: no
    periodic IRQ enabled	: no
    periodic IRQ frequency	: 1
    max user IRQ frequency	: 64
    24hr		: yes
 
#test
poweroff
 
# se rallume 1 minute apres

programme horaire bash

<proghoraire.tgz

#!/bin/bash
ALLUM_MATIN='08:00'
ETEIND_MATIN='09:00'
ALLUM_SOIR='16:00'
ETEIND_SOIR='22:00'
 
DATE_ALLUM_MATIN=`date '+%s' -d $ALLUM_MATIN`
DATE_ALLUM_SOIR=`date '+%s' -d $ALLUM_SOIR`
DATE_ETEIND_MATIN=`date '+%s' -d $ETEIND_MATIN`
DATE_ETEIND_SOIR=`date '+%s' -d $ETEIND_SOIR`
DATEHEURE=`date '+%s'`
 
echo "vérification heure"
hwclock -w # pour écrire l'heure
hwclock -r && date # pour verifier
# test si on est dans la tranche avant matin
if [ $DATEHEURE -lt $DATE_ALLUM_MATIN ]
then
        echo "on est dans la tranche avant matin demarrage $ALLUM_MATIN arret $ETEIND_MATIN"
        shutdown -P $ETEIND_MATIN
        echo 0 | sudo tee /sys/class/rtc/rtc0/wakealarm
        echo `date '+%s' -d "$ALLUM_MATIN"` | sudo tee /sys/class/rtc/rtc0/wakealarm
# test si on est dans la tranche du matin
elif [ $DATEHEURE -gt $DATE_ALLUM_MATIN ] && [ $DATEHEURE -lt $DATE_ETEIND_MATIN ]
then
        echo "on est dans la tranche matin arret $ETEIND_MATIN demarrage $ALLUM_SOIR"
        shutdown -P $ETEIND_MATIN
        echo 0 | sudo tee /sys/class/rtc/rtc0/wakealarm
        echo `date '+%s' -d "$ALLUM_SOIR"` | sudo tee /sys/class/rtc/rtc0/wakealarm
# test si on est entre les 2
elif [ $DATEHEURE -gt $DATE_ETEIND_MATIN ] && [ $DATEHEURE -lt $DATE_ALLUM_SOIR ]
then
        echo "on est entre les 2 soir arret $ETEIND_SOIR demarrage $ALLUM_SOIR"
        shutdown -P $ETEIND_SOIR
        echo 0 | sudo tee /sys/class/rtc/rtc0/wakealarm
        echo `date '+%s' -d "$ALLUM_SOIR"` | sudo tee /sys/class/rtc/rtc0/wakealarm
# test si on est dans la tranche du soir
elif [ $DATEHEURE -gt $DATE_ALLUM_SOIR ] && [ $DATEHEURE -lt $DATE_ETEIND_SOIR ]
then
        echo "on est dans la tranche soir arret $ETEIND_SOIR demarrage $ALLUM_MATIN"
        shutdown -P $ETEIND_SOIR
        echo 0 | sudo tee /sys/class/rtc/rtc0/wakealarm
        echo `date '+%s' -d "tomorrow $ALLUM_MATIN"` | sudo tee /sys/class/rtc/rtc0/wakealarm
else
# sinon fonctionne 2 heures
        echo "hors tranche horaire marche 2 heures"
        shutdown -P 2:00
fi

mise a jour automatique

#!/bin/bash
# mise a jour automatique
SITE_SOURCE='http://quelquepart/maj.tgz'
SCRIPTE='http://surlereseau/script_maj.sh'
 
cd /home/pi
rm -rf /home/pi/maj.tgz
wget $SITE_SOURCE
RET=$?
if [ $RET -eq 0 ]
then
        SUM=`md5sum -b maj.tgz | awk '{ print $1 }'`
        if [ "$SUM" != "`cat maj.tgz_sum`" ]
        then
                echo -n $SUM > maj.tgz_sum
                cd Desktop
                sudo tar xvf ../maj.tgz
                sudo chown pi:pi -R *
        fi
fi
cd /home/pi
rm -rf /home/pi/script_maj.sh
wget $SCRIPTE
RET=$?
if [ $RET -eq 0 ] && [ -e script_maj.sh ]
then
        SUM=`md5sum script_maj.sh | awk '{ print $1 }'`
        if [ "$SUM" = "`cat script_maj.sh_sum`" ]
        then
                exit 0
        else
                echo -n $SUM > script_maj.sh_sum
                cd Desktop
                sudo  bash ../script_maj.sh
                sudo chown pi:pi -R *
        fi
fi

pour l'aureon dans /etc/modprobe.d/aureon.conf options snd-usb-audio nrpacks=1

xu4.txt · Dernière modification: 2022/03/23 21:49 de gepeto