2021-7-12-Holiday1

发布时间 2023-09-17 20:42:08作者: Yecgaa1
layout: post
title: xtx暑假第一周日志
categories: 日志
tags: 
    - 日志 
    - 2021暑期日志
BGImage: 'https://github.xutongxin.me/https://raw.githubusercontent.com/xutongxin1/PictureBed/master/img0/20210719002113.png'
jekyll-theme-WuK:
    musicid: '1406509710'

本日志仍然偏重于笔记和日记结合的形式,包含了寒假做的所有东西

本周线程池

  1. 涂鸦空调遥控器(等待零件,最后焊接,快速测试)
  2. 大话数据结构
  3. 电赛飞机准备
  4. QT5的尝试
  5. C++知识的补足(由于4的需要)
  6. 焊好最小系统板
  7. (额外)尝试安装CUDA套件给妹妹

7.12

暑假第一天的说

从昨晚开始就要装个QT5,结果先是发现QT5.14.2和Clion到处八字不合,而且还被以前的pyqt5的环境变量给整了,不过顺带发现个好软件来整理环境变量

image-20210712163946433

最后就是用回了QT5.9.9,虽然确实已经停止维护了,但是能用还是能用的

对于Clion,需要修改cmake文件,加上这句

set(CMAKE_PREFIX_PATH "D:/Qt/Qt5.9.9/5.9.9/mingw53_32/lib/cmake")

同时下面两句用于添加了新模块但是却找不到某个cmake时需要修改的地方

set(REQUIRED_LIBS Core)
set(REQUIRED_LIBS_QUALIFIED Qt5::Core)

接下来是焊板子,这次从立创设计到在立创买零件都处处有问题

首先是板子自动布线很多坑,其次是零件购买时忘记看它的封装没选对,零件买回来是缺少的

造成了不小的麻烦,只好去配料店再买了

然后发现最重要的WRE3芯片我丢在学校了赶紧又买了一块(它的成本越来越高了,就当买个教训吧)

然后是焊接32芯片到自己的开发板上

先是一角上锡,固定芯片一角,然后固定另一角,之后刷锡,多余的锡感觉吸锡器没啥用

然后拿吸锡带轻轻擦了下发现效果不错,电路表检查后发现虽然肉眼感觉感觉没连上,实际上还是连上了

image-20210712173052502

不过感觉这样做板子挺脏的(伊拉克战损版)

接下里是C++的某个类的小疑问

::是啥用

https://blog.csdn.net/qq_33266987/article/details/53689133

  • 1.如在程序中的某一处你想调用全局变量a,那么就写成::a;(也可以是全局函数)

  • 2.如果想调用class A中的成员变量a,那么就写成A::a;

  • 3.另外一个如果想调用namespace std中的cout成员,你就写成std::cout(相当于using namespace std;cout)意思是在这里我想用cout对象是命名空间std中的cout(即就是标准库里边的cout);

晚上配了CUDA和Jupyter lab

其中CUDA需要根据显卡的驱动来安装,同时如果没有VS的需求,就要必须手动修改安装里面的VS扩展为不安装,否则会连累别的也装不了

Jupyter Lab相对很好装了,除了装个kite插件需要build一下

7.13

电脑由于某些原因出现了硬件故障,然后整到晚上

对于电赛,现在正在做19年的题目,题目中有以下问题

限高,加上在巡线,所以必须得让摄像头拍线和地面的画,只能伸一根杆子,目前考虑碳纤维杆配合热熔胶和扎带实现

摩尔纹,这限制了光流的使用,还在想怎么整,要不纯巡线,要不去探索一下向上光流

7.14

电赛的向上光流

就是把光流朝上面,但是光流的要求里面

光流法需要知道飞机对测量面的相对距离

换而言之需要向上装超声波,向下也需要。

同时还需要在室内测试

但是没有这么大的室内场地做室内测试

就先考虑纯巡线,然后再做静态向上光流测试

然后是CUDA,原来装的是10.0,然后发现这个版本干啥啥不行

PyTorch要10.1,CuDNN要10.2.然后果断还是卸了清了

升到了10.2

explicit

explicit 关键字只能用于类内部的构造函数声明上,被修饰的构造函数的类,不能发生相应的隐式类型转换

对隐式类型转换,这里有个很好的例子

https://www.cnblogs.com/this-543273659/archive/2011/08/02/2124596.html

Jupyter Lab的远程共享方案

ssh(通过tcp的frcp隧道穿透),然后用ssh隧道建立http协议端口映射隧道

很成功!浏览器是在远端的客户端,cmd本地的服务端。下面的MobaSSH是在客户端上运行的。

MobaXterm YYDS!支持这种如此复杂ssh指令的简易配置和保存,重启等功能,真的香!

