大疆机器人上安装树莓派怎么编程

大疆机器人上安装树莓派怎么编程,第1张

1 准备一个树莓派,以及一个计算机,还有一个SD卡,SD卡的容量要大于4G;

2 下载树莓派的 *** 作系统,比如Raspbian,并将其写入SD卡;

3 将SD卡插入树莓派,并将树莓派连接到计算机;

4 使用SSH连接树莓派,并在树莓派上安装必要的软件;

5 在树莓派上安装Python,并使用Python编写程序

6 将编写的程序上传到树莓派,并运行程序;

7 根据程序的运行结果,对程序进行调试和优化,直到程序运行正常。

设置开机启动Python gui具体配置如下:

一、设置python GUI程序开机启动,这个方法能让你的程序在树莓派没进入桌面之前就启动。

①新建一个sh的文件,随便起个名字,比如startsh。如果你的python文件在桌面app文件夹中。则startsh内容如下:

cd/home/pi/Desktop/app

sudo python3 programpy。

在前一小节中介绍了点亮第一个LED灯,这里我们准备进阶尝试下,输出第一段PWM波形。(PWM也就是脉宽调制,一种可调占空比的技术,得到的效果就是:如果用示波器测量引脚会发现有方波输出,而且高电平、低电平的时间是可调的。)

这里爪爪熊准备写成一个golang的库,并开源到github上,后续更新将直接更新到github中,如果你有兴趣可以和我联系。 githubcom/dpawsbear/bear_rpi_go

我在很多的教程中都看到说树莓派的PWM(硬件)只有一个GPIO能够输出,就是 GPIO1 。这可是不小的打击,因为我想使用至少四个 PWM ,还是不死心,想通过硬件手册上找寻蛛丝马迹,看看究竟怎么回事。

手册上找寻东西稍等下讲述,这里先提供一种方法测试 树莓派3B PWM 方法:用指令控制硬件PWM。

这里通过指令的方式掌握了基本的pwm设置技巧,决定去翻一下手册看看到底PWM怎么回事,这里因为没有 BCM2837 的手册,根据之前文章引用官网所说, BCM2835 BCM2837 应该是一样的。这里我们直接翻阅 BCM2835 的手册,直接找到 PWM 章节。找到了如下图:

图中可以看到在博通的命名规则中 GPIO 12、13、18、19、40、41、45、52、53 均可以作为PWM输出。但是只有两路PWM0 PWM1。根据我之前所学知识,不出意外应该是PWM0 和 PWM1可以输出不一样的占空比,但是频率应该是一样的。因为没有示波器,暂时不好测试。先找到下面对应图:

根据以上两个图对比可以发现如下规律:

对照上面的表可以看出从 BCM2837 中印出来的能够使用在PWM上的就这几个了。

为了验证个人猜想是否正确,这里先直接使用指令的模式,模拟配置下是否能够正常输出。

通过上面一系列指令模拟发现,(GPIO1、GPIO26)、(GPIO23、GPIO24)是绑定在一起的,调节任意一个,另外一个也会发生变化。也即是PWM0、PWM1虽然输出了两路,可以理解成两路其实都是连在一个输出口上。这里由于没有示波器或者逻辑分析仪这类设备(仅有一个LED灯),所以测试很简陋,下一步是使用示波器这类东西对频率以及信号稳定性进行下测试。

小节:树莓派具有四路硬件输出PWM能力,但是四路中只能输出两个独立(占空比独立)的PWM,同时四路输出的频率均是恒定的。

上面大概了解清楚了树莓派3B的PWM结构,接下来就是探究如何使用Go语言进行设置。

因为拿到了手册,这里我想直接 *** 作寄存器的方式进行设置,也是顺便学习下Go语言处理寄存器的过程。首先需要拿到pwm 系列寄存器的基地址,但是翻了一圈手册,发现只有偏移,没有找到基地址。

经过了一段时间的努力后,决定写一个 树莓派3B golang包开源放在github上,只需要写相关程序进行调用就可以了,以下是相关demo(pwm)(在GPIO12 上输出PWM波,放上LED灯会有呼吸灯的效果,具体多少频率还没有进行测试)

以下是demo(pwm) 源码

