- 投稿日:2020-01-16T23:01:36+09:00
電子ペーパーモジュールをToDoリストとして使う
きっかけ
僕「電子ペーパーモジュール何かに使えないかな?」
僕「最近やること多くて忘れそうだからToDoリスト(メモ的な何か)として使おう」※電子ペーパーのセットアップ(接続や画像の表示等)はこっちに書いてあります。
Raspberry Piで電子ペーパーモジュールを動作させる
今回は文字を電子ペーパーモジュールに表示させます用意したもの
・Raspberry Pi 3 model B+
・電子ペーパーモジュール (4.2inch e-Paper Module)
・スペーサー (お好みで)手順
こんなものをイメージ
・適当なテキストファイル(text.txt)にやること(文字)を箇条書きして保存
・Pythonでテキストファイルを読み出し、e-Paperに書き込みpythonのソースコードを書く
write.py#!/usr/bin/python # -*- coding:utf-8 -*- import sys import os picdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'pic') libdir = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'lib') if os.path.exists(libdir): sys.path.append(libdir) import logging from waveshare_epd import epd4in2bc import time from PIL import Image,ImageDraw,ImageFont import traceback import RPi.GPIO as GPIO logging.basicConfig(level=logging.DEBUG) try: #erase e-paper logging.info("epd4in2bc Demo") epd = epd4in2bc.EPD() logging.info("init and Clear") epd.init() epd.Clear() time.sleep(1) #read text file f = open('text.txt', 'r') memo_text = [] for line in f: memo_text.append(line) f.close() #print(memo_text) #make text figure im = Image.new("RGB",(400,300),"white") draw = ImageDraw.Draw(im) fig1 = Image.open('fig.png').convert("RGBA") #いらすとやの画像を読み込み draw.rectangle((0, 0, 399, 299), fill=(255, 255, 255), outline=(0, 0, 0), width=3) #外枠の四角形 draw.rectangle((0, 0, 399, 50), fill=(0, 0, 0), outline=(0, 0, 0)) #To Doリストの部分の塗りつぶしの四角形 im.paste(fig1, (200, 150),fig1.split()[3]) font_path = ImageFont.truetype('/usr/share/fonts/opentype/noto/NotoSansCJK-Light.ttc',30) text1 = "To Doリスト\n" draw.text((10, 10), text1 , fill=(255, 255, 255), font=font_path) font_path = ImageFont.truetype('/usr/share/fonts/opentype/noto/NotoSansCJK-Light.ttc',24) i = 0 w = 0 while i in range(len(memo_text)): draw.text((10, 50 + w), "・" + memo_text[i] , fill=(0, 0, 0), font=font_path) w = w + 35 i = i + 1 im.save("./../pic/hoge.bmp") # Drawing on the image logging.info("3.read bmp file") HBlackimage = Image.open(os.path.join(picdir, 'hoge.bmp')) HRYimage = Image.open(os.path.join(picdir, 'hoge.bmp')) epd.display(epd.getbuffer(HBlackimage), epd.getbuffer(HRYimage)) time.sleep(2) logging.info("Goto Sleep...") epd.sleep() except IOError as e: logging.info(e) except KeyboardInterrupt: logging.info("ctrl + c:") epd4in2bc.epdconfig.module_exit() exit()テキストファイル内を以下のように編集し、
write.py
と同じディレクトリに配置text.txt修論 予稿 不動産屋に連絡 明日飲み会やってみた
表示する項目を変えたい場合は、text.textを書き換えた後にもう一度Pythonのコードを走らせると変えた項目に更新される
- 投稿日:2020-01-16T18:26:50+09:00
Macからssh接続でvirtualbox上のcentos6に接続する
環境
ゲストOS : CentOS6
ホストOS : MacOS Catalina流れ
①virtualboxの設定でネットワークを開く
・以下で設定。
割り当て : ホストオンリーアダプター
・名前の確認
名前:vboxnet0
②centosを起動
③centos上のネットワークを確認
私の設定の場合、①の設定によりeth2が追加されたことを確認したが、eth2にipアドレスが設定されていなかった。
(以下のように出力されました。スクショ取り忘れました)
en0 : ....
en2:.....④eth2にIPアドレスを設定する。
手動で設定していく。
⑴/etc/sysconfig/network-scripts/以下にeth2用の設定ファイルを追加する。/etc/sysconfig/network-scripts/ifcfg-eth0はあるものの/etc/sysconfig/network-scripts/ifcfg-eth2がなかったため、ifcfg-eth0ファイルをコピーした。⑵macのネットワーク状況を確認。
ターミナル からifconfigで、virtualboxのネットワークで設定した名前(vboxnet0)のネットワークアドレスを確認。IPアドレスとサブネットマスクから導きました。
IPアドレスが192.168.56.1/24であった場合、192.168.56.0がネットワークアドレスになる。⑶ifcfg-eth2用に設定するため、以下のように変更。
eth0DEVICE=eth0 HWADDR=************ TYPE=Ethernet UUID=************ ONBOOT=yes NM_CONTROLLED=yes BOOTPROTO=dhcp↓以下に変更
eth2DEVICE=eth2 # HWADDR=************ コメントアウト TYPE=Ethernet # UUID=************ コメントアウト ONBOOT=yes NM_CONTROLLED=ye BOOTPROTO=none ←dhcpから変更 IPADDR=192.168.56.2 ←追加 PREFIX=24 ←追加BOOTPROTOをdhcpからnoneに変更することで自動でipアドレスが割り振られないようにする。
IPADDRに⑵で確認したネットワークアドレスに割り振り可能なアドレスを追加する。macで192.168.56.1を使用していたため、192.168.56.2に設定。
PREFIXは⑵で確認した数値と同じに設定。⑤ネットワークを再起動して、ターミナル から接続完了!
centos6service network restartターミナルssh root@192.168.56.2今回の設定について
・ホストオンリーアダプターについて
virualboxでホストオンリーアダプターを追加することでNICを増やした。ホストオンリーアダプターはホストOS(MacOS)とゲストOS(CentOS6)のみをつなげる設定で、外部に接続はできない。
・今回した接続方法
ホストOS側のNIC(今回の例で言えば、192.168.56.1)とゲストOS側のNIC(今回の例で言えば、192.168.56.2)を接続した。
- 投稿日:2020-01-16T14:30:37+09:00
仮想無線NICを生成するmac80211_hwsim
mac80211_hwsimとは?
- カーネルモジュールの一つで、仮想の無線インターフェイスを作ることができる
- 2つの仮想インターフェイスを作り、一方をアクセスポイント、もう一方をクライアントにして通信のテストを行うことができる
使い方
# Load the module $ sudo modprobe mac80211_hwsimモジュールを読み込むと、仮想インターフェイスが生成される
$ ip a 45: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 46: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff 47: hwsim0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ieee802.11/radiotap 12:00:00:00:00:00 brd ff:ff:ff:ff:ff:ffwlan0とwlan1が生成された。数を指定しなければ、2つのNICが生成される。hwsim0は全てのチャンネルのフレームを観測できるインターフェイスらしい。
モジュールを解除すると、仮想インターフェイスは消える# Load the module sudo modprobe -r mac80211_hwsimradiosというパラメータが存在し、生成する仮想NICの数をしていすることができる
$ sudo modprobe mac80211_hwsim radios=5 $ ip a ~~略~~ 48: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff 49: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff 50: wlan2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:00:00:00:02:00 brd ff:ff:ff:ff:ff:ff 51: wlan3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:00:00:00:03:00 brd ff:ff:ff:ff:ff:ff 52: wlan4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ether 02:00:00:00:04:00 brd ff:ff:ff:ff:ff:ff 53: hwsim0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000 link/ieee802.11/radiotap 12:00:00:00:00:00 brd ff:ff:ff:ff:ff:ffhttps://wireless.wiki.kernel.org/en/users/drivers/mac80211_hwsim
- 投稿日:2020-01-16T13:52:50+09:00
nohupと一緒に使うと便利なコマンド
nohup コマンド &
: コマンドをバックグラウンドで実行
less +F nohup.out
: 標準出力とエラー出力のログを流す
ps aux
: プロセスの確認
- 投稿日:2020-01-16T13:52:50+09:00
nohupと一緒に使うと便利なあれこれ
nohup コマンド &
: コマンドをバックグラウンドで実行
less +F nohup.out
: 標準出力とエラー出力のログを流す
ps aux
: プロセスの確認puttyのバックグラウンドカラー変更
設定の変更>ウィンドウ>色>Default Bacgroundの値変更>セッションを選択>保存
- 投稿日:2020-01-16T08:40:59+09:00
Linux でテストファイルを一度に大量に作成するワンライナー
動作確認で、取り急ぎ 1 度に数千のファイルを準備する必要があったので、メモ。
奇をてらったことは何もしてません。
Windows Bash (Ubuntu) でも動きました。touch test.file;for i in {1..5000};do cp test.file test_${i}.file;done ↓↓↓ これでも同じ。 touch test_{1..5000}.fileこれで 5,000 個 (正確には 5,001 個) のファイルが作れます。
5000
の部分を変えれば任意の数のファイルを作成できます。ファイルサイズを指定したい場合はこんな感じ。
dd if=/dev/zero of=test.file bs=1M count=1;for i in {1..5000};do cp test.file test_${i}.file;doneこれで 5,000 個の 1MByte ファイルが作れます。
bs
×count
のファイルサイズとなるので、これを変えることで任意のファイルサイズが指定できます。