Orangepi&小车文档说明

写在前面

需要下载的东西(合集),点下边链接,两个链接下载的东西是一样的,不过一个需要登录,一个会过期

  • https://www.123pan.com/s/44PTjv-Gstrv.html (永久有效,但是需要登录)

  • https://ttttt.link/f/66797e65bc354 (无需登录,但是会过期)

    下载后,该安装的安装,该解压的解压,安装的时候,如果看不懂,就别动,一路next就行

  • 文档能解决百分之八十的问题,务必阅读

  • 本篇博客更新时间:2024.6.24 22:30

  • 推荐安装一个 VScode,用于编写代码

  • 在使用香橙派的Linux系统时,任何地方要输入密码时,密码都是 orangepi,Linux里输密码时,都是默认不显示的,输完摁Enter就行了

  • 可以自己配一把好用的 螺丝刀(十字和一字的都需要)

  • 拧螺丝的时候别拧太紧,差不多就行

  • 拿板子的时候,要捏着板子的边缘,别碰到芯片,不要带电插拔!!!

  • 搞一块小巧的充电宝,至少有usb+type c 或者 usb+usb 的接口

  • 不用拘泥于我的步骤,我这里只是个示范,可以自己补充

  • 4b1c6c82a29cfa17e414f77728fc8ed

    这是组装好的样子,可以看到,有轮子,车架,机械臂,各种线,板子等等。

    要做的事情就两个,把这个车子给拼起来,然后给orange pi 装一个Linux系统,最后把写的程序放上去就好

一、香橙派硬件说明

image-20240617204619276

image-20240617204628211

image-20240617204644660

image-20240617204724444

image-20240617204831577

这些东西吧,其实官网都有,可以看一下,咱们这个是1GB内存的

http://www.orangepi.cn/html/hardWare/computerAndMicrocontrollers/details/Orange-Pi-Zero-3.html

Orangepi 这个东西本质上就是个小型的计算机,只不过资源受限,编程时要考虑的更多

二、香橙派入门

2.1 TF卡烧录

首先把需要下载的压缩包给解压,然后把里面的安装包给解压和安装。(烧录软件+镜像)

  1. 找一个读卡器,把tf卡插入电脑(有的电脑自带tf卡口,插进去就好)

872e1544781c078ba93812f7a957122

  1. 将tf卡给格式化

    有的插进去后会自动弹出来这个界面,有的没,不过没关系

    image-20240618085730240

    手动格式化:

image-20240618085819616

image-20240618085857087

  1. 镜像烧录

打开这个软件,界面如下:

image-20240618090050849

我们点击 “ 从文件烧录”,选择之前下载的镜像文件。

image-20240618090202786

然后点击 “ 选择目标磁盘”,选择我们插入的tf卡

image-20240618090252179

最后点击 “现在烧录”

image-20240618090353669

等待进度条加载完就好了

image-20240618090530587

显示烧录成功

image-20240618090634412

把卡拔下来,进行下一步操作

2.2 将TF卡插进Orange pi

  1. 把TF卡插入Orange pi

    image-20240618140603108

    2.USB转TTL模块的GND、TX和RX引脚 需要 通过 杜邦线 连接到开发板上的调试串口,具体如下(重要!!):

    • USB转TTL模块的GND应连接到开发板的GND

    • USB转TTL模块的RX应连接到开发板的TX

    • USB转TTL模块的TX应连接到开发板的RX

    • 示意图:

      image-20240618140907931

      image-20240618141005705

      image-20240618141029707

2.3 串口调试,连接WiFi

因为我们这是第一次刷上系统,为了后续方便我们用ssh连接,我们先需要进入系统连上WiFi,拿到ip,然后就可以用SSH了,那第一次我们就需要使用串口连接,稍微有点麻烦,下边是教程。

  1. 将上边的模块插入电脑的USB接口,并通过Type C口接入电源(绿色的板子上有一个小的拨钮,需要拨到上方。)

在这里插入图片描述

  1. 打开 MobaXterm_Personal 这个软件

image-20240618142353831

image-20240618142414975

  1. 点击左上角的 Session

image-20240618142453109

  1. 点击Serial

