[OC]萝卜圈玩行车记录仪

图1-1,你的手动小车

代码是

#机器人驱动主程序
#请在main中编写您自己的机器人驱动代码
import tkinter as tk
import turtle
v=0 # 速度
acc=False;slow=False;left=False;right=False # 按键状态
step=0.5 # 一次速度变化量
def keyup_press(event):global acc;acc=True
def keyup_release(event):global acc;acc=False
def keydown_press(event):global slow;slow=True
def keydown_release(event):global slow;slow=False
def keyleft_press(event):global left;left=True
def keyleft_release(event):global left;left=False
def keyright_press(event):global right;right=True
def keyright_release(event):global right;right=False
def stop_all(event):global v,acc,slow,left,rightv=0;acc=slow=left=right=False
def main():print("你知道吗,这个的作者其实是溥哥")turtle.pensize(5)turtle.color('green')turtle.setup(width=0.2,height=0.3,startx=100,starty=100)turtle.penup()global vroot=tk.Tk()root.bind_all("<KeyPress-Up>",keyup_press)root.bind_all("<KeyPress-Down>",keydown_press)root.bind_all("<KeyPress-Left>",keyleft_press)root.bind_all("<KeyPress-Right>",keyright_press)root.bind_all("<KeyRelease-Up>",keyup_release)root.bind_all("<KeyRelease-Down>",keydown_release)root.bind_all("<KeyRelease-Left>",keyleft_release)root.bind_all("<KeyRelease-Right>",keyright_release)root.bind_all("<KeyPress-Q>",stop_all)root.bind_all("<KeyPress-q>",stop_all)_v=tk.StringVar();_operations=tk.StringVar()tk.Label(root,text="机器人控制面板",font=(None,0,"bold")).pack()tk.Label(root,textvariable=_v).pack()tk.Label(root,textvariable=_operations).pack()while True:x=300#比例尺,大小详,小大略if acc:v+=stepif slow:v-=stepif left: # 左转robot_drv.set_motors(1,-3,2,int(v),3,-3,4,int(v))elif right:robot_drv.set_motors(1,int(v),2,-3,3,int(v),4,-3)else:robot_drv.set_motors(1,int(v),2,int(v),3,int(v),4,int(v))root.update()turtle.goto(int(robot_drv.get_gps(32)[0]/x),int(robot_drv.get_gps(32)[1]/x))turtle.pendown()_v.set("速度: %d" % v)_op="当前操作: "if acc:_op+="加速 "if slow:_op+="减速 "if left:_op+="左转 "if right:_op+="右转 "_operations.set(_op)# *********************************************
# 以下为初始化代码,请不要修改或者删除
# *********************************************
import sys
import irobotq_robotdriver as robot_drvif __name__ == '__main__':try:ret=robot_drv.init(sys.argv[1],sys.argv[2],int(sys.argv[3]))if(ret == 0):main()robot_drv.over()print("机器人程序运行结束")else:print('初始化错误,错误码:%d' % ret)print('按任意键退出')input()except Exception as e:import traceback;traceback.print_exc()print('按任意键退出')input()

原理解释:手动控制之前发过

重点是海龟库,应用了海龟库的坐标绘画和画笔粗细及颜色调节还有窗口大小

tips:python模式仅限于1.6.1.8以上(不包括1.6.2.2和1.6.2.4版本,此bug还未修复)

更改比例尺大小,根据不同地图调节

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/52005.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正点原子linux开发板 qt程序交叉编译执行

1.开发板光盘 A-基础资料->5、开发工具->1、交叉编译器->fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0.sh 拷贝到 Ubuntu 虚拟机 用文件传输系统或者共享文件夹传输到linux虚拟机 用ls -l查看权限&#xff0c;如果是白色的使…

保姆级-C#与Halcon的窗体界面展示阈值分割图像教程(机器视觉保姆级教程)

经历上一篇《零基础小白实现C#调用halcon dll的过程&#xff0c;并测试程序证明C#halcon联合开发成功》的发布已经过去三天啦&#xff0c; 零基础小白实现C#调用halcon dll的过程&#xff0c;并测试程序证明C#halcon联合开发成功-CSDN博客 在友友的催更下&#xff0c;我将用我…

Android笔试面试题AI答之Kotlin(18)

文章目录 86. 阐述Kotlin中性能优化之局部函数 &#xff1f;局部函数的优点间接的性能优化注意事项 87. 简述Kotlin中性能优化之数组使用 &#xff1f;1. 选择合适的数组类型2. 避免不必要的数组创建3. 优化数组访问4. 合理使用数组遍历方式5. 利用Kotlin的集合操作API6. 注意数…

go 系列之 once

一、简介 once 方法用于保证指定函数只执行一次。例如配置懒加载&#xff0c;客户端获取密钥等场景&#xff0c;都可以用到once。 二、技术实现 2.1 Once.go type Once struct {done atomic.Uint32m Mutex }func (o *Once) Do(f func()) {if o.done.Load() 0 {o.doSlow(…

红黑树的特点和使用场景

红黑树&#xff08;Red-Black Tree&#xff09;是一种 自平衡二叉搜索树&#xff0c;它在插入、删除和查找操作时保持了树的平衡性&#xff0c;从而保证了这些操作的时间复杂度为 O(log n)。红黑树在实际应用中广泛使用&#xff0c;例如在操作系统的内核中用于管理进程调度、文…

rabbitmq镜像集群搭建

