Skip to content

JustinWCola/slide_loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

载玻片装载器

1 执行机构部分

  • 电机选型:N20电机带编码器
  • 驱动芯片:TB6612(12V)

1.1 硬件连接

单片机(IO) 驱动 电机
CW(8) AIN1
PWM(9) PWMA
5V STBY VCC
GND GND GND
AOUT1 M1
AOUT2 M2
EA(2) C1
EB(3) C2
  • 驱动芯片AIN2=!AIN1,使用反相器实现

1.2 软件逻辑

  • 硬件中断读取编码器值
  • 普通IO口控制电机方向
  • 输出PWM控制电机速度
  • 位置环PID控制,力矩监测复位

2 传送机构部分

2.1 NiMotion电机

  • CANopen通信协议:
COB-ID 0 1 2-3 4-7
发送 600+ID
接收580+ID
命令符 索引 子索引 数据
  • 命令符:

读取请求:0x40;写入应答:0x60;警告:0x80

命令符 8Bit 16Bit 24Bit 32Bit
写入 0x2F 0x2B 0x27 0x23
读取 0x4F 0x4B 0x47 0x43
  • 索引、子索引详见电机通信协议书
  • CANopen协议下,CAN硬件连接故障会不断轮询

2.2 硬件连接

单片机(IO) CAN收发器 电机
CANRX0(4) CTX
CANTX0(5) CRX
3.3V 3.3V
GND GND
CANH CANH
CANL CANL

3 LED状态灯

  • 使用RGB三色灯模块,控制四个装载仓下方的状态灯,显示当前各个装载仓的使用情况
颜色 状态
红色 等待扫描
黄色 正在扫描中
绿色 已完成扫描

3.1 硬件连接

RGB灯 装载仓1 装载仓2 装载仓3 装载仓4
R 18 12 7 5
G 19 11 6 4
B / / / /
GND GND GND GND GND

4 装载仓放置检测

  • 使用按键检测装载仓是否放在磁铁座子上并下压按钮

4.1 硬件连接

装载仓1 装载仓2 装载仓3 装载仓4
14 15 16 17

5 串口通信

5.1 硬件连接

单片机 PC
USB USB

5.2 通信协议

0 1 2-5 6 7
帧头0xAA 标识符 数据 校验位 帧尾0xFF
  • PC发送/单片机接收:
标识符 功能
0xB1 X轴绝对运动
0xB2 Z轴绝对运动
0xB3 执行机构运动
0xB4 LED灯颜色
0xD1 X轴单位转换
0xD2 Z轴单位转换
0xD3 执行机构单位转换
  • 单片机发送/PC接收:
标识符 功能
0xC0 忙碌状态
0xC1 X轴绝对位置
0xC2 Z轴绝对位置
0xC3 执行机构位置
0xC4 按键状态
  • 校验方式:CRC-8
  • 数据格式为小端优先

6 整体逻辑

  • 检测装载仓
    • 若检测到紧急装载仓(0号)则标记
    • 其余则依次放入队列(1,2,3号)
  • 扫描装载仓
    • 若紧急装载仓(0号)被标记则优先扫描
    • 其余按照队列顺序扫描
    • 扫描中亮黄灯,确认显微镜扫描完成,打印扫描进度
    • 扫描完成亮绿灯,退出队列
    • 连续未扫描到2片,提前结束

About

Arduino Controller for Medical Slide Loaders

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published