搭建JetBot智能小车的准备工作

WhoseAI
1396 1 2019-05-12

伴随 NVIDIA Jetson Nano 的面世,同时也发布以 Nano 平台为基础的 Jetbot 开源智能小车项目,一时之间在行业内掀起一股风潮。首先让我们一起看看下面的短视频,感受一下这个小东西的最主要功能 -- 避障,包括识别出平面上凸起的障碍物(静止或移动)、凹陷的地方(桌边),很厉害吧!更加让人难以想象的,整个 Jetbot 小车没有任何一个“距离检测”的传感设备全部透过车头的一个摄像头来完成物件识别,这是让人最感到惊奇的部分,完全颠覆过去小车应用的思路。

接着我们赶紧看一下 Jetbot 具有哪些吸引人的特性:

1、价位非常适宜

      与过去 NVIDIA Jetson TX1/TX2 动辄 5000RMB 以上的小车相比,这个 Jetbot 的搭建成本大约在 1500~2000 RMB 之间,十分亲民。

2、使用的组件相对少,组装布线非常容易

      市场上绝大部分小车,除了摄像头(多为 USB)之外,通常还需要些检测距离的传感设备,高级一点的用激光测距仪(入门就得 500+ RMB)、普通一点的用超声测距(虽然只有几元,但精度不好),这些输入设备(包括摄像头)大部分存在”位置安装(可能需要打孔)“、及众多的”接线布线“问题,对新手来说是个相当苦恼的事情。
      Jetbot 只使用一个支持 IMX219 规格的 CSI 摄像头(与树莓派接口相容),利用深度学习技术的影像物件识别能力,来识别障碍物(包括凸起或在凹陷)并进行避障功能。输入设备的安装只要解决一个软排线问题就好了,这让整台车显得非常清爽,而且很容易安装。除了电机控制板需要焊接之外,其余部分可在一小时之内完成组装。

3、开源机构打印文档

      过去搭建一台智能车的时候,底座的选择一直是件非常头痛的入门问题。市场上提供的金属或者亚克力底座,绝大部分都非常冰冷(棱棱角角),稍微有点造型的也都十分昂贵(上千元),绝大部分的人都缺乏自行设计 3D 结构的能力(非该项专业),因此要弄出一台稍微像点样子的小车,实在是困难重重,通常只能选择丑丑的底座,先实现一些功能再说。
      这次  Jetbot 开源项目,连 3D 结构图也一并开源,这对绝大部分人来说是个天大的福音,更重要的是,造型设计的还蛮不错,使用者只要下载 3D 的 .stl 文档用 3D 打印出来就可以了。如果用最低成本的 PLA 材质打,算算也就几元成本而已,要好一点的话,将图档传给专业 3D 打印外包服务公司用树脂材料打印(原色为纯白),一套大约就150~200元人民币,如果还想做专属的颜色处理,一般也不超过500人民币,十分方便。


4、用充电宝作为电源供应设备

      电源供应系统一直是搭建小车的一个头痛部分,大部分时候会选择使用锂电池的组合。但锂电池的接头种类非常繁琐、并且只有一个输出供电口,如何应对多个设备的供电?还有电池充/放电所产生的寿命问题。。。等等,对让初学者来说都是非常头痛的问题,可能还需要很多额外电线 + 焊接作业,来完成整个供电系统的部署。
      这部分出错的几率不小,更严重的问题是,如果线路没接正确,所付出的代价就是“电器设备烧毁(附带有火花、冒烟、烧焦味,还有一个凄厉的惨叫声)”,这种风险对大部分初学者来说,都得面对很大的压力,每次接完线路要开启电源时的忐忑心情,就好像电影中“拆弹专家”要剪线时一样心惊胆跳,一旦弄错的话,这后果就。。。。(自己去想了!)
      Jetbot小车有两个需要供电的元件:Nano与电机控制板,二者都接受 5V 电压,因此设计者用普及度非常高的手机充电宝作为电源,必须佩其高明之处,因为这种电源十分容易取得,几乎都支持两个 5V 输出,并且接口(输入与输出)都是最为普及的 USB 口,实在太方便了。只要选对 USB 线材就没有其他什么问题。跟以往我们搭建小车时,在电源上的尝试与摸索所消耗的时间相比,这个充电宝的选型问题,就只剩外观的尺寸而已(要能塞得进小车),实在太方便了!

