伪黄金右路

b7与gary的组合之前看来还是可以的,而#15两场以来疯狂助攻,cross数目远超b7,成功率堪称中超水平
对瑞典的下半场一切现原形,b7被打得很窝囊,#15直接给了瑞典人无穷的信心,红毛干脆转战左路大家一起来轰这条舒畅地带
怎么club和national表现可以差别这么大

现在看来,换上gary也只是可能攻得稍微像样一些,防的话照样没戏
但两位元老对wc说farewell,一定不会有所保留

owen可惜了
CAD中采用lisp开发,定义命令为TF,批量选择文件夹内扩展名为tf和ctr的两种文件,如果是字母编号,以ABCD字母顺充排序,依次绘制各扩展名为TF数据中的zzb,yzb数据,每个tf数据中的Y坐标加1000,相当于每个土方数据Y坐标+1000上下位次排列隔开,从第三行开始读取数据,将n1,n2,n3,n4,n5,n6……,依次从左到依次循环赋值,将n16-n6赋值给zgc,将zzb的坐标设置为点坐标(n1 zgc),向下依次循环所有zgc坐标点添加到点集;n17-n7的数值赋值给ygc,将yzb的坐标设置为(n1,ygc),向下依次循环所有yc坐标点添加到点集;在cad中绘制多段线ygc点集,右高程zzb的点集Y坐标统一加1000,在CAD中画出点集zzb和yzb两条多段线,绘制多段线完成后,前面两行数据不读取,从第三行开始,搜索TF的同名文件的CTR文件(无同名文件时,搜索首字或字母/字符相同的CTR文件),从QHSJ.DAT下一行开始,将n1,n2,n3,n4,n5,n6……,依次从左到依次循环赋值,循环到HDSJ.DAT结束,将n1赋值给qwzbq,将n2赋值给qwzbz,qlmc设置为n4,以(qwzbq 水平基线Y坐标(是指各个互通的水平基本线0 1000 2000 3000))和(qwzbz 水平基线Y坐标)为底边,绘制一个高为100的矩形,在矩形正中间写上文字qlmc;向下依次循环绘制出矩形和qlmc,将图层设置为对应文件名+桥梁,颜色为4;均无同名文件,则只绘制水平基线和高差线,跳过绘制桥梁步骤,绘制下一个,TF土方格式如下: HINTCAD6.00_TF_SHUJU //[ 桩 号 ] [挖方面积] [填方面积] [中桩填挖] [路基左宽] [路基右宽] [基缘左高] [基缘右高] [左坡脚距] [右坡脚距] [左坡脚高] [右坡脚高] [左沟缘距] [右沟缘距][左护坡道宽][右护坡道宽][左沟底高][右沟底高] [左沟心距] [右沟心距] [左沟深度] [右沟深度] [左用地宽] [右用地宽] [清表面积] [顶超面积] [左超面积] [右超面积] [计排水沟][左沟面积填][左沟面积挖][右沟面积填][右沟面积挖][路槽面积填][路槽面积挖][清表宽度][清表厚度][挖1类面积][挖2类面积][挖3类面积][挖4类面积][挖5类面积][挖6类面积][左路槽B] [右路槽B] [左路槽C] [右路槽C] [左垫层] [右垫层] [左路床] [右路床][左土肩培土][右土肩培土][左包边土] [右包边土][左边沟回填][右边沟回填][左截沟填][左截沟挖][右截沟填][右截沟挖][挖台阶面积][填1类面积][填2类面积][填3类面积][填4类面积][填5类面积][填6类面积][弃1类面积][弃2类面积][弃3类面积][弃4类面积][弃5类面积][弃6类面积] 0.000 2.547 0.009 0.000 -2.750 2.750 29.273 29.341 -4.310 2.763 29.393 29.332 -2.750 2.763 0.000 0.000 0.000 0.000 -0.000 0.000 -0.000 0.000 -7.310 5.763 0.000 0.000 0.000 0.000 1 0.000 0.000 0.000 0.000 -0.019 2.218 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 "" 20.000 2.477 0.022 -0.007 -2.750 2.750 29.764 29.831 -4.293 2.807 29.850 29.793 -2.750 2.807 0.000 0.000 0.000 0.000 -0.000 0.000 -0.000 0.000 -7.293 5.807 0.000 0.000 0.000 0.000 1 0.000 0.000 0.000 0.000 -0.040 2.216 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 "" 40.000 2.526 0.078 -0.037 2.750 -2.750 29.661 29.729 3.004 -4.313 29.492 29.854 3.004 -2.750 0.000 0.000 0.000 0.000 0.000 -0.000 0.000 -0.000 6.004 -7.313 0.000 0.000 0.000 0.000 1 0.000 0.000 0.000 0.000 -0.052 2.198 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 "" 60.000 3.558 0.000 -0.009 -2.750 -2.750 28.892 28.959 -2.963 -4.570 28.892 29.600 -2.750 -2.750 0.000 0.000 0.000 0.000 -0.000 -0.000 -0.000 -0.000 -5.963 -7.570 0.000 0.000 0.000 0.000 1 0.000 0.000 0.000 0.000 0.000 2.268 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 "" ctr文件格式如下: QHSJ.DAT 726.000 765.000 745.500 上跨乡道中桥 3*13m PC低高度密肋式T梁/0° 90.0000 0.0000 0 1 0 812.000 892.000 852.000 石塘河中桥 4*20m PC低高度密肋式T梁/-20° 110.0000 0.0000 0 1 0 2684.500 2764.500 2724.500 马桥河中桥 4*20m PC低高度密肋式T梁/0° 90.0000 0.0000 0 1 0 3953.000 4013.000 3983.000 上跨乡道中桥 3*20m PC低高度密肋式T梁/40° 50.0000 0.0000 0 1 0 4350.500 4389.500 4370.000 上跨四合路1号中桥 3*13m PC低高度密肋式T梁/0° 90.0000 0.0000 0 1 0 5482.000 5521.000 5501.500 上跨四合路2号中桥 3*13m PC低高度密肋式T梁/10° 80.0000 0.0000 0 1 0 HDSJ.DAT
05-20
#include <Arduino.h> //—— 阈值定义(模拟循迹,黑线追踪) —— // 白底约 30,黑线约 725,取两者中点 ≈ (30 + 725) / 2 = 377.5 // 因此设置阈值为 378 const int LINE_THRESHOLD = 378; //—— 电机驱动引脚 —— const uint8_t IN1 = 7; // 左电机方向 A → D4 const uint8_t IN2 = 8; // 左电机方向 B → D7 const uint8_t ENA = 5; // 左电机使能 (PWM) → D5 const uint8_t IN3 = 9; // 右电机方向 A → D8 const uint8_t IN4 = 10; // 右电机方向 B → D9 const uint8_t ENB = 6; // 右电机使能 (PWM) → D10 //—— 两路模拟循迹传感器 —— const uint8_t S_LEFT = A2; // 左路模拟 OUT → A0 const uint8_t S_RIGHT = A0; // 右路模拟 OUT → A1 const uint8_t S_LEFTOUT = A1; const uint8_t S_RIGHTOUT = A3; //—— 电机速度 (PWM 占空比 0–255) —— // 之前测试 80 较合适,这里保持 80 const uint8_t MOTOR_SPEED = 130; void setup() { Serial.begin(9600); Serial.println(F("=== 纯黑线追踪 小车启动 ===")); Serial.print(F("LINE_THRESHOLD = ")); Serial.println(LINE_THRESHOLD); //—— 初始化 电机 驱动引脚 —— pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(ENA, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); pinMode(ENB, OUTPUT); stopMotors(); // 上电先停止 //—— 初始化 循迹 传感器 引脚 —— pinMode(S_LEFT, INPUT); pinMode(S_RIGHT, INPUT); } void loop() { lineFollow(); } //—— 两路“黑线”循迹 逻辑 —— void lineFollow() { int leftVal = analogRead(S_LEFT); int rightVal = analogRead(S_RIGHT); int leftValOUT = analogRead(S_LEFTOUT); int rightValOUT = analogRead(S_RIGHTOUT); // 黑线时模拟值较高 (> LINE_THRESHOLD) bool onBlackLeft = (1000-leftVal > LINE_THRESHOLD); bool onBlackRight = (1000-rightVal > LINE_THRESHOLD); bool onBlackLeftOUT = (1000-leftValOUT > LINE_THRESHOLD); bool onBlackRightOUT = (1000-rightValOUT > LINE_THRESHOLD); // 串口调试输出原始数值和布尔状态 Serial.print(F("L_raw=")); Serial.print(leftVal); Serial.print(F(" R_raw=")); Serial.print(rightVal); Serial.print(F(" onBlack L=")); Serial.print(onBlackLeft); Serial.print(F(" R=")); Serial.println(onBlackRight); if (onBlackLeftOUT||onBlackRightOUT) { stopMotors(); return; } if (onBlackLeft && onBlackRight) { // 左右都在黑线 → 直行 moveForward(); } else if (onBlackLeft && !onBlackRight) { // 仅左侧在黑线 → 偏右 → 原地右转 turnRight(); } else if (onBlackRight && !onBlackLeft) { // 仅右侧在黑线 → 偏左 → 原地左转 turnLeft(); } else { // 均不在黑线(白底或脱离) → 停止 stopMotors(); } delay(50); // 去抖动 } //—— 电机控制 函数 —— void moveForward() { // 左轮正转 digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); analogWrite(ENA, MOTOR_SPEED-10); // 右轮正转 digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENB, MOTOR_SPEED); } void turnLeft() { // 原地左转:左轮停、右轮正转 digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); analogWrite(ENA, 0); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENB, MOTOR_SPEED-20); } void turnRight() { // 原地右转:左轮正转、右轮停 digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); analogWrite(ENA, MOTOR_SPEED-50); digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); analogWrite(ENB, 0); } void stopMotors() { // 左轮停 digitalWrite(IN1, LOW); digitalWrite(IN2, LOW); analogWrite(ENA, 0); // 右轮停 digitalWrite(IN3, LOW); digitalWrite(IN4, LOW); analogWrite(ENB, 0); } 在这段代码的基础上加入pid控制转速,并且能做到。停止,然后维持一段时间再继续运行
06-19
#include "motor.h" #include "stm32f10x.h" void PWM_Init(void){ //初始化GPIO口 PA6 PA7 用于产生PWM信号 //结构定义 GPIO_InitTypeDef GPIO_InitStructure; TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_OCInitTypeDef TIM_OCInitStructure; //开启TIM3和GPIOA的时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //复用推挽输出模式因为复用了TIM3外设 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化GPIO A6 A7 //配置时基单元参数 //TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;//定时器不分频 TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数模式 TIM_TimeBaseInitStructure.TIM_Period = 500;//ARR自动重装值 TIM_TimeBaseInitStructure.TIM_Prescaler = 7199;//PSC预分频值 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseInitStructure);//初始化单元 //输出比较结构体配置 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//选择PWM模式1 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//输出比较极性选择 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//输出使能 TIM_OC1Init(TIM3, &TIM_OCInitStructure);//初始化 TIM3 OC1 TIM_OC2Init(TIM3, &TIM_OCInitStructure);//初始化 TIM3 OC2 TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能CCR1自动重装 TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能CCR2自动重装 TIM_Cmd(TIM3, ENABLE);//开启定时器3 } void Motor_GPIO_Init(void){ //开启电机驱动口的四个GPIO RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); GPIO_InitTypeDef GPIO_InitStructure; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 |GPIO_Pin_7 | GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure); //电机1 GPIO_InitStructure.GPIO_Pin = Motor1_GPIO_PIN; GPIO_Init(Motor1_GPIO_PORT, &GPIO_InitStructure); //电机2 GPIO_InitStructure.GPIO_Pin = Motor2_GPIO_PIN; GPIO_Init(Motor2_GPIO_PORT, &GPIO_InitStructure); } //设置右路电机速度 PWM void MotorR_SetSpeed(int Speed) { if (Speed >= 0)//Speed值为正 { Motor1_FWD; //GPIO_SetBits(GPIOB, GPIO_Pin_7);GPIO_ResetBits(GPIOB, GPIO_Pin_6); TIM_SetCompare1(TIM3,Speed);//设置Speed转速 } else//Speed值为负 { Motor1_REV; //GPIO_SetBits(GPIOB, GPIO_Pin_6);GPIO_ResetBits(GPIOB, GPIO_Pin_7); TIM_SetCompare1(TIM3,-Speed);//设为-Speed转速 } } //设置左路电机PWM 速度 void MotorL_SetSpeed(int Speed) { if (Speed >= 0) { Motor2_FWD; //GPIO_SetBits(GPIOB, GPIO_Pin_9);GPIO_ResetBits(GPIOB, GPIO_Pin_3); TIM_SetCompare2(TIM3,Speed); } else { Motor2_REV; //GPIO_SetBits(GPIOB, GPIO_Pin_3);GPIO_ResetBits(GPIOB, GPIO_Pin_9); TIM_SetCompare2(TIM3,-Speed); } } //刹车 void Car_Brake(void){ MotorR_SetSpeed(0); MotorL_SetSpeed(0); } //右转 void Car_Right(void){ MotorR_SetSpeed(-50); MotorL_SetSpeed(50); } //左转 void Car_Left(void){ MotorR_SetSpeed(50); MotorL_SetSpeed(-50); } //后退 void Car_Back(void){ MotorR_SetSpeed(-200); MotorL_SetSpeed(-200); } //前进 void Car_Forward(void){ MotorR_SetSpeed(200); MotorL_SetSpeed(200); }这个代码是否存在上述问题
07-02
内容概要:本文深入解析了扣子COZE AI编程及其详细应用代码案例,旨在帮助读者理解新一代低门槛智能体开发范式。文章从五个维度展开:关键概念、核心技巧、典型应用场景、详细代码案例分析以及未来发展趋势。首先介绍了扣子COZE的核心概念,如Bot、Workflow、Plugin、Memory和Knowledge。接着分享了意图识别、函数调用链、动态Prompt、渐进式发布及监控可观测等核心技巧。然后列举了企业内部智能客服、电商导购助手、教育领域AI助教和金融行业合规质检等应用场景。最后,通过构建“会议纪要智能助手”的详细代码案例,展示了从需求描述、技术方案、Workflow节点拆解到调试与上线的全过程,并展望了多智能体协作、本地私有部署、Agent2Agent协议、边缘计算插件和实时RAG等未来发展方向。; 适合人群:对AI编程感兴趣的开发者,尤其是希望快速落地AI产品的技术人员。; 使用场景及目标:①学习如何使用扣子COZE构建生产级智能体;②掌握智能体实例、自动化流程、扩展能力和知识库的使用方法;③通过实际案例理解如何实现会议纪要智能助手的功能,包括触发器设置、下载节点、LLM节点Prompt设计、Code节点处理和邮件节点配置。; 阅读建议:本文不仅提供了理论知识,还包含了详细的代码案例,建议读者结合实际业务需求进行实践,逐步掌握扣子COZE的各项功能,并关注其未来的发展趋势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值