2025年5月9日 星期五

PeakCAN Windows GUI Application - Two Channel

Purpose:
利用兩台PeakCAN撰寫一個利用c#寫的MDI(Mutliple Document Interface)來擷取CAN Bus上面的資料, 可應用於CAN Bus介面上的產品分析, 或是配合OBD2的介面的接線來接收車子的CAN Bus上的資料.

介面設計:
利用PeakCAN給的範例架構在MDI的GUI上面

另外在撰寫一個transmit的介面, 可同時連續傳送或是傳送一次勾選的ID內容
GUI上半部可同時監看兩台PeakCAN的接收與傳送的資料


2025年2月11日 星期二

PeakCAN Control ODrive with A2212-1400KV and X2212-980KV

我的Odrive Board
版號: Odrive v3.6-56
ODrive control utility v0.6.5.post2
Odrive 硬件內部 FW V0.5.6

接續這一篇文章odrive perform Sunnysky X2212 980KV motor with Encoder TLE5012B
M1位置是接無編碼器
設定如下:
dev0.axis1.controller.config.vel_gain = 0.01
dev0.axis1.controller.config.vel_integrator_gain = 0.05
dev0.axis1.controller.config.control_mode = CONTROL_MODE_VELOCITY_CONTROL
dev0.axis1.controller.config.vel_limit = 50
dev0.axis1.motor.config.current_lim =15
dev0.axis1.sensorless_estimator.config.pm_flux_linkage = 5.51328895422 / (7 * 1400)
dev0.axis1.requested_state = AXIS_STATE_MOTOR_CALIBRATION
dev0.axis1.motor.config.pre_calibrated = True
dev0.axis1.requested_state = AXIS_STATE_SENSORLESS_CONTROL
dev0.axis1.config.startup_sensorless_control = True
dev0.save_configuration()
dev0.reboot()


測試指令:
dev0.axis1.requested_state = AXIS_STATE_MOTOR_CALIBRATION
dev0.axis1.requested_state = AXIS_STATE_CLOSED_LOOP_CONTROL
dev0.axis1.controller.input_vel = 10

Demo:



2025年2月4日 星期二

坦聯 旋轉轉台控制小工具

執行用C#寫的MDI_ATS程式, 選擇ATS中的Console, 再依據轉台所接的轉接板com port 開啟所用的port number

硬體包括坦聯控制盒, 單軸轉台
依據Unit 的轉動角度有1, 10 , 20 , 100度再按button +(正轉動)或是 button –(負轉動), 單次轉動轉台


2025年1月24日 星期五

Python 使用 GPU 的安裝方式

依據顯卡的資訊

Nvidia-smi 顯示卡 資訊

我的經驗是先更新顯卡的驅動到可支援的最新版本

再到nvida網站下載適合你版本的cuda

我是下載12.4版本來做測試

查看是否安裝完成 nvcc -V
在python環境上驗證:

import torch
print(torch.cuda.is_available())