IoT開発、設備・DIYのブログ!
ラズパイのGPIOを使うとき、実はいろいろな制限があります。
ピンの出力電圧は3,3V、流せる電流はピンごとでは8mA、トータルで50mA程度が最大だそうです。
例えばこんなパトランプを制御しようとすると…
ダメですね。0.14Aも流れているのでまったく動かせません。というよりそもそもUSB出力なので5V仕様です。
USB出力を動かすやり方は2つあります。
①ラズパイのUSB出力を制御する。
②トランジスタを使って増幅させる。
①はラズパイのUSB出力をシェルスクリプトでON、OFFさせる方法です。
USB OFF のスクリプト
sudo hub-ctrl -b 1 -d 2 -P 2 -p 0
USB ON のスクリプト
sudo hub-ctrl -b 1 -d 2 -P 2 -p 1
ラズパイ3B+でしか試していませんが、USB出力すべてが動作してしまうため、あまり使い勝手がよくありません。USBのWEBカメラなども接続している場合は停止してしまいます。
続いて②です。arduinoのように5VでGPIO出力できなくてもピンとしては5V電源は取れるので
下記のように接続し、GPIOの信号で負荷に5V印加できるようにします。
※8/10図を修正しました。指摘の多かった電流制限抵抗とフライホイールダイオードを入れています。
USBのメス側とトランジスタ(2C1815)が必要です。
パトランプは負荷のところへ挟み込み、片方はラズパイの5V出力につなぎます。3.3VのGPIO出力はベースとしてトランジスタへ接続します。コレクタに流せる最大電流は150mAなので問題ありません。
あとはGPIOを制御するプログラムを作るだけです。このやり方はラズパイだけではなく、ESP32
あたりのモジュールでも使うのですが、今回「あれ?どうやってやるんだっけ?」ってなったので備忘でまとめました。直流モーターを制御するときに必要です。
…こんなめんどくさいことしなくていいようにラズパイに5Vの入出力端子デフォルトで作ってほしいですけどね。
最近AI画伯やモザイク消しなどといった画像をつかったAIプラットフォームがどうも流行ってるみたいです。自分も興味をもったので簡単なものを作ってみることにしました。
AI周りはTensorFlow、サーバーサイドはAzureで構築。
顔画像から一番近い霊長類を当ててくれるAI霊長類をつくりました。
http://104.215.52.107/index2.html
※現在は停止中
ドメインはないのでIPままです(笑)
あらかじめ霊長類を学習しており10種に分類することができます。ちなみにヒトはいません。
コードをすべてアップできないので簡単に説明すると…
①Azureで立ち上げたWEBサーバに画像をアップできるように開発(PHP)
②Azure → AWS S3へ画像を転送
③AWSS3 → 自宅PCでAI解析(TensorFlow)
④自宅PC → Twitterへ出力(Python)し①のWEBサーバへフィードバック
なんでこんなめんどくさい構成かというと、AWS、AzureでGPUサーバーをレンタルすると高いからです。最低でも1時間100円~ かかります。自宅PCはNVIDIAのGPUがついているので
使い放題です。
所見・感想
・AzureはAWSより使いやすいかもしれません。ポートの解放などはわかりやすかったです。値段的には微妙ですが…。
・TwitterのAPIはすぐ制限が厳しいです。投稿が重なったり投稿数が多かったりするとエラーがでます。
・もう少し、AWS、Azureも安くなればAIもサーバ側で開発してまともなものが作れそうです。
・いつもpythonの開発だけなので今回PHPやAPACHEを使ったWEBサーバ開発は苦労しました。
→もう少し勉強してみたいと思います。
PS.ナイナイの岡村さん→日本ザル ガレッジセールのゴリさんはマンドリルでした。