最后ssh隧道使用了先鉴权后联通的白名单方案,也不怕端口在公网上裸奔了

uTools_1626271379198uTools_1626271456839

最后今天把数据结构看到链表,现在准备来写写笔记先

7.15

今天主要就是搞了涂鸦的板子

这是一块多灾多难的板子

首先是配件买少了

其次是封装选了0603,但是手上只有0805,就把0805电阻焊上去用了先了

然后是立创的自动布线相对于AD稍不合理的布线显得太垃圾,还是自己布线好

最难的地方来了

涂鸦的模组是出厂预烧录免开发固件

该固件智能出厂预装,然后回来直接用,不能回来自己烧录

可以OTA,但也需要先配网

不过最顶的地方也在这里,配网需要按复位按钮,然而我的电路设计上把LED指示灯和复位按钮的顺序和固件里定义的正好相反

而且,今天得交

于是就想飞线,没要漆包线,就用焊锡来做飞线

先用裁纸刀割开板子上的线,然后再飞

(还不小心割错了把隔壁的也割了,再飞多一根)

结果如下,能用的哦

uTools_1626355365891

uTools_1626355428293

uTools_1626355464278

微信图片_20210715214031

接下来还有就是帮妹妹把python环境修了一下下

环境变量三个

C:\Miniconda3

C:\Miniconda3\Scripts

C:\Miniconda3\Library\bin

//不会还有人最后一条写了 lib 吧,不会吧不会吧()

也再度印证了pip安装包时出ssl问题一定是环境变量的锅

QT也终于从

0xC0000135错误

编译成功后无法运行缺依赖

image-20210716193316105

里出来了

代码是没问题的,是环境的问题石锤了

解决方案是

编译完成后,在qt里找到windeployqt.exe 运行

windeployqt.exe xxxx.exe
#XXXX.exe就是你编译后的exe

它会把依赖文件复制到编译文件夹内

然后再运行

小插曲是,庭凯教我用release编译后再用windeployqt.exe,反而不行了

然后我把clion对exe的处理方式改为直接运行,发现运行时弹出错误QTGuid.dll缺失,那就复制一个过去就好

(原来直接运行就有缺失dll提示了,其实没必要不断观察少了啥)

(不过windeployqt.exe需要补全很多依赖库,还是先运行一次windeployqt.exe为上策)

7.16

栈也看完了,就中项表达式转后项难理解点

电阻盒由于某些原因暴毙了,被迫重新买更好的盒子和电阻电容

今天主要是搞飞机的程序,但是由于比较杂散就不写在这里了

巡线问题也有了新的思路

首先向上光流是需要向上超声波,目前打算用串口读取实现

其次在openmv纯巡线上,openmv也是一种光流测距的设备,用来确认自身的xy轴位置

由于飞机一定存在抖动,所以必然可以得到位置差,必然可以得到坐标

openmv ide的连接会降低其程序执行的效率为一半,无论是否打开图像缓冲显示

打开图像缓冲显示之后处理速度会进一步降低

最后嘛

python原来

pip install ssl

是不可行的,因为那个模块不叫ssl,但是在python里

import ssl

确实有效且可以检查环境变量是否正常

有时候pycharm自己抽风,可能不能正常打开python命令行和运行程序,建议重启一下试试就好

7.17

今天开始正式看QT

首先需要重新整理一下类的思路

C++的类的结构

class Line
{   
public:      
	void setLength( double len ); //返回变量类型 函数名 参数
    double getLength( void );
    Line();  // 这是构造函数
    //等同于: Line(){ cout << "Object is being created" << endl; }
private:
    double length; 
};
//然后再做外部声明
Line::Line(void)//构造函数(外部声明时需要::)
{
    cout << "Object is being created" << endl;
}
 
void Line::setLength( double len )
{
    length = len;
}
 
double Line::getLength( void )
{
    return length;
}

继承

// 基类
class Animal {
  // eat() 函数
  // sleep() 函数
};

//派生类
class Dog : public Animal//继承用的是:
{
  // bark() 函数
};

image-20210717144956724

继承修饰符是:

要和java区分开来

7.18

这两天大部分时间都在整理东西

QT的话可能要考虑放弃Clion环境了,配置复杂且有太多不确定性

然后由于电赛的事情,线程池接近于满的状态,立创这次活动就不打算参加了

明天要开始装飞机了

最后

QT的信号绑定槽函数是

connect(pushButton,&QPushButton::clicked,this,&Ui_M1::Hello);
//connect是继承了QWidget
//该代码在uic转换出的头文件内执行,但每次uic运行都会覆写该文件全部内容

本周线程池总结

出栈:

栈内:

入栈:

  1. 平衡小车板子的再设计优化

2021年7月19日00:17:02