「PC関連」カテゴリーアーカイブ

RaspberryPi UPS 導入

久々の投稿です。

Raspberry Piリチウム電池の拡張ボードを購入しました。
Amazonで2497円でした。
RaspberryPiに導入した時の覚書です。
※RaspberryPiへの電源接続は簡単なので省略、UART接続したときの覚書です。

参考サイト
RPi UPSPack V3 Product User Guide
Raspberry Pi GPIOを使用したシリアル通信

1. UPSのRX、TX端子をRaspberry Pi のGPIO15(UART RX)、GPIO14(UART TX)へ接続 ※参考サイト①の通り。端子のはんだ付けが必要。
2. Raspberry Pi のシリアル通信を有効化
 - Linuxシリアルコンソールを無効化する
– UART0をPrimary UART に設定する( /boot/config.txt に dtoverlay=disable-bt を追加)
 ※参考サイト②「GPIOヘッダーのUARTピンでUART0を使用する方法」
3. 再起動後、以下のスクリプトを実行
upspackv2.py
上位互換性があるみたいで、V2向けのものでも動く模様

※嵌った点
 UART通信がたまにうまくできず、UPSからのデータが文字化けするときがある。その時はUPSの電源をOFF→ONすると復帰する。

これを使ってソーラー発電による無電源化ができないか挑戦中です。
できたらYoutubeに上げようかと思っています。

PC購入

久々の投稿です。生きてます。

今使っているPCをWindow10にアップデートしてしばらく使っていたのですが、PCが古いのかもたつきが多くストレスになってきたので、PC買うことにしました。
DELLで注文して届くのを待っています。

NUC PC をメインPCでCPUもI3-4010Uで何世代も前のCPUです。

Raspberry pi CAN 通信 プログラム

RS485_CAN_HAT でCAN通信できるようになりました。
python-can を使っているのですが、記事自体は別サイトでも情報が少ないため、役に立てればと思い記事に残します。
Python初心者なので、間違っている可能性があります。

import os
import threading
import can
import time

# CANリソース設定
os.system('sudo ip link set can0 type can bitrate 500000')
os.system('sudo ifconfig can0 up')

FIL_CANID   = 0xXXXXXXXX
FIL_CANMSK  = 0xXXXXXXXX
REQ_CANID  = 0xXXXXXXXX
ID_FORMAT  = True #29bitCANIDの場合

# CAN設定、フィルタ設定
can0 = can.Bus(channel = 'can0', can_filters = [{'can_id': FIL_CANID, 'can_mask': FIL_CANMSK }], bustype = 'socketcan_ctypes')# socketcan_native
canlog = can.ASCWriter('/home/pi/public/canlog.asc')
can.Notifier(can0, [canlog, ])

# 送信データは外部ファイルにしたい
def ServiceTest():

    #テストフレーム送信
    msg0 = can.Message(arbitration_id=REQ_CANID, data=[1, 3, 0, 0, 0, 0, 0, 0], extended_id=ID_FORMAT)
    canlog.log_event(msg0, time.time())
    can0.send(msg0)


# main関数
if __name__ == '__main__':
    t1 = threading.Thread(target=ServiceTest)
    
    # 送信プロセススタート
    t1.start()

    # 送信プロセスが完了するのを待つ
    t1.join()

    canlog.stop()
    can0.shutdown()
    os.system('sudo ifconfig can0 down')
    print('end')

※ 記事ように、一部カスタマイズしています。
実行すると、CANID、MASKに合致した受信メッセージのみcanlog.ascに出力されます。
また、canlog.log_event()にて送信メッセージもログ出力されるようになります。

RaspberryPiでCAN通信

RaspberryPiでCAN通信ができることを知り、実際にやってみました。
ネット上で上であまり情報がないRS485_CAN_HATを購入し、車につなげて通信できたので覚書。

マニュアルが付いていなかったので、以下のサイトを参照した。
https://www.waveshare.com/wiki/RS485_CAN_HAT

① UserManual を参考にRaspberryにインストール
② DemoCodeをベースに車に接続できるようにビットレートを500kbpsに修正
③ 自己診断用のリクエストメッセージを投げて、応答を見てみる。

車に接続用にコネクタを買ったり、CANID、メッセージを調べたりしていますが、それ以外は簡単でした。
あ、あとPython初めて扱ったのでそれも少し頑張ったかも。

詳細は別途投稿するかもしれないです。