前回、オオタニサンのHR更新速報WEBスクレイピング機能を実装しました。↓
これで時計、ヌードボールペン、オオタニサン速報、の3つの機能が準備できましたので、今回はこれらをまとめて、Twitter上ではクソの烙印を押し付けられた多機能おもしろ時計を完成させたいと思います。
M5StickCを腕時計にして街歩いてる人はなかなか見ない(秋葉とかそっち方面ならいるかも)ので、結構目立つとは思います。
見た目はガチャポンのおもちゃレベルなので、決してカッコよくはないかもですが、機能に関しては時計のくせに斬新かつバラエティとユーモアに富んだ内容になっているので、触れられた際には自慢できる物に仕上がっていると自負しております(`・∀・´)!
しかし、決して、決して自分から説明しにいくような真似はしないでくださいよ!こんなクソ機能、自ら自慢しに行く行為は相手の不快指数を爆上げする事間違いないので(どないやねん(-_-;))
ぱっと見「あれ?血圧計?」「脈拍??」「病院でなんか渡された???」「どっか悪いの????」に見えますから、心配されますから、そこでイキって「自作のオリジナル時計です」なんて言ってさ、しかもこんなクソ機能だったらば決まりかけの縁談も破綻しかねないレベルですから。
と、まあ自分をディスるのはこれくらいにして、とりあえずプログラムをまとめたやつを書いておきます。
プログラム
python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
from m5stack import * import imu import time from m5ui import * from uiflow import * import urequests import network imu0 = imu.IMU() i = 0 lcd.clear(lcd.BLACK) #rtc.setTime(2021, 7, 9, 10, 54, 0) def buttonA_wasReleased(): lcd.clear(lcd.BLACK) label0 = M5TextBox(20, 120, "00", lcd.FONT_DejaVu24, 0xFFFFFF, rotate=270) label1 = M5TextBox(20, 83, ":", lcd.FONT_DejaVu24, 0xFFFFFF, rotate=270) label2 = M5TextBox(20, 67, "00", lcd.FONT_DejaVu24, 0xFFFFFF, rotate=270) while True: label0.setText(str(rtc.now()[3])) label1.setText(':') label2.setText(str(rtc.now()[4])) wait_ms(2) if 0 > imu0.ypr[1]: lcd.clear(lcd.BLACK) break btnA.wasReleased(buttonA_wasReleased) def buttonB_wasReleased(): print("MIZUGI") while True: wait(1) if imu0.ypr[1] > 50: gazou = lcd.image(0, 0, "gazou2.jpg") elif 0 < imu0.ypr[1] < 50: gazou = lcd.image(0, 0, "gazoi1.jpg") else: lcd.clear(lcd.BLACK) break wait_ms(2) btnB.wasReleased(buttonB_wasReleased) def buttonA_pressFor(): lcd.clear(lcd.BLACK) print("WIFI") global i wlan = network.WLAN(network.STA_IF) wlan.active(True) if not wlan.isconnected(): print('connecting to network...') wlan.connect('Buffalo-G-29CE', 'AKANE0918') while not wlan.isconnected(): pass print('network config:', wlan.ifconfig()) yahooHeadLineResponse = urequests.get('https://news.yahoo.co.jp/rss/topics/sports.xml') yahooHeadLine = yahooHeadLineResponse.text while(i < 100): if "大谷" and str(i) + "号" in yahooHeadLine: lcd.clear(lcd.BLACK) print("大谷" + str(i) + "号!") M5TextBox(24, 124, "Otanisan Hits!", lcd.FONT_Default, 0xFFFFFF, rotate=270) M5TextBox(40, 124, str(i) + "th Home Run!", lcd.FONT_Default, 0xFFFFFF, rotate=270) i = i + 1 i = 0 btnA.pressFor(0.8, buttonA_pressFor) |
前回までのプログラムをまとめた感じになっています。
上から順に、Aボタンの関数に時計、Bボタンにヌードボールペン、A長押しにオオタニサン速報のプログラムが入っています。
時計とヌードボールペンに関しては、仕様上ループが必須で解除にボタンが使えないため、6軸センサのロール角で解除出来るようにしています。
オオタニサン速報のループは無限ループではないので、これで全ての機能がループ終了後にボタンで呼びだす事が可能になっています。
ちなみに、外出時はスマホをテザリングするなどして、プログラムもそちらのSSIDとPASSにしておけばオオタニサン速報も確認できます。(まあテザリング設定する時間でオオタニサンの情報なんてみれちゃいますけど。。それは言っちゃあおしまいですから。)
完成!
「M5StickCでヌードボールペン&オオタニサンHR速報WEBスクレイピング機能付き時計」の完成です。。↓のようになります。。
以上、先日人間ドックで総合判定「D」(Eが最低)の宣告を受けた筆者によるM5StickCの作品でした。
今は体調がすこぶる悪く、冗談抜きでこれが遺作となってしまいそう(それは避けたい!!)ですので、しばらくは体を療養する事に専念したいと思います。
更新間隔が長くなると思われますが、もしここのブログに足を運んでくれている方々がいれば、気長に待って頂ければ幸いですm(__)m