用到的ip地址 ip地址端口192.168.101.65&#xff08;主&#xff09;15672192.168.101.7515672192.168.101.8515672 安装erlang和rabbitmq 安装 安装三个包 yum install esl-erlang_23.0-1_centos_7_amd64.rpm -y yum install esl-erlang-compat-18.1-1.noarch.rpm -y rpm -…

探索CompletableFuture:高效异步编程的利器

目录 一、CompletableFuture基本功能安利 二、CompletableFuture使用介绍 &#xff08;一&#xff09;任务创建使用 1.supplyAsync创建带有返回值的异步任务 2.runAsync创建没有返回值的异步任务 &#xff08;二&#xff09;异步回调使用 1.异步回调&#xff1a;thenApp…

基于Sringboot+Vue个人驾校预约管理系统--论文pf

TOC springboot503基于SringbootVue个人驾校预约管理系统--论文pf 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。…

XSS-games

XSS 1.XSS 漏洞简介2.XSS的原理3.XSS的攻击方式4.XSS-GAMESMa SpaghetJefffUgandan KnucklesRicardo MilosAh Thats HawtLigmaMafiaOk, BoomerWW3svg 1.XSS 漏洞简介 ​ XSS又叫CSS&#xff08;Cross Site Script&#xff09;跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Sc…

Nginx服务器申请及配置免费SSL证书

免费SSL证书申请 背景&#xff1a; 我的情况是这样&#xff0c;域名解析是华为云的&#xff0c;然后免费证书在腾讯云申请。但是大致的配置流程都是一样的 在腾讯云平台申请免费的SSL证明(目前有效期是90天)&#xff0c;申请步骤如下 主要步骤说明 申请免费SSL证书根据申请时说…

对商品评论进行文本分析(NLP)的实战项目

文本分析技术是指使用计算机程序或算法处理、分析和理解文本数据的一系列方法。这种技术在自然语言处理&#xff08;NLP&#xff09;领域中非常重要&#xff0c;它可以应用于多种场景&#xff0c;包括但不限于情感分析、主题识别、信息提取、文本分类等。以下是一些常见的文本分…

使用Python+os模块创建文件和文件夹

一、使用Python的open函数创建文件 # 创建文件 with open(/home/Download/my_directory/my_file.txt, w) as f:f.write(世界你好)open(name[, mode[, buffering]])参数详解 name : 一个包含了你要访问的文件名称的字符串值。 mode : mode 决定了打开文件的模式&#xff1a;只…

GAP技术:实现隔离网络之间安全数据交换的创新方案

在当今高度互联的世界中&#xff0c;网络安全和数据隐私已经成为企业和组织最为关注的课题之一。特别是在一些高度敏感的环境中&#xff0c;如金融、国防、医疗等领域&#xff0c;网络隔离是防止数据泄露和网络攻击的关键手段。然而&#xff0c;如何在保持网络隔离的前提下&…

CryptoJS hex模式前端

CryptoJS 加密&#xff1a; aesJson (str, secretKey, aesIv, padding) {let keylet ivkey CryptoJS.enc.Utf8.parse(secretKey)iv CryptoJS.enc.Utf8.parse(aesIv)let plaintText str // CryptoJS.enc.Utf8.parse(str) 明文stringlet encrypted CryptoJS.AES.encrypt(pl…

如何在本地和远程删除 Git 分支?

如何在本地和远程删除 Git 分支&#xff1f; 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市开发者社区主理人 擅长.n…

[240821] NVIDIA Edify:助力开发者创建定制化 AI 模型 | Ubuntu 24.04.1 LTS 版本延期发布

目录 NVIDIA Edify&#xff1a;助力开发者创建定制化 AI 模型Ubuntu 24.04.1 LTS 版本延期发布 NVIDIA Edify&#xff1a;助力开发者创建定制化 AI 模型 NVIDIA Edify&#xff0c;一种多模态 AI 架构&#xff0c;可以帮助开发者构建生成式 AI 工具。 Edify 的主要优势&#x…

江西学术会议:第五届计算机、大数据与人工智能国际会议

第五届计算机、大数据与人工智能国际会议(ICCBDAI 2024)将于2024年11月1日-3日在江西景德镇召开。本届会议由景德镇陶瓷大学主办&#xff0c;西安交通大学、暨南大学、南京邮电大学、景德镇学院、ELSP&#xff08;爱迩思出版社&#xff09;、ESBK国际学术交流中心、AC学术平台协…

Transformer模型中的Position Embedding实现

引言 在自然语言处理&#xff08;NLP&#xff09;中&#xff0c;Transformer模型自2017年提出以来&#xff0c;已成为许多任务的基础架构&#xff0c;包括机器翻译、文本摘要和问答系统等。Transformer模型的核心之一是其处理序列数据的能力&#xff0c;而Position Embedding在…

你是如何克服编程学习中的挫折感的?(-@-^-0-)

在编程学习中遇到挫折感是极为常见且正常的现象&#xff0c;因为编程往往涉及解决复杂问题、理解抽象概念以及不断试错的过程。 以下是一些建议&#xff0c;帮助你在面对挫折时调整心态&#xff0c;继续前行&#xff1a; 接受失败是成长的一部分&#xff1a;首先要认识到&#…

专题---自底向上的计算机网络(计算机网络相关概述)

目录 计算机网络相关概述 物理层 数据链路层 网络层 运输层 应用层 网络安全 1.计算机网络相关概述&#xff08;具体细节http://t.csdnimg.cn/NITAW&#xff09; 什么是计算机网络&#xff1f; 计算机网络是将一个分散的&#xff0c;具有独立功能的计算机系统&#x…