実際のところ
CANの立ち上げ
### CAN状態の確認 $ ip link show type can ### 既存プロセスの停止 $ sudo ip link set can0 down ### 通信レートの設定 $ sudo ip link set can0 type can bitrate 1000000 ### プロセスのたちあげ $ sudo ip link set can0 up
動作スクリプト
先日cloneしたリポジトリのうち、サブディレクトリのnotebookに移動し以下の内容を追記
サンプルではpcanを使用していますが、ドライバーの関係でsocket_nativeでないと動かないので注意
import os import sys import time # 添加pcan_cybergear库的路径 # パスの追加 sys.path.append(os.path.join("..", "cybergear")) from pcan_cybergear import CANMotorController import can import time # Connect to the CAN bus with 1 Mbit/s bitrate bus = can.interface.Bus(bustype="socketcan_native", channel="can0", bitrate=1000000) motor1 = CANMotorController(bus, motor_id=101, main_can_id=254) # モーターの無効化、脱力するので注意 motor1.disable() # ゼロポジションの設定。脱力した状態では精度が若干不安。 motor1.set_0_pos() # モーターの有効化 motor1.set_run_mode(motor1.RunModes.POSITION_MODE) # 位置模式 motor1.enable() # ゼロ点に移動 motor1.write_single_param("loc_ref", value=0.0) # 動作メイン while True: motor1.write_single_param("loc_ref", value=0.0) time.sleep(2.0) motor1.write_single_param("loc_ref", value=0.2) time.sleep(2.0)