好了,拉里拉杂说了一堆 Jetbot 硬件设计的好处,接下来就进入正题:搭建Jetbot要考虑的细节!


        虽然网上已经有不少人将Jetbot项目的原文整套翻译过来,但也就是个翻译的事情,其实原文就存在一些需要改进的细节问题,所以我们在此会对步骤做出一些调整,让您少走一些弯路,减少挫折感,更快享受 Jetbot 的乐趣。

        这里附带声明一点,在原版配件当中有个 PiOLED 显示屏(如下图),基于以下几个理由我们认为可以不需要,因此本文里并不处理这个配件。


1、PiOLED 其实只有两个用途:显示Nano启动状态 + 无线网卡的IP这两个功能都非必要项,PiOLED也是可有可无
2、原厂提供的型号,在国内不容易买到。一开始我根据原厂型号在淘宝上找到三家供货商,但联系过后都表示国内缺货,后来找到另一家表示有货,结果付款之后才发现,原来供应商是接到我的订单再向国外采购,于是从付款到收货,足足等了10天时间。当然,可能现在因为有需求,所以有些供应商会开始备货。
3、网上也有人提供改装件,但需要绑定他们的一块电路转接板才能使用。这种被绑的感觉其实不太舒服!
4、这个 PiOLED 还需要额外的焊接,处理起来是有难度的


接下去正式展开 Jetbot 的准备工作
Part 0、配件总表与概略成本

设备名称

数量

参考单价(人民币)

Jetson Nano

1

899

车座 3D 打印

1

150~500

64GB TF卡

1

60~120

电机控制板

1

~50

TT电机

2

3~40

TT轮

2

1~5

USB转MicroUSB线

2

6~30

CSI摄像头

1

~150

无线网卡

1

30~80

充电宝

1

30~120

风扇(4cmx4cmx1cm)

1

4

杜邦线(本案例为母对母)

4

忽略

M2(2mm直径)螺丝

20

忽略

小计


1,400 ~ 2,000

可与原厂的 BOM 料表做个比


Part 1、车身3D打印

文件下载位置链接:https://pan.baidu.com/s/1AMqmbAmoySUOVmUE-2S6PA 
提取码:4a9z 
注意,原厂提供的 .stl 文档,可能存在打印角度错误的问题,需要自行调整以下,请参考原厂的输出图(如下)


此外,关于打印机的相关参数,也可以在 https://github.com/NVIDIA-AI-IOT/jetbot/wiki/3d-printing 最下方获得。


Part 2、采购并焊接电机控制板

型号:淘宝搜索“电机驱动板 DC-Stepper-Motor PCA9685+TB6612”关键字就能找到很多供应商,几乎都是提供散件,需要自己焊接。
需要焊接的点:如下图。

注意重点:右下角 3V3 是从最右下角往上数第二个孔位,请勿弄错。
各脚位的对应功能如下图:



Part3、两组电机与轮子:

轮子部分选择 ”65mm TT车轮“(注、原厂用60mm的,但国内较通用的是65mm)
电机可在淘宝上搜索“TT马达”就能找到一大堆,建议挑选已经把供电线焊好的产品,可以省点事。



Part 4、采购并处理供电的USB线

