JetBot 系列教程之电机驱动

来自Waveshare Wiki
跳转至: 导航搜索

JetBot 例程使用教程

步骤1、打开Basic_motion程序

  • Basic_motion 是NVIDIA官方提供的电机驱动脚本,主要用于测试电机安装是否正确。我们以摄像头的方向为向前方向,OLED屏幕的方向为向后方向。
  • 使用谷歌或者火狐浏览器登录网址http://<jetbot_ip_address>:8888连接到小车【jetbot_ip_address是小车显示的ip,注意将“<>”去掉】,左侧文件夹打开“jetbot/notebooks/basic_motion/basic_motion.ipynb”文件
J48.png
  • 你可以看到例程中已经有了大量备注,同时程序分成了多个单元(后面我们讲到代码就以单元的说法来说每个代码块)。当你想要运行某个单元的时候,你可以点击该条语句,然后按下ctrl+enter按键或者点击“△”,就可以运行该条语句了。
  • 例如,第一条语句是调用封装好的jetbot库,我们鼠标点击该单元,会有蓝色高亮显示,然后键盘按下Ctrl+Enter语句就会运行了。可以看到,当程序在运行的时候,单元前的括号中显示星号,表示代码正在执行。你也可以观察右上角的python3图标,后面如果是实心圆就说明kernel正忙,如果是空心圆,说明kernel空闲,可以运行下一单元了。
Jetbot Web2.png

步骤2、引用函数库

  • 我们在写程序的时候,很多时候需要引用一些已经封装好的函数库,可以大大节省我们的精力。同样的,这里开头直接引用JetBot库。JetBot主要封装好了操作Jetbot小车的一些基本函数,像小车运动函数,摄像头操作函数等
Jetbot web3.png
  • 驱动电机主要调用了Jetbot函数中robot类,你可以在jetbot/jetbot路径下查看robot.py程序
Jetbot web4.png

步骤3、控制运动

  • 运行图中语句 robot.left(speed=0.3)小车将左转,你也可以修改speed值改变电机转速
  • 文件开头的引入库和相关类语句是必须先运行的,否则后面的单元无法正常运行。所以,请按顺序一步一步来。
Jetbot web5.png
  • 下面语句时导入了time函数库,使用时间函数控制小车运动0.5s,然后停止。这里我们直接给电机赋予速度值,因此在Python中你既可以加参数名,也可以不加。
Jetbot web6.png
  • 当然你也可以自己写程序感受一下。点击“+”号添加新单元,编写让小车前进一段时间后停止
Jetbot web7.png
  • 你也可以直接给电机赋值,体验一下函数类的便捷性,如下图所示
Jetbot web8.png


步骤4、可视化控制

  • 我们可以在web端使用widgets和traitlets创建图形工具来控制小车。如图中所示,我们开头先引用widgets函数库,以及调用Ipython中的display类。display类是为了可以把我们创建的工具显示在页面上,我们创建两条滑动条分别命名为left和right,滑动调的数值范围为-1到1,方向为竖直。然后在创建的小窗口中通过拖动滑条来设置小车转速
Jetbot web9.png
  • 这里你可以使用widgets创建一个可视化按键。如设置宽100px、长80px的按钮,创建5个模块后可视化
Jetbot web10.png
  • 然后编写每个按钮对应的处理函数,之后将按键跟对应的事件处理函数链接起来,你就可以运行代码来控制小车了
Jetbot web11.pngJetbot bot12.png
  • 这里也有一个“心跳”控制函数,这里的“心跳”实际上是指小车网络宕机,即小车在运行中若宕机就会自动停止运动。你可以断网看看效果
Jetbot bot13.png