为了降化软件开发人员及算法研究人员对硬件设备操作和编程的难度,本系统使用Arduino作为硬件系统拉制板。Arduino是一款开源电子原型平台,具有非常庞大的开发者群体,可以方便的操控各类传感器、电机、二极管等装置。它使用一种封装过的C语言进行开发,抽象程度高,库函数丰富。同时也支持使用纯C语言编程。本系统选取Arduino MEGA 2560作为控制板,这款控制板基于Atmel ATmega2560控制器,具有54路数字输入输出,完全满足本系统设计要求,同时具有比较好的可扩展性。
电机驱动模块包含两个部分:电机驱动芯片及行程开关。其中电机驱动芯片采用Allegro公司A4988电机驱动器,该驱动器兼容5V和3.3V逻辑电源,具有五种可选的步进模式,最高能够实现1/16细分。具有高达+ 2A/35V的驱动能力。行程开关布置在导轨底部,在滑块触及开关时改变引脚电信号,产生中断,判断摄像机是否运动至零点位置。
转盘控制模块包含两部分:继电器模块及行程开关。其中继电器模块为一路带光耦隔离继电器,可以通过5V直流控制信号控制220V交流电源通断,从而控制电动转盘的转动和停止。行程开关布置在转盘侧面,当转盘表面滑块触及行程开关时,表明转盘转过一周。
人机交互模块提供了两种控制方式:
PC端三维扫描软件对下位机进行控制,支持在线可编程逻辑控制和点动模式。这种控制方式与研发的三维扫描软件紧密结合,可以方便用户和开发人员对工作台运动方式进行控制,按照扫描需求编制运动方案。
移动端Android软件进行控制,支持两种预设模式及点动控制模式。这种方式不依赖开发的三维扫描软件,可以应用于其他同类型的三维扫描软件,允许用户使用其他软件进行扫描,提高了该工作台的适用范围。同时可以方便开发人员使用使用同类软件进行对照试验。
依据"瀑布模型"提出的软件开发流程,将软件需求分析方法运用于系统分析领域,重点分析了两类用户角色的用户需求和功能需求。通过需求分析,提炼出了系统的功能模块,并给出了软硬件的总体架构设计。对软件进行了分层设计并给出了总体架构图。此外,选择了合适的硬件开发平台,制定了三维扫描工作台的总体设计方案。