这个部分有个很细微的部分,需要谨慎处理,最主要与您选择的充电宝有关。原厂采用“弯头USB”线,我们也推荐这种,可以节省点空间,提高美观度。但“弯头”并非必要项,如果您手边有闲置的 USB线也可以拿来用,顶多是稍微丑一点,并不影响功能!如果需要弯头数据线,可至此处选购,至少有一条是“MicroUSB 右弯”的种类给 Nano 使用(如下图),否则就不需要弯头USB线。


需要电源的部分主要有两个:Jetson Nano 与 电机控制板,前者需要一条完整的 USB - MicroUSB 线,后者这需要将另一条 USB 线减掉,只抽取里面红色(供电)与黑色(底线),如下图


至于整条线要留多长?总共大约 20CM 是足够的



Part 5、采购TF卡并烧录Jetbot镜像

采购 TF 卡之前,请先参考“Jetson Nano必读-第一站:选择TF卡”一文。
Jetbot项目提供专门的镜像,需要64GB以上容量,点击这里可链接原厂的镜像下载,不过这个是位置在 https://drive.google.com 上,未必能下载得了,这里为您准备了我们存放在百度网盘的镜像(提取码为 cjb9),然后用 Etcher 软件执行刷机即可。
假如您实在挤不出 64GB TF卡,没关系,有个 32GB 容量的也行,先刷上Nano 最基础镜像(这里不赘述),插入 Nano 开机后,然后按照这个流程(点击)自行一步一步地安装 Jetbot 所需的环境,总共大约需要 20GB 容量。


Part 6、采购树莓派 Camera Module 2 的 CSI 摄像头

Jetson Nano目前测试下来,只支持s树莓派 Camera Module 2 (参考 https://www.raspberrypi.org/products/camera-module-v2) 的 IMX 219 系列摄像头,如果用错了是认不到的,详细请参考官方 https://elinux.org/Jetson_Nano#Cameras的列表。
至于安装 CSI 摄像头的步骤,请参考“菜鸟手册(2):给Jetson Nano安装树莓派摄像头”一文,有非常详细的说明


Part 7、准备无线网络设备

由于 Jetson Nano 本身不带 Wifi 功能,因此无线网的功能,需要加装无线网卡来实现。
Jetbot 官方使用 M.2 接口的 Intel 无线网卡,但这种方式,不仅需要将 Nano 模块从底板上拆开,此外还需要再购置并且安装贴片式的天线,是相对麻烦的一种方式,我们并不推荐这种用法,所以在此不多加说明,如果想要了解的话,请自行至 https://github.com/NVIDIA-AI-IOT/jetbot/wiki/hardware-setup 参考 Step 6 ~ Step 8 三部分。

我们推荐使用 USB 的无线 Wifi 网卡,插上就能用,目前已经确认有两款设备可用:EDIMAX EW-7811U与360随身WIFI2,如果有其他可用的USB Wifi网卡的话,也请告知我们,将它加上去。


Part 8、准备4根杜邦线,并确认接线

最后有个步骤,用杜邦线连接 Nano 与电机控制板的四个脚位(如下图),这部分在官网安装过程中使用文字说明,很容易出错。这里我们将它标示清楚,特别是 3.3V 与 GND 如果接反的话,会把电机控制板给烧了(本人就踩到这个大坑),所以必须谨慎处理。



Part 9、测试电路

在将所有元件装上 Jetbot 之前,建议先把线路都接上,简单测试一下是否能正常工作?然后再将元件安装官方教程的步骤装到指定位置,否则等到您把东西全都装上去之后,一旦遇到bug(最常见的是焊接问题)的话,又得拆下来再测试,这个是效率比较差的做法。因此我们建议在安装之前,先做好线路测试(如下图)会更加高效。



Part 10、进行组装

只要前面每个步骤都仔细处理好的话,最后的组装其实就非常简单,请自行参考原厂提供的组装步骤:https://github.com/NVIDIA-AI-IOT/jetbot/wiki/hardware-setup,相信是水到渠成的!



请关注我们后期的安装教程视频