python-peripheryを使ってみる

1602/1604 LCDへの表示

GPIOのLチカの応用として、python-peripheryを使って1602/1604のLCDへの表示を試してみました。
こ ちらで公開されているコードをpython-peripheryに移植しただけです。
コードはこ ちらで公開しています。
起動時の引数でRS/Enable/D4/D5/D6/D7のGPIO番号と、表示する文字列を指定します。
表示する文字列は--textsの引数で複数指定することができます。
$ sudo -E python3 main.py --help
usage: main.py [-h] [--rs RS] [--enable ENABLE] [--d4 D4] [--d5 D5] [--d6 D6] [--d7 D7] [--text1 TEXT1] [--text2 TEXT2]
                   [--text3 TEXT3] [--text4 TEXT4] [--texts [TEXTS ...]]

optional arguments:
  -h, --help           show this help message and exit
  --rs RS              RS GPIO
  --enable ENABLE      ENABLE GPIO
  --d4 D4              D4 GPIO
  --d5 D5              D4 GPIO
  --d6 D6              D4 GPIO
  --d7 D7              D4 GPIO
  --text1 TEXT1        text of line1
  --text2 TEXT2        text of line2
  --text3 TEXT3        text of line3
  --text4 TEXT4        text of line4
  --texts [TEXTS ...]  a list of text

## for 1602 LCD
$ sudo -E python3 main.py --rs 23 --enable 24 --d4 14 --d5 15 --d6 17 --d7 18 --text1 'Hello!!' --text2 'World!!'

$ sudo -E python3 main.py --rs 23 --enable 24 --d4 14 --d5 15 --d6 17 --d7 18 --texts 'Hello!!' 'World!!'

## for 1604 LCD
$ sudo -E python3 main.py --rs 23 --enable 24 --d4 14 --d5 15 --d6 17 --d7 18 --text1 'Hello!!' --text2 'World!!' --text3 'Good!!' --text4 'Bye!!'

$ sudo -E python3 main.py --rs 23 --enable 24 --d4 14 --d5 15 --d6 17 --d7 18 --texts 'Hello!!' 'World!!' 'Good!!' 'Bye!!'

## for clear all text
$ sudo -E python3 main.py --rs 23 --enable 24 --d4 14 --d5 15 --d6 17 --d7 18

こんな感じで表示されます。
ホストにはluckfox pico pro/maxを使いました。


74HC595ライブラリを組み込んで、 74HC595経由で動かしてみました。
起動時の引数でDATA/LATCH/SHIFTのGPIO番号と、表示する文字列を指定します。
コードはこ ちらで公開しています。
$ sudo -E python3 main.py --help
usage: main.py [-h] [--data DATA] [--latch LATCH] [--shift SHIFT] [--text1 TEXT1] [--text2 TEXT2] [--text3 TEXT3]
               [--text4 TEXT4] [--texts [TEXTS ...]]

options:
  -h, --help           show this help message and exit
  --data DATA          DATA GPIO
  --latch LATCH        LATCH GPIO
  --shift SHIFT        SHIFT GPIO
  --text1 TEXT1        text of line1
  --text2 TEXT2        text of line2
  --text3 TEXT3        text of line3
  --text4 TEXT4        text of line4
  --texts [TEXTS ...]  a list of text

## for 1602 LCD
$ sudo -E python3 main.py --data 70 --latch 71 --shift 72 --text1 'Hello!!' --text2 'World!!'

$ sudo -E python3 main.py --data 70 --latch 71 --shift 72 --texts 'Hello!!' 'World!!'

## for 1604 LCD
$ sudo -E python3 main.py --data 70 --latch 71 --shift 72 --text1 'Hello!!' --text2 'World!!' --text3 'Good!!' --text4 'Bye!!'

$ sudo -E python3 main.py --data 70 --latch 71 --shift 72 --texts 'Hello!!' 'World!!' 'Good!!' 'Bye!!'

## for clear all text
$ sudo -E python3 main.py --data 70 --latch 71 --shift 72



PCF8574ライブラリを組み込んで、i2c経由で動かしてみました。
起動時の引数でi2cのデバイスファイル、i2cアドレスと、表示する文字列を指定します。
ホスト側のピンはSCL/SDAの2ポートだけ使います。
コードはこ ちらで公開しています。
$ sudo -E python3 ./main.py --help
usage: main.py [-h] [--device DEVICE] [--addr ADDR] [--text1 TEXT1] [--text2 TEXT2] [--text3 TEXT3]
               [--text4 TEXT4] [--texts [TEXTS ...]]

options:
  -h, --help           show this help message and exit
  --device DEVICE      device file name
  --addr ADDR          i2c address
  --text1 TEXT1        text of line1
  --text2 TEXT2        text of line2
  --text3 TEXT3        text of line3
  --text4 TEXT4        text of line4
  --texts [TEXTS ...]  a list of text

## for 1602 LCD
$ sudo -E python3 main.py --device /dev/i2c-3 --addr 0x20 --text1 'Hello!!' --text2 'World!!'

$ sudo -E python3 main.py --device /dev/i2c-3 --addr 0x20 --texts 'Hello!!' 'World!!'

## for 1604 LCD
$ sudo -E python3 main.py --device /dev/i2c-3 --addr 0x20 --text1 'Hello!!' --text2 'World!!' --text3 'Good!!' --text4 'Bye!!'

$ sudo -E python3 main.py --device /dev/i2c-3 --addr 0x20 --texts 'Hello!!' 'World!!' 'Good!!' 'Bye!!'

## for clear all text
$ sudo -E python3 main.py --device /dev/i2c-3 --addr 0x20



続く...