这个项目里,作者会教你怎么做一个简单的电动3D扫描转盘,主要是给手机用的。整个装置分为三个部分:顶板、齿轮板和底座。顶板是个固定的平台,用来放置你要扫描的物体。

中间的齿轮板是整个装置的核心,它有一个隐藏的齿轮机构,由步进电机驱动,可以360度旋转。齿轮板上还有个安装点,用来固定一个手机支架,这样手机就可以围绕物体旋转,同时保持固定距离。

底座则是整个装置的支撑结构,里面装了所有需要的部件。顶板和底座是固定在一起的,而中间的齿轮板可以自由旋转。为了让旋转更顺滑,整个系统用了四个滚珠轴承。
至于扫描软件,作者用的是iOS上的一个应用,不过你也可以根据自己的需求选择别的软件。这次主要是教大家怎么做这个电动转盘,话不多说,一起来看看吧!
第一步:3D打印零件和硬件准备

这个项目需要3个主要的3D打印零件:



- 底座:底座里有三个轴承槽、步进电机安装位、三个脚槽,还有一个开关的位置。
- 齿轮板:这是唯一会旋转的部分,中心有个轴承槽,侧面还有一个安装点,用来固定手机支架。
- 顶板:这是用来放要扫描物体的平台,它通过中心部分固定到底座上,保持不动。
除了这些,还需要一些小零件,比如连接步进电机的小齿轮、用来固定轴承的销钉,以及三个安装脚。另外还有一个手机支架臂和支架板。
如果没有3D打印机,可以用PCBWAY这类的在线服务来打印这些零件。STL文件是免费的,可以直接下载:https://www.pcbway.com/project/shareproject/How_to_Build_a_Motorized_3D_Scanning_Turntable_for_Your_Phone_20b5a863.html


硬件方面,需要4个608 ZZ轴承(就是滑板常用的那种),它们能让旋转更顺滑。还需要一些螺丝和螺母,用来固定步进电机和手机支架。

步进电机用的是28BYJ-48,这种很常见也很便宜。
零件准备好后,我们先从安装轴承开始吧!
第二步:组装零件



- 先把销钉插到底座上的槽里,但不要完全插进去。
- 把轴承放到对应的位置,然后把销钉压到底。


- 接着,把三个脚插到底座上的脚槽里。如果觉得不够稳,可以用M3螺丝固定一下。


- 拿起齿轮板,把一个轴承压到它中心的轴承槽里。
- 把齿轮板放到底座上。


- 最后,把顶板装上,让它中心的凹槽和底座上的凸起对齐。


- 插入手机支架臂和支架,用M5螺丝和螺母固定好。
这样,所有3D打印零件就组装完成了!试着手动转几圈中间的齿轮板,看看是不是转得顺滑。

如果没问题,就把顶板和齿轮板拿下来,把步进电机装到底座上的槽里,用M3螺丝固定好,再把小齿轮装到电机轴上。
到这里,机械部分就搞定了!接下来我们来看电子部分。
第三步:电子元件准备



电子部分用到了ESP8266开发板,这样可以无线控制转盘。步进电机驱动器用的是ULN2003,还需要一个面包板和一些跳线来搭建电路。
供电方面,用的是9V适配器,再加上一些电容器和稳压器,把电压降到5V供给开发板使用。我还画了一个简单的电路图,方便大家搭建。不过,如果直接把面包板塞到底座里可能会影响齿轮旋转,而且线材松动的话容易断开或者短路。



所以更推荐用定制PCB。我之前设计了一块PCB,刚好适合这个项目。新版PCB还改进了供电接口,更方便接线。如果需要,可以去PCBWay上订购这块PCB:https://www.pcbway.com/project/shareproject/How_to_Build_a_Motorized_3D_Scanning_Turntable_for_Your_Phone_20b5a863.html


现在,把所有电子元件和焊接工具准备好,我们开始焊接吧!
第四步:焊接与测试



焊接完成后,把步进电机驱动芯片插到PCB上,对齐芯片上的凹口和PCB上的标记。然后把PCB放到底座里,连接步进电机。

接下来设置供电线路。如果想加个开关,可以用两针开关控制通断,也可以直接连适配器。我用的是老版PCB,所以用了圆形插孔,但新版PCB已经改成了两针端子,更方便接线。


接好之后,把代码上传到ESP8266开发板。代码很简单,就是让步进电机按一个方向旋转。
c++
// wait for a single step of stepper
int delaytime = 2;
// ports used to control the stepper motor
// if your motor rotate to the opposite direction,
// change the order as {4, 5, 6, 7};
int port[4] = {15, 13, 12, 14};
// sequence of stepper motor control
int seq[8][4] = {
{ LOW, HIGH, HIGH, LOW},
{ LOW, LOW, HIGH, LOW},
{ LOW, LOW, HIGH, HIGH},
{ LOW, LOW, LOW, HIGH},
{ HIGH, LOW, LOW, HIGH},
{ HIGH, LOW, LOW, LOW},
{ HIGH, HIGH, LOW, LOW},
{ LOW, HIGH, LOW, LOW}
};
void rotate(int step) {
static int phase = 0;
int i, j;
int delta = (step > 0) ? 1 : 7;
step = (step > 0) ? step : -step;
for(j = 0; j < step; j++) {
phase = (phase + delta) % 8;
for(i = 0; i < 4; i++) {
digitalWrite(port[i], seq[phase][i]);
}
delay(delaytime);
}
// power cut
for(i = 0; i < 4; i++) {
digitalWrite(port[i], LOW);
}
}
void setup() {
pinMode(port[0], OUTPUT);
pinMode(port[1], OUTPUT);
pinMode(port[2], OUTPUT);
pinMode(port[3], OUTPUT);
}
void loop() {
rotate(100);
}
如果测试时发现电机卡住或者有噪音,可以试着调整代码里的引脚顺序,或者直接翻转电机连接器。



调试好后,把齿轮板装回去,再装上顶板。现在试试看,中间层是不是能平稳地旋转了?如果一切正常,就可以进入下一步了!
第五步:使用Polycam进行3D扫描

在iPhone上找了一些3D扫描应用后,我选择了Polycam。

这款软件操作简单,而且效果不错。
下载Polycam后,可以跳过订阅页面直接免费试用。


在扫描界面,有两种模式可选:手动模式需要每次手动按快门拍照,而自动模式只需要点一次"录制",它会按一定时间间隔自动拍摄。


把物体放在转盘正中央,再把手机装到支架上。点"录制"按钮,然后启动转盘,应用会自动拍照并保存图片。如果想提高扫描质量,可以降低电机速度,让每次拍摄更稳定。目前代码里的默认速度大概能拍60张照片完成一次360度扫描。





拍完后,点"上传并处理",等几分钟就能生成一个3D模型了!效果还是挺不错的,即使是随便扫一下也能看到不少细节。如果稍微调整一下设置,相信效果会更好。

最后,你还可以把模型导出成多种格式保存或分享。
就这样,一个简单又实用的3D扫描转盘就完成啦!大家有什么建议欢迎在评论区交流~ 希望你玩得开心!
文章首发于DF创客社区