modalsoul’s blog

これは“失敗”と呼べるかもしれないが、ぼくは“学習体験”と呼びたい

2018-01-01から1年間の記事一覧

Raspberry Pi Zeroで車載機をDIYしたときのアレコレとその先

これはRaspberry Pi Advent Calendar 2018の2日目の記事です。 adventar.org modalsoul.hatenablog.jp ↑の記事のなかで、Raspberry Pi Zero WHを使った車載機を作ったときのアレコレを書いてみます 使ったもの 9軸センサー modalsoul.hatenablog.com 車両の…

Raspberry Pi Zero WHで、 BLE Beaconを送信する&Bluetoothデバイス名を変更する

Raspberry Pi Zero WHは、Bluetooth4.0/BLE(Bluetooth Low Energy)が使えるので、Beaconの送信をしてみた Bluez LinuxオフィシャルなBluetoothスタックのBluezを使います Bluez-ibeaconのインストール 手っ取り早くBluez-iBeacon github.com cd /usr/local/s…

Raspberry Pi Zero WHで、みちびき対応GPS受信機キットを使い位置情報を取得する

秋月電子でGPS受信機キットを買ったので、位置情報を取得してみた1 GPS受信機キット 配線 シリアルの有効化 raspi-config /boot/cmdline.txt 動作確認 pyserialのインストール repl NMEA0183 micropyGPS repl GPS受信機キット akizukidenshi.com 小型高感度G…

Headlessモード時、ChromeDriverでファイルダウンロードに失敗した話

ChromeDriverでファイルダウンロードするSeleniumスクリプトを書いたとき、非Headlessモードでは成功するのに、Headlessモードで失敗した件のメモ tl;dr Headlessモードの場合、 target=_blankなアンカーをclick()してもファイルダウンロードできない target…

HeadlessモードのChromeDriverでファイルダウンロードに失敗する現象のトラブルシューティング

ファイルのダウンロードをするSeleniumのスクリプトを、docker上でheadlessモードのChromeDriverで動作させた際、ファイルのダウンロード処理に失敗する現象が起きたので、その対処方法のメモ書き 前準備 基本的なところは前回と同じ modalsoul.hatenablog.c…

Raspberry Pi Zero WHでリレーモジュールを使って電源制御

Raspberry Pi Zero WHで、大きい電圧(ex. 12V)で動作する機器の電源を制御するために、リレーモジュールをつなげてみた。1 リレーモジュール Raspberry Piでの使用例が多かったこのリレーモジュールをポチった SODIAL(R) リレーモジュール出版社/メーカー: S…

Raspberry Pi Zero WHでサーボモーターSG92Rを動かす

Raspberry Pi Zeroでサーボモーターを動かしてみた1 SG92R SG90の使用例が多いですが、今回はSG92Rを使用。特に理由はなし。 マイクロサーボ SG92R (1個)出版社/メーカー: 梅本合同会社メディア: おもちゃ&ホビーこの商品を含むブログを見る CleverCare マ…

Raspberry Pi Zero WHとMPU9250で、9軸センサー(ジャイロ、加速度、磁気)を取得する

9軸センサーが安かったので、ポチってRaspberry Pi Zeroと繋いでみた1 MPU9250 HiLetgo MPU9250 / 6500 9軸 9自由度1 6ビット ジャイロスコープ 加速用 磁気センサ IIC / SPI [並行輸入品]HiLetgoAmazon はんだ付け 付属のピンをはんだ付け 小手とはんだ、は…

Raspberry Pi Zero WHでGPIOを使って音声出力

Raspberry Pi Zeroにはオーディオジャックがないので、GPIOに繋いで使えそうなスピーカーを用意した ミニオーディオマグネットラズベリーPiとArduinoのスピーカー3ワット8オームJST - PH2.0インタフェースバランス接続長方形パッシブホーントランペットスピ…

Raspberry Pi Zero WHにブート/シャットダウンの物理ボタンを付けた

Raspberry Pi Zeroをポチったので、ちょっとずついじってみる Raspberry Pi Zero WH ボード&ケースセット 3ple Decker 対応-Physical Computing LabPhysical Computing LabAmazon OSはRaspbian stretch lite www.raspberrypi.org 初期設定諸々はここでは割…

国際フレンドシップ・デーで、Intellij IDEAのライセンスを50%offで買った

タイトルの通りです 前回の割引のときに買いそびれて後悔してたんで、心残りをひとつ成仏させてやれた、よかったよかった 国際フレンドシップ・デーや、なんで割引なのか?について詳しくは↓を blog.jetbrains.com ↓の紹介リンクから買うと-¥500になります…

Seleniumスクリプトをdocker上のHeadless Chromeで動かす

Seleniumを使った時間のかかるPythonスクリプトがあり、こいつを動かすとフォーカス取られて仕事にならないので、docker化し、ヘッドレス環境で実行するようにした Dockerfile ChromeDriverとSeleniumをインストール FROM python:3.6-alpine3.7 ENV APP_ROOT…

任意の桁数のゾロ目を生成する

n = 1のとき、f(n) = 1 n = 2のとき、f(n) = 11 n = 3のとき、f(n) = 111 n = kのとき、f(n) = 11...11 (k桁の1のゾロ目) となるf(n)の実装を考える 数式で表すと ぱっと思いついた再帰を使うパターン def fn(n, acc=0): return acc if(n == 0) else fn(n-1,…

Pythonicなリストのfilter処理

Pythonicにリストをfilterするにはどうするか?といい話題がでたので、ちょっと考えてみた 話のもとになったslackの投稿(とその擬似コード パターンA names = [x for x in names if x is CONDITION] ↑だとxに何が入ってくるのかがわからない パターンB name…

Pythonのnamedtupleを使ってScalaのcase class感覚でvalue objectを作る

複数の値をまとめて扱いたい時ありますよね。value object欲しいなって時 そんなとき、Scalaだとcase classを使いますね Case Classes | Scala Documentation case class Human(height:Int, weight:Int) こんな感じで、1行だけで複数の値をまとめて扱うこと…

Pythonのタプルでdestructuring bindingっぽい何か(unpacking assignment)でハマった

SQLArchemyを使ったアプリケーションで↓なコードがあった(詳細は割愛) (age,) = db_session.query(User.age).filter(User.id == input.id).one() 右辺がUser.ageをラップしたなにかなのはわかるんだけど、左辺がよくわからない これと似たようなもので、Sc…

Pythonのand, orやallの挙動が正格に見えたけど、ちゃんと非正格だった話

会社のSlackでの1コマ Pythonのorやallで、式の評価を途中でやめてくれない >>> print('a') or pring('b') a b ↑の場合、直感的にはbは出力されないはずだけど、バッチリでてる Pythonって正格なのか、、?と思うも、 >>> 0 and print('b') 0 こっちだとor…

ブログを移行した

GitHub+Jekyllで運用してたブログをはてなブログに移行した 旧ブログ http://modalsoul.github.io/ は、記事公開するのに markdownで書く jekyllで静的ファイルにコンパイル 生成されたファイルをGitHubにpush と手順が面倒だった 自作jekyll pluginを使わな…