image-20240618142614168

  1. 选择串口 名为 USB-SERIAL CH340 的串口,然后设置码率为115200,点ok。

image-20240618142747026

  1. 这时候可能会直接弹出一个终端界面,如果没有,就手动点击左侧的session 列表,选择刚才自己 创建的,双击点开。

image-20240618143110801

如果终端卡主了没东西显示,就把电源拔掉然后重新插上。直至显示下面的界面就代表OK了,出现OPI Zero3 的Logo。这个界面可能会有的字符显示乱码,没关系,不影响。

image-20240618143223806

❗如果没出现,请排除下边的原因:

①RX要对应TX , TX要对应RX。

②绿色的板子上有一个小的拨钮,需要拨到上方。

​ 然后再重复上述操作。直至进入系统。

  1. 打开WiFi,连接WiFi

    • 输入 sudo nmcli radio wifi on 命令,此命令用于打开香橙派的WiFi。
    • 连接WiFi的命令: sudo nmcli dev wifi connect ISMCS password "cloud-edge"

    ❗注意:这步是用于让orangepi连接自己的WiFi,大家连接时,要换成自己的WiFi的用户名和密码。比如说,我这里的WiFi的名字是ISMCS ,密码是 cloud-edge,大家一定要根据自己的情况,换成自己的,别直接连Bistu这个校园网的WiFi,因为这个校园网需要认证,但是这里没法认证,当然,可以用自己的手机热点,但是切记,自己的电脑的WiFi也要连到相同的WiFi,实现orangepi和自己的电脑处于同一个内网中。

image-20240618144616673

  1. 查看orange pi 的ip

    输入命令 nmcli,该命令用于查看网络信息

    image-20240618144826110

上图中,inet4对应的属性就是orangepi的ip地址,这个可以记下来,比如我这里就是 192.168.1.213

2.4 SSH连接

我们在拿到ip之后,以后就不需要通过串口连接了,可以通过SSH,香橙派每次开机,都会自动连接WiFi的,但是因为DHCP的存在,有可能这个ip地址也会变,当我们用ssh连不上时,就要考虑再次用串口调试下。

  1. 打开 FinalShell 这个软件

    image-20240618145239834

  2. 新建一个SSH连接

image-20240618145422412

填入刚才记录的香橙派的ip地址,用户名和密码都是 orangepi,其他不用动,名称随便填

image-20240618145521582

  1. 开启该连接,双击点击该下图中的位置

image-20240618145603996

  1. 弹出一个警告,我们点接受并保存(只会在第一次弹出来)

  2. 同样,出现orange pi 的logo时,就代表连接成功

    image-20240618145825957


❗:连不上的原因可能如下:

  1. ​ ip输入的不对
  2. orange pi 和电脑没处于同一个内网中,也就是这俩设备要连同一个WiFi
  3. 之前的操作中,香橙派根本就没连上WiFi,再次用串口调试下

2.5 Linux安装软件

先分析下我们都需要安装什么,首先,python是必要的,然后python需要利用pip安装一些库函数,比如web服务器的,串口的

那我们就示范下怎么安装。

2.5.1 安装python和pip

sudo apt-get install python3-pip

会要求输入密码,密码是orangepi,反是用到sudo,密码都是这个,不再说了,还有就是,Linux里输密码时,都是默认不显示的,输完摁空格就行了

image-20240618151403612

出现如下界面,输入Y

image-20240618151519900

安装成功,如下

image-20240618151604768

