万里长征第一步-深度学习环境安装
毕业设计选择了做深度学习相关的题目,但是深度学习对我来说,像是一片未曾涉足的汪洋大海,深度学习的旅程,自此起步。
深度学习需要什么组件
显卡
深度学习需要 GPU 作为处理器,虽然用 CPU 也可以处理,但是效率会比使用 GPU 的慢很多。这里我的电脑使用的是 GTX1650 的显卡。
CUDA
CUDA 是 Nvidia 推出的一种通用并行计算架构。能够使 GPU 获得复杂计算的能力。
CUDNN
CUDNN(CUDA Deep Neural Network library):是 NVIDIA 打造的针对深度神经网络的加速库,是一个用于深层神经网络的 GPU 加速库。如果你要用 GPU 训练模型,cuDNN 不是必须的,但是一般会采用这个加速库。
Anaconda
Anaconda 就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda 包含了 conda、Python 在内的超过 180 个科学包及其依赖项。
Pytorch
PyTorch 是一个开源的 Python 机器学习库,基于 Torch,用于自然语言处理等应用程序
安装 ...
宇树A1折腾日记
近日,有幸参加了一个四足机器狗越障挑战赛,体验了一把国内能和波士顿对抗的很酷的公司-宇树科技做的宇树 A1,机器狗的强大的性能让我和队友惊叹,但是折腾 A1 机器狗的过程却是比较曲折,这会是本文的主题
基本情况介绍
宇树 A1 拥有两块主控板,靠近摄像头的一块板是树莓派,用于实现计算机视觉等功能。靠近机器狗屁股的是 x86 架构的主控板,负责运动控制
宇树 A1 搭载了一台 D435i 的 Intel Realsense 原深感深度相机,可实现目标识别,颜色识别,深度感知等(需配套 opencv 的相关代码)
遥控器遥控操作
L2+B 激活、休眠电机
L2+A 改变机器狗身体高度、锁死机身
start 解锁、踏步
L1+start 进入运动模式
L1+L2+start 退出运动模式
L1+A 打招呼(运动模式下)
L1+B 滑步(运动模式下)
L1+X 跳舞(运动模式下)
L1+Y 后空翻(运动模式下)
L2+Y 侧翻(运动模式下)
L2+X 翻到后重新恢复正确姿态
程序控制操作环境安装和配置前文提到,机器狗搭载了两块主控板,也提供了四个 USB3 的接口,两个 RJ-45 网 ...
计算机网络知识点
绪论1.1 计算机网络
计算机网络向用户提供的两个最重要的功能:
连通性
共享
1.2 因特网概述
因特网发展的三个阶段:
第一阶段:从单个网络 ARPANET 向互联网发展的过程。1983 年 TCP/IP 协议成为 ARPANET 上的标准协议。
第二阶段:建成三级结构的因特网:主干网、地区网和校园网(或企业网)。
第三阶段:形成多层次的 ISP(Internet Service Provider 因特网服务提供者)结构的因特网
Internet 和 Internet 的区别:
internet:通用名词,它泛指由多个计算机网络互连而成的网络。
Internet:专用名词,它指当前全球最大的、开放的、由众多网络相互连接而成的特定计算机网络,它采用 TCP/IP 协议族作为通信的规则,且其前身是美国的 ARPANET
1.3 互联网的组成 P8
边缘部分:有所有连接在因特网上的主机组成。这部分由用户直接使用,用来进行通信和资源共享。
核心部分 : 由大量的网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务的(提供连通性和交换)
处于 ...
Maven和Gradle本地仓库配置
目前来说,Java 项目的构建工具主要是 Maven 和 Gradle
Jenkins初探
随着技术的进步,我切入了越来越多的技术栈,但有一个问题却一直困扰我,就是编写代码后,本地环境和服务器环境不一致,像 Java 程序要打成 Jar 包,通过 ftp 传到服务器,数据库这类配置,服务器和本地环境不一样,也非常恼火。后来,接触到了持续集成(CI)。便学习了 Jenkins
Jenkins 是个啥Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。Jenkins 提供了一个平台,能够将恼人且耗时的编译部署环节自动完成,让程序员专心聚焦于代码,通过工作流的集成,也能提高工作效率。对于团队项目,能够降低工作成本。
Jenkins 安装https://www.jenkins.io/
Jenkins 官网如上
下载Jenkins 可以通过多种方式下载安装,如 Docker,war 包等,因为我们已经有了 Tomcat 做容器。所以选择了下载 War 包。Jenkins 也有许多版本可选,建议选择 LTS 版本,更稳定。
安装环境前提
Linux(本文是阿里的龙蜥 OS ...
NB-IOT(一)BC26与AT命令
BC26 除了与 STM32 或其他单片机对接外,还可通过 USB 转 TTL 串口芯片与电脑相连。本篇将演示通过 CH340 芯片,将 BC26 与计算机相连,并通过串口调试软件,实践 AT 命令
硬件连接芯片图
杜邦线连接
CH340 的 5V 输出端接 BC26 的 vin
CH340 的 TXD 接 BC26 的 RXD
CH340 的 RXD 接 BC26 的 TXD
CH340 的 GND 接 BC26 的 GND
使用跳线帽将 BC26 的 PWR 与 3.3V 相接
软件调试打开串口调试助手,设置波特率 115200发送 AT 命令,将会得到 OK 的响应
常用 AT 命令AT+CGSN=1查询模组序列号 IMEI。
AT+CEREG=1查询网络注册状态
AT+CSQ查询信号。若注册网络成功,会有信号产生,最大 31,若信号小于 10,说明当前网络信号不佳。
AT+CGPADDR=1查询设备的 PDP 地址,返回格式:+CGPADDR: 1,21.176.194.17,0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1 后 ...
NB-IOT(三)STM32驱动BC26通过MQTT协议与电信IOT平台通信
通过之前的实验,我们,能够通过串口调试助手,向 BC26 模块发送 AT 命令,并完成 MQTT 的连接和发布订阅的实现,本次,我们将采用 STM32 驱动 BC26,并发送 AT 命令,并通过 MQTT 协议与电信 IOT 平台的连接。
STM32 相关初始化
测试结果
NB-IOT(二)BC26通过MQTT与电信物联网平台连接
在之前的实验中,实现了通过串口 1 发送 AT 命令,由 STM32 透传到串口 2,并传输到 BC26 模块,之前使用他进行了 NBIOT 协议的实验,这里我们用这个来实现 BC26 通过 MQTT 协议与电信物联网平台的连接,并实践 发布订阅模型.
电信 IOT 平台配置
平台地址:https://dm.ctwing.cn/
创建产品如图配置
属性及服务定义
添加设备
BC26 入网状态检查AT+CIMI //检查SIM卡是否读卡成功。
AT+CESQ //查看信号强度 终端将提供 0 到 99 的信号强度指示。通常,数值越大,强度越高。
测试命令返回支持的参数值。
AT+CGATT? //查看入网状态:
+CGATT:1 //返回0为入网失败,返回1为入网成功。
AT+CGSN=1// 请求 IMEI
配置 BC26 的 MQTT 协议版本配置模组 MQTT 协议版本(BC28/26 支持 MQTT V3.1 和 V3.1.1 ...
Android Service实战之音乐播放器
音乐播放器是 Android 常见的实验,也是用户常用的软件,更是实践 Service 常用的练手项目,本文将展示我的音乐播放器练手过程。
构建 Activityxml 文件<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg1"
tools:context=".MusicPlayer"
android:gravity="center"
android:orientation="vertical">
<ImageView
...
Android之Service
Service 是 Android 四大组件之一,用来执行不需要前台或者耗时长的任务
Service 是什么Service 是 Android 四大组件之一,它可以在后台执行长时间运行操作而没有用户界面的应用组件。
服务与其他应用程序对象一样,在其托管进程的主线程中运行。这意味着,如果你的服务要执行任何 CPU 密集型(例如 MP3 播放)或阻塞(例如网络)操作,它应该在 Service 中再创建一个子线程.
Service 的启动startService()
启动 Service
显式启动通过类名称来启动,需要在 Intent 中指明 Service 所在的类,并调用 startService (lntent)启动 service
final Intent intentStart = new Intent(ServiceActivity.this, StartService.class);
startService(intentStart);
在上面的代码中,Intent 指明了启动的 Service 所在类为 StartService。通过该方式启动 Service, ...