Raspberry Pi

  • Raspberry Pi Cmd Launcher
    Raspberry Pi Cmd Launcher Raspberry Piにキャラクタ液晶とプッシュスイッチを組み合わせてランチャーを製作する。 スイッチは左ボタンと右ボタンとエンターボタンの3つとする。液晶に表示されたメニューから左右ボタンで希望のコマンドを選択しエンターボタンで実行する。ユーザフィードバックはピエゾ素子で音を発生。 Hardware 液晶はi2c接続の2行8桁のものを使用する。秋月電子で販売中のバスリピーター付きのLCD(AQM0802A)。 スイッチは小さなプッシュ型でエンターボタンは少し大きめのものを選んだ。家庭内在庫品だ。 graph LR subgraph Raspberry Pi i2c pwm ...
  • CAN通信アダプタ Raspberry Pi zero W
    CAN network adapter Raspberry Pi zero を使用したCAN通信が可能なアダプタ。PCに接続して使用する。ケースはFRISK。本家フォーラムの記事を参考に製作した。2021年8月に製作した記録。 参考記事 CAN bus on raspberry pi with MCP2515 CAN bus communication to and from a Pi Block diagram Hardware plan 操作盤のMac/PCとラズパイはUSB接続。ラズパイへの電源供給を兼ねる。ラズパイとCANコントローラはSPI接続。 graph LR pc ...
  • Raspberry Pi 可変抵抗器の接続と読み込み
    Raspberry Pi and Variable-Resistor Plan ADコンバータを使わずにRasPiに可変抵抗器(ボリューム)を接続してアナログ的な指示を入力する。変換速度の制約がないのでコンデンサへ充電させ充電時間を測定することで可変抵抗器の抵抗値をパルス幅へ変換する。遅いけどいいのだ。 Schematic 最小限の構成を考える。GPIO5から充放電パルス波形を出力しGPIO6に時定数だけ遅れたパルスを入力する。 Simulation 期待通り動作するかLTspiceで事前にシミュレーションする。 Symbol Discription V1 充放電タイミングを生成GPIO出力 V2 ロジック電源3.3V Q1 充電用トランジスタスイッチ Q2 放電用トランジスタスイッチ Q3 GPIO入力信号整形用トランジスタ R2 外付け可変抵抗器 C1 時定数を決めるコンデンサ Simulation result Green: GPIO出力充放電タイミングパルス電圧 Blue: 時定数決定用コンデンサ端子電圧 Red: GPIO入力電圧 Green波形の立下りからRed波形の立下りまでの時間を測定しパルス幅とする。 Conversion characteristics 可変抵抗器の値を変化させシミュレーションしパルス幅を記録する。 横軸: パルス幅 縦軸: 可変抵抗器の抵抗値 実装は実機にてパルス幅を測定し変換テーブルか近似式を作成して利用する。 Sample software 可変抵抗の値に応じてターミナルにテキストでゲージを表示するサンプル。 #!/usr/bin/python3 import time import pigpio pi = pigpio.pi() pi.set_mode(5, pigpio.OUTPUT) pi.set_mode(6, pigpio.INPUT) pi.set_pull_up_down(6, pigpio.PUD_UP) pi.set_PWM_range(5, 100) # gpio, pi.set_PWM_frequency(5, 10) # ...
  • Raspberry Pi に Beep音を実装する
    Beep sound on Raspberry Pi ラズパイにBeep音を実装したい。起動完了やアラート発生時にピッ・プーーと鳴らすのだ。 Hardware Hardware PWMを利用した実装例です。 Schematic BOM Name Type Spec. Piezo sounder Murata PKM13EPYH4000-A0 Dia.13mm, t6.9mm, 30Vp-p max. Transister Rohm DTC143E NPN Digital Tr. Rb=4.7kΩ, Rbe=4.7kΩ Resister Carbon film 10kΩ 0.1W Software Hardware PWMを利用した実装例です。 Source code python3 PIGPIOモジュールを使用しました。beep(0) でピポッです。 これから動作確認します。(^^;) import pigpio BEEP_PORT = 13 BEEP_DUTY = 500000 pi = pigpio.pi() def beep(pattern_id=0): ...
  • Raspberry Pi 液晶モニタ電源スイッチ
    液晶モニタに電源スイッチを追加 Raspberry Pi に接続しているNTSC液晶モニタの電源を手動でオンオフしたい。液晶の発熱がなかなかなので不要な時はモニターをオフしたい。最初はソフトウェアでNTSC信号を操作することを考えたのだがオフはできるたがオンができずに諦めた。というわけでハードウェア実装です。 スイッチは市販のタッチセンサ基板を利用した(左)。基板に設けられたパッドを切断してリード線を接続した。(右) リード線をケース外部に露出するネジへ接続する。ワニ口クリップを使用したのでどこでもスイッチになる。 Schematic TTP223は初期出力レベル(H/L)と動作(モーメンタリ/トグル)を選べるので、初期値Hレベルのトグル動作として設定した。電源投入直後は液晶はオン、タッチスイッチを触ると液晶オフ、再度触ると液晶オン。 Movie 動作の様子です。 Movie
  • Raspberry Pi 電源スイッチ
    Power on/Shutdown switch Concept ハードウェアスイッチでRaspberry Pi の電源をオン/オフしたい。スイッチをオフしても即時に電源を切断せずにshutdownコマンドが完了するのを待機する仕組みを作成しよう。電源を自己保持するためMOSFETを設けて電源スイッチとGPIO27のORをとりMOSFETをオンすることで実現する。 Structure graph LR user((User)) tgl out soft((Software)) pwr ...