2.5.2 安装web.py

  1. 安装python的web库,用于http通信,命令如下: (如果安装失败就去掉 --break-system-packages`)

sudo pip install web.py --break-system-packages

  1. 如何测试已经安装成功?

命令行 输入python3,然后输入 import web,如果没报错就代表导包成功了,然后输入exit() 退出python环境。

image-20240618152705277

2.5.3 安装serial库

  1. 安装pyserial库,和上边的流程一样,这个库是用于操作串口的,通过串口来控制小车的各种设备,命令如下:

sudo pip3 install pyserial --break-system-packages

  1. 测试是否安装成功

    输入python3

    输入import serial,没报错,就可以输入exit()退出python环境了


理论上安装这两个库就可以了,如果想实现各种功能,需要用到其他的python库,可以自己安装。

2.6 Linux 设置自启程序(选做)

这里要设置开机自启一个程序(初始化,需要关闭一些端口),为了后续安装小车时的一些需要。

2.6.1 传递文件

这里我们通过finalshell这个软件给orangepi发送一个软件,看我操作。

  1. 首先打开我们之前下载的文件里有一个文件夹,叫做 小车示例代码,找到boot.py这个文件

    image-20240618153927859

  2. 打开Final Shell软件,进行发送(前提是连上了ssh)

    image-20240618154007205

选中,然后确认

image-20240618154101803

可以看到orange pi 的/home/orangepi 目录下多了一个boot.py的文件

image-20240618154154980

那我们接下来要做的就是实现 开机时,自动执行这段程序。

2.6.2. 通过rc.local文件来实现开机自启(非必要)

rc.local文件位于/etc/rc.local文件下,当Linux系统开机时会以root权限对这个文件中的脚本内容进行执行,所以我们可以通过在这个文件中加入应用启动脚本来完成我们想要的效果。

步骤一:编辑/etc/rc.local文件,命令如下(使用vim编辑)

sudo vim /etc/rc.local

要输入密码,然后显示如下界面

image-20240618154704373

我们使用键,让光标来到exit 0 的上方,然后摁 i 键,进入vim 的编辑模式,输入如下代码

python3 /home/orangepi/boot.py &

如图所示:

image-20240618155337306

接着 按ESC,敲 键,输入wq,保存文件并退出。这样,以后每次开机时,都会自动启动这段代码了,并且是后台执行的。

image-20240618155526750

2.7 用到的linux命令

请看下边的这个链接的文章:(不断完善中)

常用的Linux操作

三、小车组装

Linux至此已经安装成功,接下来可以组装小车了。

这个环节主要包括这几个部分:车架、车轮、电机,3d打印的支架,以及这块绿色的小板子

这步安装好后的样子是什么样:

869309778aecd53fb77c0b5be1914e6!!!!!注意车轮的方向:看下图是怎么装的
在这里插入图片描述

3.1 车轮安装

这里我示范一个车轮怎么安装,其余的都类似,注意方向即可

这步需要的零件如下图:

7f73ae76e4306ad09c46805291fd212

步骤如下

  1. 对准电机和车架上的孔位

2252e615bf26e05a746a90d51aa6b10

  1. 置入两颗长的螺丝

    fed026b05b880c2fd3dddf88ee08014

  2. 拧螺母

    53d0d1bda71307fcc80ce628eabd809

  3. 装上轴承套(我也不知道这个叫啥,就这个白色的塑料的小玩意)这步务必怼紧一点

d4d6926db0a48a75fd83cbe2ebce5d5

  1. 对准,装车轮

    7ad0eccf46450152a808243519d9db9

  2. 拧螺丝

    06dcb6618a85d073b8f87af76993028

其余三个步骤都一样的,注意电机安装的方向即可。

3.2 固定orangepi 和电机控制板

先看这步完成的效果

f1df81b54cd6645904cf414a60eaa5a

可以看到需要这些东西:3D支撑,电机控制板,OrangePi,螺丝螺母(需用到一字螺丝刀)

这步最好给四个车轮标个号,不然一会就不知道装的哪个了,此步骤所需零件如下图

a26869d718f0b559ccc15f590a3b720

具体步骤如下

  1. 提前装上这6颗螺丝,注意左边这两个是长的

b40d91c1aa6b3fa6e9bfe4cf3751a20

  1. 将3D支撑装到车轮上,注意我在图中圈出来的孔位,要对准,然后拧上螺丝和螺母

5860285c0e7b9ae70dab85420a4d953

  1. 将Orangepi给固定住,注意四个角的螺丝(可以找个镊子,这个不太好用力)

3d448d92d281ac5f64314c3b95868dc

  1. 安装和固定 电机控制板(对齐+拧螺丝)

用线连接电机

注意,我这里为了方便,给四个轮子进行了编号,我的做法是

  • 1号轮子连接板子上的po1
  • 2号轮子连接板子上的po2
  • 3号轮子连接板子上的po3
  • 4号轮子连接板子上的po4

我这里只是个示范,为了方便,这样连接。

如果不这样连接,后边在编程时需要自己一个一个调试,哪个GPIO口对应哪个轮子(电机),其实都可以的,后边都可以自己慢慢调。

  1. 连接小车电机电源线。

    为了驱动小车,我们使用外置电源给小车的电机供电,可以看到我们有一个USB线(红线+黑线)

    我们让红色的线连上UCC,黑色的线连上GND。

    USB口连接外置电源(安装完毕后再连),如图所示

    c3828835f709832175162a720c16e81


至此,小车部分安装完成,开始下一个环节,机械臂组装。

四、机械臂组装

我们还是先看组装完是什么样,如下图

需要提醒的是,安装机械臂的时候,有一些细节需要注意,各种微调。一定要心细一点。

最后是需要将 机械臂安装到小车上固定的,但是为了调试方便,我们就先单独安装机械臂调试。

60ffb5890660f146d26f2cfde7a253a

我先给大家讲下这部分包含什么:6个小电机,机械臂架子、固定的小片、螺丝若干、平面轴承

4.1 安装教程

4.1.0 电机还原到初始位置

这步的目的是把电机的选择角度设置一个固定的位置,比如我这里设置的是90°(电机的范围是0到180°),这样每次连上,电机都在一个固定的位置,方便后续操作。

非常简单,这个绿色arduino板子提前刷好了代码,只要把电机插入对应位置,然后usb连接到电源通电,就会自动转到90°的位置(初始位置)大家可以装一个试一个,也可以一次性全还原到初始位置(后续需要一点点微调)

如图所示,大家要注意电机的线是如何插到板子上的,注意方向。

b0033db05f2527678fa85e80b341db8

06ac6e8738babe72d25c1434b473be6

4.1.1 安装底座

把舵机插入底座,把平面轴承放在底座里,安装底座上盖

注意:要对准位置,下图3中,电机的方向和我盖子上的方向要一致,这样才能实现让初始位置在一个合适的位置。

90c3b3aa1e9b5a6598044943a73a1fd

下边这个是个示意图,看看就行,不太对的上

image-20240620105751047

4.1.2 安装大臂舵机

拧上边那个螺丝的时候还是有点技巧的,先从正面那一个镊子或者有磁力的螺丝刀给捅进去,然后再用螺丝刀从右边那个孔穿过去拧紧

5bce231c4fde66f34121dd14c731e76

image-20240620152012090

image-20240620152145408

还有两个关节跟这个一模一样,效果如下

743bf32d4f71f82ae2cc621768491c9

4.1.3 安装夹子

需要的零部件如下:

a3996e36d64e8a9c865994de49505d5

b88f67856a63142168a2a3c841848f8

image-20240620152652263

image-20240620152721890

bd1eb31aae36ddb39eb64930c7dfff6

e74e35143c473ae5b81dd3666e9565c

拧螺丝记得

51f326effa1d8482d39b9ed9bae3bc8最后把这个夹子跟之前的装一块就完事了

77706d8486dcedde0053ca345654dc5

9361fd29c128f4d9209ddbef9650d98

e9bddae17b2d398dbaae99b47f5b642

❗ 还是要说,装舵机之前记得要提前给调整到初始位置,然后就是不要拧太紧,插上电之后看有没有异响(有就说明某个舵机被卡住了),需要一个个排查好

4.2 机械臂调试教程

我们在组装好之后,可以对机械臂进行调试了,当然,调试非常简单,需要用到 电脑那块带usb口的绿色板子

我们需要一个调试工具,就下边的这个XCOM,在之前的压缩包里也有,双击打开就行

image-20240620153820900

我们先把机械臂上的线接到板子上,记得自己接的顺序,我的建议是从上到下,分别接板子上的M01,M02…M06。如下图所示

fc2001018601d33436002c6188c22f5

我们打开 XCOM这个软件,界面如下

我们先选到我们的这个串口( CH340)

image-20240620154805193

波特率调到115200

image-20240620154841568

勾选 16进制发送,输入对应的指令 发送即可

image-20240620154934507

指令格式说明

为了方便说明,大家可以看下给这个板子刷的源码(看懂即可)

#include <Servo.h>

unsigned char buf[6];

//标志位
int sm=0;
Servo servo0, servo1, servo2, servo3, servo4, servo5;

void setup() {
  Serial.begin(115200);
  servo0.attach(3);
  servo1.attach(5);
  servo2.attach(6);
  servo3.attach(9);
  servo4.attach(10);
  servo5.attach(11);
  servo0.write(90);
  servo1.write(90);
  servo2.write(90);
  servo3.write(90);
  servo4.write(90);
  servo5.write(90);
}

void loop() {
  char str[255];
  if (Serial.available() > 0) {

    int inByte = Serial.read();

    switch(sm){
      case 0:
        if(inByte==0xaa){
         sm=1;
        }
        break;
      case 1:
        if(inByte==0xbb){
         sm=2;
        }
        break;
      case 2:
        buf[0]=inByte;
        sm=3;
        break;
      case 3:
        buf[1]=inByte;
        sm=4;
        break;
      case 4:
        buf[2]=inByte;
        sm=5;
        break;
      case 5:
        buf[3]=inByte;
        sm=6;
        break;
      case 6:
        buf[4]=inByte;
        sm=7;
        break;
      case 7:
        buf[5]=inByte;
        sm=8;
        break;
      case 8:
        if(inByte==0xcc){
          sm=9;
        }
        else{
          sm=0;
        }
        break;
      case 9:
        if(inByte==0xdd){
          servo0.write(buf[0]);
          servo1.write(buf[1]);
          servo2.write(buf[2]);
          servo3.write(buf[3]);
          servo4.write(buf[4]);
          servo5.write(buf[5]);
        }
        sm=0;
        break;
      default:
        sm=0;      
    }
  }
}

指令格式如下(示例)

aa bb 3c 5a 5a 5a 5a 5a cc dd

其中,aa bb 和 cc dd 是指令的头和尾,没啥用

3c 5a 5a 5a 5a 5a 都代表16进制的角度(比如,5a=90°)

而且这六个位置分别代表 M01 , M02 , M03 , M04 , M05 , M06 接口对应的舵机的角度(自己看对应的是哪个)


注意:第一个位置(夹子对应的那个电机)设置的时候一定不要超过90°!!!!!!不然会卡死

五、机械臂和小车结合

我们在把机械臂给调试完成后,就可以开始这一步了。

我们需要先把底座给拆下来,方便拧螺丝

我这块有问题,还没来得及改
问题在于螺丝放反了,应该是螺母头朝外,跟我下边这个图相反,望周知

5.1 机械臂固定

在小车上选个合适的孔位,拧上螺丝和螺母(垫片)固定住即可

7895ad72092dc2458ac3dc7d7a57f5c

装好后如下图

2f201ef2871b83fd4910e4d9fb2940a

5.2 固定板

应该是有一颗比较细的螺丝和螺母,固定到如下图的位置,以免板子给掉下来

image-20240620180558797

5.3 机械臂供电

这里需要给机械臂拉一根5V的线来给其供电,不然会无法驱动机械臂。如下:
在这里插入图片描述

5.4 外接电源

这里我讲下:

那个有着红黑线的USB口连接充电宝上的USB口

再找一根有Typec的线利用充电宝给OrangePi供电

image-20240620181412064


至此,所有的硬件安装教程已结束。

六、代码及小车控制原理详解(under construction)

概述:在orangepi 上创建一个HTTP服务器,然后通过客户端给服务端发HTTP请求,服务器根据请求的类型和参数进行相应的操作。

​ 其中,操纵小车使用的是GPIO(利用Linux命令),操作机械臂使用的是串口通信(调用相应的Serial库)

本教程中 服务器端使用的python,客户端使用的是JavaScript

6.1 HTTP基本知识

大家作为计算机相关专业,对HTTP这些协议的使用早已烂熟于心,但为了教程的完整性,在这里进行一个概述

6.1.1 服务器端

6.1.2 客户端

6.2 小车代码详解

6.3 机械臂代码详解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值