旭日X3派初体验

  本人在此方面可以说是一位纯小白,在接触旭日X3派之前只学过STM32和51这两种控制板,也听说过树莓派,但没了解过,当初以为和32大差不差,刚接触旭日X3派的时候我就有点感叹,原来还有这么牛的东西,完全可以当成一台电脑来使用。是什么原因让我接触到了旭日X3派呢?我们近期要做一个高效智能机器人专项赛俄罗斯方块组的比赛,比赛要求要基于ROS通讯,我们不得不放弃平常用的最多的32来选择另一种控制方式,当然也是要用32的,毕竟还是用来控制下位机比较方便。最开始我选择用电脑装个ROS系统,之后就开始接触ROS,看着古月老师的文章和视频进行的学习ROS,然后就第一次接触到了旭日X3派,通过自己查询和咨询老师,我了解到旭日X3派完全是为这个比赛量身制作的,各种东西用起来都比电脑方便,经过我们讨论决定采用旭日X3派来作为我们项目的运算中心。

  作为这一方面的小白,我在安装过程中就卡了很长时间,安装可以参考手册https://developer.horizon.ai/api/v1/fileData/documents_pi/Quick_Start/Quick_Start.html#,这里面介绍的很全面,我就说一下安装过程中遇到的问题和安装简述,像我这样的小白可以看一下。

1)1号是USB Type C供电口,供电只需将另一端接到电脑的USB口就行。3号是串口,从右往左分别是GND,TX,RX,后面登录要用到。5号是两个USB接口,可以用来插鼠标和键盘。9号是HDMI接口,用来接显示屏。12号是tf卡槽。最初能用上的也就这些接口,其他接口功能可以看手册。

2)将Ubuntu镜像烧入TF卡中,注意不是把镜像粘贴进TF卡,过程参考手册。

3)插TF的时候要用力插到底。插到底会有咔的一声,我之前怕弄坏板子,干什么都轻悄悄的,最后TF卡没插到位,一直启动不了系统,卡了很长时间(真想扇自己)。

4)插上TF卡后(此时不要上电),这时候就要用3号串口了,通过USB转TTL将电脑和板子连接起来,接线参考手册,没错误的情况下,转接板上的红灯和蓝灯亮,接上显示屏。

5)根据手册安装MobaXterm用于接收串口数据,配置好之后MobaXterm什么都不显示,此时给板子上电,MobaXterm就会收到一大串数据,如果启动不成功(绿灯常亮)就看串口接收的数据参考手册的FAQ,这里总结了很多问题的解决方法。注意:就算不插TF卡串口也会接收到数据的。

6)系统启动成功(红灯常亮,绿的灭,显示屏显示地平线log,参考手册用MobaXterm登录,注意输入账号密码的时候,先输账号sunrise点回车,此时输密码sunrise,你会发现你无论输什么他都不显示,别怕,你没弄错,它就是不显示的。输完点回车就能进入了。(我当时也卡这里好久)

7)进入系统后首先要联网,如果你想连接你的手机热点时,这里手机的AP频段要设置2.4GHz频段,不然板子会检测不到。首先打开一个终端(不知道终端是啥的先看一下古月老师的ROS入门21讲),依次输入以下指令:扫描热点:sudo nmcli device wifi rescan列出热点,nmcli device wifi list连接热点,sudo wifi_connect wifi名称 wifi密码(注意空格)。也可以直接输sudo nmcli device  wifi_connect wifi名称 password wifi密码。此时输入ifconfig显示的一串数据,inet后面数字的是你开发板的ip。

8)安装TogetherRos包 sudo apt update  sudo apt install tros。升级tros.deb包 sudo apt update  sudo apt upgrade。

完成上面步骤基本上就可以开始使用了,有些功能需要安装或配置一些东西,在以后使用中途中安装配置即可。

项目的开始--旭日X3派与下位机的通讯

  旭日X3派作为上位机需要与一些传感器和下位机进行通讯,旭日X3派开发板提供40PIN标准接口,这些管脚有专用功能和普通GPIO功能,在旭日X3派中有些管脚是默认的专用功能,如果你想使用它们用作普通I/O口,需要使用srpi-config进行配置,输入sudo srpi-config即可启动,管脚显示okay表示专用功能,disable表示GPIO功能通用型输入输出,General-purpose input/output,GPIO。PIN脚可作为通用输入(GPI)或通用输出(GPO)或通用输入与输出(GPIO)有寄存器用来选择这些功能。对于输入,可以通过读取某个寄存器来确定管脚电位的高低。对于输出,可以通过写入某个寄存器来让这个管脚输出高电位或者低电位对于其他特殊功能,则有另外的寄存器来控制。

  在旭日X3派里写程序和在win里面类似,不同的是在旭日X3派里可以用指令直接运行你写的程序,例如通过sudo python3 XXX.XX(XXX是你写的程序的文件名),即可按照你的程序来控制旭日X3派上的各个管脚,上面这个是运行用python写的程序,你也可以用C++。

  在写程序之前,你要了解如何设置各个管脚,首先你要设置管脚编码方式GPIO.setmode(GPIO.XXX)XXX是编码方式,编码方式有四种BOARD(the pin number of the 40 pin GPIO header),物理引脚序号,与旭日X3派的丝印序号一一对应。BCM(the Broadcom SoC GPIO numbers):根据博通SoC制定的GPIO命名规则。CVM 使用字符串代替数字,对应于CVM / CVB连接器的信号名称。SOC 对应的编号是旭日X3M芯片的GPIO管脚序号,与芯片数据手册一一对应。

设置GPIO通道方式:输入:GPIO.setup(channel, GPIO.IN),输出:GPIO.setup(channel, GPIO.OUT)

设置输出值初值:GPIO.setup(channel, GPIO.OUT, initial=GPIO.HIGH)

读取通道值:GPIO.input(channel)

设置输出引脚值:GPIO.output(channel, state)

程序结束清理通道:GPIO.cleanup(),清理单个通道括号里填要清理的通道。

以上是我目前进行到的程度,只是对一些管脚进行了简单的使用。