树莓派又称卡片式电脑,外形只有xyk大小,却具有电脑的所有基本功能,这就是Raspberry Pi电脑板,中文译名"树莓派"!这一基金会以提升学校计算机科学及相关学科的教育,让计算机变得有趣为宗旨。

安装树莓派:

1先将安装好系统的SD卡插入树莓派

2再将usb接口的键盘和鼠标接上树莓派3接上HDMI线

4接上电源线,并打开电源

键盘输入"startx"启动图形界面,到此为止你的树莓派就正常启动。

1NOOBS (New Out Of Box Software) 是树莓派一个全新的安装系统,允许用户更轻松的在树莓派设备上体验不同的 Linux 系统。该软件安装到一个 4GB 或者更大的 SD 卡,首次启动时提供 *** 作系统的安装选择。所选择的 *** 作系统已经存在卡中,因此 NOOBS 无需联网下载 OS 映像。当前版本包含 Raspbian, Pidora 和两个版本的 XBMC 媒体中心软件。一旦选择,NOOBS 将安装所选系统到卡中剩余空间然后重启开始全新安装。

mcpi是Python语言中的一个模块,它是Minecraft游戏的Python接口库。通过mcpi模块,开发者可以使用Python语言访问Minecraft游戏的各种功能,例如创建和编辑世界、生成方块和实体、控制角色移动等等。

使用mcpi模块可以非常方便的在Minecraft游戏中创建各种场景和交互式应用程序。比如,您可以用Python语言来编写一个脚本,在Minecraft游戏中创建一个城堡或者迷宫;还可以编写一个控制程序,让角色自动寻路或者进行打怪行动。

在使用mcpi模块之前,需要确保已经安装了Minecraft游戏,并且打开了游戏的“允许局域网玩家加入”的设置。此外,还需要在Python环境中安装好mcpi模块。一般来说,mcpi模块可以通过pip指令进行安装。

总之,mcpi模块为Python开发者提供了在Minecraft游戏中进行编程的方法,为开发者带来了更加丰富的创造和交互体验。

    昨天在写关于linux设置脚本开机启动的文章时,有个疑问就是开机时怎么确认运行级别,然后遍历执行/etc/rcNd/目录下的所有服务程序。带着疑问, 在前人的基础上 学习总结一下linux系统初始化的工作的内容,现在树莓派4B上展示出来。

1、加载内核

    当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。 *** 作系统接管硬件以后,首先读入 /boot 目录下的内核文件。树莓派4B的内核是Raspbian GNU/Linux 10 (buster),基于Debian。

2、初始化进程init

    内核文件加载以后,运行第一个程序init,它的作用是初始化系统环境。init位于目录/sbin,进程号PID为1,即1号进程,其他所有进程都由init衍生,是init的子进程。

    同时还有个0号进程,idle进程,在系统初始化时由内核kernel自身从无到有创建,通过调用kernel_thread创建一个内核线程去执行init函数,0号进程创建1号进程。

3、运行级别

    具体介绍请参考笔者的文章-Linux运行级别简介  ,但是开机时是怎么确定运行级别的呢?

    init进程首先读取文件 /etc/inittab,它是运行级别的设置文件。但是各个发行版不太一样,init的配置文件也不一样,有可能使用/etc/eventd里面的配置文件,最新版的改用为/etc/init目录。

4、开机启动程序

    具体详情请参考文章-linux中/etc/initd设置开机启动 ,确定运行级别后,执行rcNd目录下的文件,这些链接文件是连接到initd目录下的程序。init进程逐一加载开机启动程序,其实就是运行这个目录里的启动脚本。

    比如运行级别为5(图形化多用户)时启动的程序:

5、用户登录

    开机启动程序加载完毕以后用户登录。用户的登录方式有三种:

    命令行登录:init进程调用getty程序。

    ssh登录:init进程调用sshd程序。

    图形界面登录:init进程调用显示管理器,Gnome图形界面对应的显示管理器为gdm。

6 、login shell

    默认shell时bash,命令行界面,让用户可以直接与 *** 作系统对话。读取环境变量,具体请参考笔者文章-Linux环境变量的设置。

以上就是关于大疆机器人上安装树莓派怎么编程全部的内容,包括:大疆机器人上安装树莓派怎么编程、树莓派不进入桌面启动Python gui、【原创】树莓派3B开发Go语言(四)-自写库实现pwm输出等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10112099.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存