JetBot 系列教程之电机驱动
来自Waveshare Wiki
JetBot 例程使用教程
- JetBot 系列教程之登录JupyterLab
- JetBot 系列教程之电机驱动
- JetBot 系列教程之手柄遥控
- JetBot 系列教程之OLED显示
- JetBot 系列教程之自主避障
- JetBot 系列教程之目标巡线
- JetBot ROS AI Kit 主页
步骤1、打开Basic_motion程序
- Basic_motion 是NVIDIA官方提供的电机驱动脚本,主要用于测试电机安装是否正确。我们以摄像头的方向为向前方向,OLED屏幕的方向为向后方向。
- 使用谷歌或者火狐浏览器登录网址http://<jetbot_ip_address>:8888连接到小车【jetbot_ip_address是小车显示的ip,注意将“<>”去掉】,左侧文件夹打开“jetbot/notebooks/basic_motion/basic_motion.ipynb”文件
- 你可以看到例程中已经有了大量备注,同时程序分成了多个单元(后面我们讲到代码就以单元的说法来说每个代码块)。当你想要运行某个单元的时候,你可以点击该条语句,然后按下ctrl+enter按键或者点击“△”,就可以运行该条语句了。
- 例如,第一条语句是调用封装好的jetbot库,我们鼠标点击该单元,会有蓝色高亮显示,然后键盘按下Ctrl+Enter语句就会运行了。可以看到,当程序在运行的时候,单元前的括号中显示星号,表示代码正在执行。你也可以观察右上角的python3图标,后面如果是实心圆就说明kernel正忙,如果是空心圆,说明kernel空闲,可以运行下一单元了。
步骤2、引用函数库
- 我们在写程序的时候,很多时候需要引用一些已经封装好的函数库,可以大大节省我们的精力。同样的,这里开头直接引用JetBot库。JetBot主要封装好了操作Jetbot小车的一些基本函数,像小车运动函数,摄像头操作函数等
- 驱动电机主要调用了Jetbot函数中robot类,你可以在jetbot/jetbot路径下查看robot.py程序
步骤3、控制运动
- 运行图中语句 robot.left(speed=0.3)小车将左转,你也可以修改speed值改变电机转速
- 文件开头的引入库和相关类语句是必须先运行的,否则后面的单元无法正常运行。所以,请按顺序一步一步来。
- 下面语句时导入了time函数库,使用时间函数控制小车运动0.5s,然后停止。这里我们直接给电机赋予速度值,因此在Python中你既可以加参数名,也可以不加。
- 当然你也可以自己写程序感受一下。点击“+”号添加新单元,编写让小车前进一段时间后停止
- 你也可以直接给电机赋值,体验一下函数类的便捷性,如下图所示
步骤4、可视化控制
- 我们可以在web端使用widgets和traitlets创建图形工具来控制小车。如图中所示,我们开头先引用widgets函数库,以及调用Ipython中的display类。display类是为了可以把我们创建的工具显示在页面上,我们创建两条滑动条分别命名为left和right,滑动调的数值范围为-1到1,方向为竖直。然后在创建的小窗口中通过拖动滑条来设置小车转速
- 这里你可以使用widgets创建一个可视化按键。如设置宽100px、长80px的按钮,创建5个模块后可视化
- 然后编写每个按钮对应的处理函数,之后将按键跟对应的事件处理函数链接起来,你就可以运行代码来控制小车了
- 这里也有一个“心跳”控制函数,这里的“心跳”实际上是指小车网络宕机,即小车在运行中若宕机就会自动停止运动。你可以断网看看效果