LoginSignup
0
0

More than 1 year has passed since last update.

getrpimodel: Raspberry Pi の model (A, B, B+, B2, B3, etc) を python で認識

Last updated at Posted at 2016-12-08

(2021.06.18)フランス語訳

以前から Qiita に書いた記事って以外とグローバルに読んでいただけてるなぁと思ってたのですがなんと、本稿をフランス語訳してブログにあげてくださってる方がいらっしゃってビックリしました

当方、そもそもフランス・ヲタなので喜んで読んじゃったのですが、自分が書いた文章の外国語訳ってこんなにも読みやすいものなのですね、村上春樹とかいつもこんな思いしてるんでしょうか

自分の知らない所で訳されて知らない所で読んでいただけてるって、まるでポール・グレアムにでもなったみたいな気分でちょっと誇らしいです ^^/

始めに

予期せず RPi 3 を入手した(ebay で RPi 2 を買ったらなぜか RPi 3が届いた)のですが、これまで作ってきたプログラムが色々とうごきません ^^;;; 11月24日から今日までの2週間ちょっとで気がついた範囲でも

  • tty が ttyAMA0 じゃなくて ttyS0 になっている
  • /sys/class/leds/led1/ がなくなってて、赤LED を shell でつけたり消したりできない

RPi 3 かどうかを認識して処理を変えないといけないところがいくつかありそうです

ということで、どうせなら後々も使えるようにこちらでも補足でご報告させていただきましたとおりgetpimodelというパッケージを作りました
その際はあまり親切でない簡潔な報告ですませてしまっておりましたので、僭越ながらこちらで再度、詳細をご報告させて頂きました次第です

つきましては効率的でない部分や間違っている所など有りましたら忌憚のない御指導・御指摘をいただければ大変ありがたく、すみませんがよろしくお願いいたします次第でございます

インストール

pip install getrpimodel

使い方

python programとして

python -m getrpimodel [--s] 

python ライブラリとして

import getrpimodel

print (getrpimodel.model())
print (getrpimodel.model_strict())

戻り値

こちらのテーブルの「model」列の文字列からカッコ書きの部分を除いたもの(--s や、model_strict()ではカッコ書きもそのまま)
具体的には B とか A とか B+ とか。--s や model_strict() だと B (Beta) とか

ロジック

こちらのテーブルに従ってチェックしてます

コード

こちらで公開させていただいております

コード使用例

こちらで、こんな感じでつかってます

import getrpimodel

# setting

if getrpimodel.model() == "3 Model B":
  serial_dev = '/dev/ttyS0'
  stop_getty = 'sudo systemctl stop serial-getty@ttyS0.service'
  start_getty = 'sudo systemctl start serial-getty@ttyS0.service'
else:
  serial_dev = '/dev/ttyAMA0'
  stop_getty = 'sudo systemctl stop serial-getty@ttyAMA0.service'
  start_getty = 'sudo systemctl start serial-getty@ttyAMA0.service'```

PyPI

こちらに登録させていただきました

謝辞

PyPI に登録する方法をこちらを参考にさせていただきました。大変参考になり、感謝いたしました次第です

感想

getrpimodel、地味に便利です

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0