- 博客(33)
- 收藏
- 关注
原创 基于WPF的c#上位机制作
研究了下wpf下设计上位机,希望把界面做的更美观,不过目前暂时停止开发与维护了,因此,wpf做的上位机仅限于界面设计,相关的源代码公开到github和gitee上面,希望给大家提供思路。这里的思路主要是界面设计方面的思路。
2022-10-26 19:51:41 8264 2
原创 simulink代码生成
基于模型的设计概念基于模型的设计(Design Based on Model),可简称为MBD,以MATLAB等软件为平台,让工程师在可视化开发环境中,一边进行需求分析、算法研究、模型与需求分析的双向跟踪、模型验证与优化;另一边进行自动生成C代码的软件在环测试、处理器在环测试、代码的有效性分析、代码与模型的双向跟踪、代码优化、硬件测试等,让算法到嵌入式实时C代码的生成一步到位、一次成功,避免传统开发MCU器件,前期投入大、开发周期长、一般需要重复多次才能成功的弊端。这一程序设计方法,又被称为快速控
2022-05-13 15:48:13 5188
原创 台电x98plus的win10/win11使用
台电x98plus是很久之前的win平板,处理器是z8300,性能不是很强,但是作为x86处理器,可以使用windows系统,另外看网上还有安装Ubuntu的,作为win平板,偶尔看看文档还是可以的。当然,当年它有双系统版本,所以也是可以刷安卓x86,不过我更喜欢用arm处理器做的安卓平板,兼容性更好。当年我买来的时候,这是安卓双系统平板,很快就刷成了单系统win10,因为我更需要一个便携的win电脑,还靠着它写了一段时间单片机代码,keil和iar用着还行。有一点不便的是,我买的是一代x98plus,
2022-05-01 20:09:51 4837 2
原创 labview混合编程学习
由于开发需要,上位机需要采用labview设计,但是之前研究算法主要靠matlab或者python,因此考虑采用labview混合编程的方式。目前,界面设计采用Labview,而算法部分采用Matlab或者python,即采用混合编程的方式设计电池检测系统的上位机软件,要求开发的电脑上同时安装以上软件。目前的开发环境的版本:LabVIEW 2019 32bit中文版MatLab R2018b以上版本python 32bit软件安装与配置labview安装安装32bit的labview2019
2022-02-05 18:35:35 3614
原创 NVIDIA_TX1之多python环境管理
多版本python,是为了安装多版本的pytorch或者tensorflow。在电脑上开发时,用的最多的是anaconda工具,只是jetpack对应的TX1、TX2这些都是arm开发板,没有直接的anaconda可以使用,所以总结了一下管理方法。使用Archiconda之前,我写的《TX1使用_jetpack4.6使用》一文中,介绍了这个工具,它相当于AArch64架构的conda,使用的命令和anaconda内的conda命令一样。使用virtualenv在官方的博文《Installing T
2022-01-29 12:08:20 2063
原创 git代码管理学习笔记
在现在,代码的存储和管理已经有许多好用的工具。git是目前使用最广泛的工具之一,而且很多软件内部都集成了git工具,可以帮助方便地将代码存入github、gitee(码云)等平台或者是本地代码管理,因此研究Git的使用。软件内部集成的git使用我常用的编程软件有CCS、VS2019,它的内部都带有git工具。CCS的git使用对要建立git的工程右键随后弹出的界面,提示你建立仓库虽然会警告,不建议你选择eclipse的workspace作仓库仓库建立后,team的页面又会多出许多熟悉的选
2022-01-28 13:47:39 1018
原创 tensorflow1迁移2尝试
最近跟着看了一篇博文《深度学习之卷积神经网络CNN及tensorflow代码实现示例》,学习着里面的代码,但是遇到了问题,那就是发现里面很多是tensorflow1的代码,而我用的是tensorflow2。以这个为例子,研究tensorflow1到2的转换。简单方法tf2直接全局转为tf1,这样代码很快就跑起来了。import tensorflow.compat.v1 as tftf.disable_v2_behavior()不过如果你用cuda,而且是最新版的,会发现在运行时会提示你,缺少一些
2022-01-27 12:33:13 3447
原创 vscode搭建opencv环境
虽然vs2019和opencv搭配使用挺简单的,但是还是希望能够用轻量级的vscode来实现编程,所以研究了cmkae+vscode配置opencv的开发环境。opencv的获取+mingv/cmake的配置为了完全摆脱vs2019,选择的是mingw的编译器,这里参照的是《VSCODE通过MinGW和CMake搭建OpenCV》。虽然mingw配置挺简单的,但是opencv的源代码用mingw编译坑挺多的,这里用的是github提供的别人编译好的OpenCV-MinGW-Build,方便前期的学习。
2022-01-26 18:43:43 4737
原创 vscode搭建python环境
在前面《win10下深度学习环境的安装配置》下,对于环境的配置进行了简单介绍。这段时间,我打算将开发环境切为vscode+anaconda,界面借助qt进行设计。在此记录了配置。python环境建立借助anaconda进行管理环境,去官网找到anaconda安装包后,基本默认安装即可。只需要手动在系统中的path环境变量中,将它的安装位置,如D:\Anaconda3加入,此外加入Anaconda3\Scripts、Anaconda3\Library\bin等文件夹的路径即可。针对需要,这里准备建立一个
2022-01-24 16:51:54 1813
原创 win下深度学习环境的安装配置
尽管我电脑的性能也一般,但是测试些简单代码足够了。因此,研究了下在win10下搭建深度学习环境,主要围绕这pytorch和tensorflow展开的。conda的工具设置PC上的python管理方便多了,直接选择Anaconda就行了,官网即可下载安装包,并且PC上可以找到很多源来加速pip和conda的下载安装。像pip工具,我使用的是清华源在C:\Users\XXX(XXX为用户名)下新建pip文件夹,里面建立pip.ini文件,写上[global]index-url = https://p
2021-12-25 22:18:58 1563
原创 基于WinForm的c#上位机制作
在嵌入式开发或是其他学术研究时,有一个自己设计的上位机可以方便自己的研究,比如嵌入想要的算法,或是发送特定格式的通讯数据。由于以前学过c#,加上它和c语言接近,平时开发也以c语言为主,因此选择了c#作为设计语言。上位机界面开发环境配置用微软的VS2017(VS2019)开发而成,该软件可以通过微软的在线安装工具来安装,一般选择VS社区版就可以满足大部分的开发需要,只是需要注册微软账户来激活开发环境。以VS2017为例,当然现在已经换了2019开发组件只需要选择.net桌面开发即可,C++那个只要
2021-12-25 21:16:54 23364 26
原创 NVIDIA_TX1之Jetpack4.6使用笔记
目前使用的是jetpack4.6,通过刷机后,得到了一个运行Ubuntu18.04版本的tx1。在准备刷入官方提供的一系列组件时,遇到了空间不够的问题,参考网上教程,加入了SSD,扩展了容量,目前还在配置pytorch和tensorflow之中。现在总结这段时间的研究经验。SSD的安装这个首先需要看你的载板接口了,之前用的RTSO-9003载板只有SD卡接口,自然不能安装SSD扩容了。后来换的载板上有m2接口,而且是key B,不过现在的m2固态接口,多数是同时兼容B key和M key的M.2(B+M
2021-12-22 15:43:07 3119
原创 NVIDIA_TX1之初次使用体验
NVIDIA Jetson TX1是英伟达推出的一款可用于深度学习等方面研究的计算机板卡,带有16G的EMMC存储和 4GB的内存,它采用了Maxwell GPU架构,支持CUDA、TensorRT等。这款板卡运行linux的体验上,比前面的斐讯n1好多了(当然,价格也差多了。。。)。刷机刷机的方法在网上已经有很多教程,但是很多都还是jetpack 3系列的老教程,我想自己摸索下,研究下新版本jetpack刷机的方法。我刷机时使用的是jetpack4.6,通过USB刷机。按照网上的说法,其实现在已经支
2021-12-12 10:54:07 2285 3
原创 视觉学习笔记之Opencv导入深度学习模型
前言我的研究方向不是计算机视觉,这段时间开始的CV学习纯粹是出于兴趣,在此记录下自己的学习历程,也方便感兴趣的同伴一起学习。目前,我学习主要参照的是《OpenCV 4计算机视觉项目实战(原书第2版)》,所学习的代码也是来自于这本书。因为我比较习惯c++和c#的代码,所以更偏向于从c++版本的opencv开始学起。这次主要学习的是opencv导入深度学习模型。配置Opencvopencv是一个开源的视觉代码框架,首先使用从官网下载的安装包来获取opencv的源代码。官网上提供了多个版本的openc
2021-11-28 15:57:05 5066
原创 铁电FM25CL64读写
铁电体比EEPROM读写速度更快,且该芯片的接口是SPI接口,本质上DSP的数据存储,属于SPI主从机数据交互。DSP做主机时会控制通信的时钟,铁电模块FM25CL64作为从机是不能产生时钟的。如果从机要发送数据,那可以在主机发送数据的时钟上发送数据,这也就是主机DSP读取数据时的虚写/伪写操作。铁电模块操作码#define Read_CMD 0x0300 //读25LC640命令0000 0011#define Write_CMD 0x0200 //写25LC640命令0
2021-01-29 10:44:59 5407
原创 DSP28035的CAN通讯程序
CAN通讯设计DSP/MCU的CAN接口是指芯片外设中的CAN总线控制器,其输出电平为TTL规格,如果直接将两块芯片的CANRX、CANTX引脚连接,无法实现CAN通讯。SAJ1000、TJA1050芯片是属于物理层芯片,将TTL电平信号转换为符合CAN规范的差分信号,从而实现CAN通讯。因此,上位机与DSP进行CAN通讯时,相比于基于SCI的串口通讯,需要多加一个收发芯片模块。将DSP/MCU的CANRX引脚接入模块的RX,CANTX接入模块的TX,从而将TTL电平信号转为CAN通讯的差分信号CANH
2020-11-08 22:58:32 8404
原创 基于ATmega8的测速计设计
这是曾经本科生时期的制作,一个用atmega8a芯片做的测速计。当时选用atmega8a的原因很简单,学生时代做东西,都是捡到啥芯片就用啥,只要性能还能过得去就可以了。这款单片机性能一般,但是比at89c51强多了(最主要是剩下的多),就是烧写程序时候需要配置熔丝位,一时间不太习惯。整个工程是用iar for avr写的,因为那时候一直用msp430,习惯了iar的界面。首先是选头文件,iom8.h定义了相关的寄存器,装好iar就能用了。//这里是iar里面的#include <iom8.h&g
2020-10-03 21:51:09 1364
原创 无刷直流电机的无位置传感器控制学习笔记
BLDC与PMSM关系关于这个问题,很多人不太注意,我见过很多人把无刷直流电机和永磁同步电机不区分,以至于出现了正弦波无刷直流电机这样的叫法。实际上,在学校里面学习的时候,这个还是区分开的。一般把梯形波的无刷直流电机...
2020-08-02 12:32:39 6746 2
原创 永磁同步电机PI控制器设计
前言电机控制中,使用最多的就是PI控制器了,因为D参数通常使用不多。我打算以PMSM双环控制为例,对传统的PI控制进行分析。下面是看到的一段PI控制器的介绍按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点;而且在理论上可以证明,对于过程控制的典型对象──“一阶滞后+纯滞后”与“二阶滞后+纯滞后”的控制对象,PID控制器是一种最优控制。PID调节规律是连续系
2020-07-31 22:36:23 13604 7
原创 电机控制学习经验
已经读了三年研究生,如果算上之前本科为了参加比赛而学习的电机控制,应该学电机控制接近五年了。这几年下来感觉学的还是很充实的,今天谈谈电机控制可以学些什么。如许多人所说,电机控制已经十分成熟了。矢量控制,无位置传感器运行等技术,一个学电机控制的人应该基本掌握。对于本科时期的学生,这一块可以先定性认识,借助于各种芯片厂商的软硬件方案,熟悉这一块的控制。本科时期,我当年主要玩的就是stm32这些单片机,学习下调调控制器参数。对着代码看看矢量控制这些概念是如何通过一行行代码实现的。到了研究生时期,前期积累的编程
2020-06-17 09:28:51 10787 2
原创 电机控制板隔离的必要性
实验安全在我以前和师兄做实验的时候,曾经把实验板烧坏,有两次是出现在板子地线与外界相连的情况下,最严重的时候把连着的电脑一起烧了。因此,加入隔离是非常有必要的。冷地与热地地分为热地与冷地两种。与220V市电连接而且不接地(无法接地)的电路地线叫做“热地”,与220V市电完全隔离而且接地(在电连接上可以接地也可以不接地)的电路地线叫“冷地”。热地是不能随便接触的,用不绝缘的工具或人体接触热地,...
2020-03-20 16:25:06 3609 1
原创 微网的通讯实现研究
通讯载体目前实验设备中通讯方式有串口通讯、CAN通讯、以太网通讯。常见的通讯协议有modbus协议、TCP/IP协议等。通讯在硬件层面上的实现包含了CAN、串口通讯、以太网、SPI、IIC、MCBSP、单总线等多种。目前单片机和dsp对这些通讯做了硬件支持,而IIC、SPI通讯、单总线通讯往往可以通过软件时序进行模拟,以保证通讯程序的可移植性。需要注意的是IIC专利问题曾对某些单片机的硬件II...
2020-03-19 20:48:18 1447
原创 永磁同步电机位置检测学习笔记
通过传感器速度位置检测 电码盘、旋转变压器和霍尔是常用的检测旋转电机转子位置的传感器。 光电码盘的精度较高,适于高性能的控制系统使用,但它的环境适应能力较差,较大的机械冲击和震动会影响精度。随着光电技术的发展,光电编码盘的精度不断的提高。 旋转变压器方面可以准确的检测转子位置,并且具有环境适应能力强的优点。近年来,旋转变压器的研究从接触式和耦合式向磁阻式旋转变压器转变。 霍尔具有成...
2020-02-16 23:26:12 10799 11
原创 DSP28335/28035程序烧入flash经验
网上常见的教程 在DSP程序烧入flash后,为了使得程序运行时间和ram中一样,需要将程序搬运到ram里面。网上通常教的方法是利用memcopy函数,将需要搬迁到Ram的函数从Flash搬运至Ram中。在main.c写#pragma CODE_SECTION(adca1_interrupt_isr,"ramfuncs");//指定某函数在ram里运行MemCopy(&Ramfu...
2020-02-16 19:35:02 5655
原创 DSP28m35的IPC通讯编程经验
28m35介绍 28m35属于Concerto 系列,这一系列特点是具有异构双核。它同时具有F28x和ARM Cortex M3内核,相关的例程可以在controlsuit中找到。以下TI官网对这一系列的介绍。 Concerto 系列是一款多内核片上系统微控制器单元 (MCU),此控制器单元具有独立的通信和实时控制子系统。 F28M35x 系列器件是 Concerto 产品中的第一系列产品...
2020-02-16 12:26:44 1404
原创 芯片厂商的电机控制方案
针对电机控制或者其他电力电子应用场合,各大芯片厂商不仅生产了各种芯片和功率器件,并且针对这些应用场合,设计了许多控制算法的类库。 厂商提供的demo大部分都是基于状态机的模型设计,并且将各部分功能模块化。同时设计了所需的上位机调试工具,并给出了示例参考的硬件demo板。 一般使用这些类库,需要使用相应厂商的芯片,部分厂商提供的是开源的类库或开放的算法方案,可以直接移植到开发者所想使用的...
2020-02-15 17:05:01 5535
原创 DSP28035的CLA使用经验
CLA简介TI的CLA本身是一个加入到28035等DSP的协处理器,可以执行浮点运算,并且有CLAmath库函数,可以灵活执行各种浮点运算和非线性运算。由于CLA为协处理器,可以与CPU同时工作,往往在CLA执行算法,而CPU去执行各种通讯、保护等程序。不足之处是CLA执行逻辑运算的效率较低,但是其对算法运算的执行效率高于CPU。TI提供了CLAmath.lib这一函数库,帮助CLA模块进行运算...
2020-02-10 16:03:31 22178 6
原创 电机控制程序设计经验
这边总结了一些电机程序编写中的经验,很多经验也来源于别人的博客或者和一些前辈的交流,在此贴出。设计流程 平台的搭建需要考虑标准化问题。像dsp实验的模块化、各种标准协议采用、仿真验证到算法实现的流程等,都是属于最基本的要求。而多项工作的多人合力完成,关键在于标准化。标准化的接口设计,使得每个人都专注于实现各自模块中的核心功能。 先对算法进行系统级别仿真,工具有matlab等软件,而后...
2020-02-10 12:30:13 5781
原创 电机控制编程的数学运算优化方案
引言 电机控制应用设计传统上采用微控制器(MCU)或数字信号处理器(DSP)来运行电机控制算法。在研究永磁同步电机(PMSM)矢量控制的时候,坐标变换的三角函数运算、观测器的迭代、锁相环的鉴相环节(用到了三角函数)都比较消耗电机主控芯片的计算能力。在考虑算法实现的时候,都需要针对主控芯片的实际性能进行一定优化,才能确保算法能够顺利运行。这里我总结下电机控制中对程序算法优化的办法。数据的概念...
2020-02-10 11:44:33 4446
原创 斐讯N1的armbian使用心得
使用图形化armbian的原因 我使用的是图形化的armbian,之所以是用图形化的版本,一是考虑最新版本的armbian支持gpu加速,相对比以前流畅了;二是我计划把n1作为小型个人电脑用,主要用于轻办公。目前我的armbian版本是19.11.5,显示器用的分辨率为1440*960。chromium看网页视频时,cpu占用率80%左右,勉强看还是可以的,看本地视频时占用率40%左右。 ...
2020-01-26 22:20:20 11678 4
原创 Modbus协议理解与嵌入式编程实现
通讯协议基本概念通讯协议的概念协议实现通讯协议的概念以modbus为例,大部分通讯协议只是一段软件代码,和硬件是独立的像485通讯、SCI通讯、SPI通讯这些通讯,本身只是一个通讯的硬件层面的叫法。它们可以作为各种通讯协议的载体来进行,然后CAN通讯、以太网通讯比较特殊,有自身的通讯协议,它们基础的通讯协议有can协议、TPC/IP协议这些,但是其他的通讯协议可以建立在这些协议的基础上搭载着...
2020-01-19 23:40:16 3364 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人