Arduino案例实操 -- 智能巡防小车(一)案例概述

前言鉴于前几篇Arduino案例博文都都是写完整个操作过程及现象才发布,中间可能是花了几天半个月的业余时间来写,最长的好像还用了一年时间才补完(磁悬浮emmmm…),所以这次案例也稍微有点复杂,博主决定分成几篇博文来说明,至少确保你们能看明白,因为博主一直以案例教学的方式在写博客嘛 ~ ~ ~ 啊哈哈哈哈哈哈 ~ ~ ~一、案例概述1.1 案例效果演示1.2 案例所需材料准备1.1 案例效果演示智能巡防小车可能按里面意思去理解每个人理解的都不一样,先看看小车的演示效果吧(emmm为了做做个动图折
分类: 其他 发布时间: 03-03 09:36 阅读次数: 0

Arduino案例实操 -- 智能巡防小车(二)OpenMV黑线检测

二、OpenMV黑线检测2.1 OpenMV简介2.2 OpenMV详细参数2.3 OpenMV IDE安装2.4 OpenMV Cam连接2.5 OpenMV项目搭建2.5.1 OpenMV工程新建2.5.2 OpenMV颜色识别相关函数find_blobs函数阈值颜色阈值选择工具blobs是一个列表blob色块对象2.5.3 OpenMV黑线检测源码说明2.5.4 OpenMV固件上传2.1 OpenMV简介2.2 OpenMV详细参数这两小节都有相关博文做过介绍,这里直接甩
分类: 其他 发布时间: 03-03 09:35 阅读次数: 0

Arduino案例实操 -- 点阵屏汉字显示(MAX7219级联)

Arduino点阵屏案例LED点阵屏显示原理8x8点阵屏引脚连接LED点阵屏LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。显示原理以简单的8X8点阵为例,它共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮。模块外
分类: 其他 发布时间: 03-03 09:35 阅读次数: 0

idea配置文件位置修改

idea配置文件位置修改重置系统后,又一次安装了idea,在配置文件位置修改上耗费了很多的时间,在这里记录一下方法。简言之,将原本在c盘的配置文件复制放到d盘(或其他目的盘),再修改idea.properties文件首先看一下官网对于配置文件的默认位置和修改配置文件位置的介绍官网对配置文件位置的介绍官网对修改配置文件的介绍windows系统中默认位置对应自己电脑中文件位置idea.properties文件位置:idea安装目录下的bin目录先将原配置文件复制到想放置的目录下(我是
分类: 其他 发布时间: 03-03 09:35 阅读次数: 0

iOS 开发Cocoapods的那些事你真的知道吗?满满的干货

简介1.Cocoapods的解释Cocoapods是一个类库管理工具,它可以很方便的查找、下载最新的第三方库,能够找到真正好用的库,以此来缩短我们的开发周期和提升软件的质量,解决了库与库之间的依赖关系,让我们能自动化的、更直观的管理第三方库,但是Cocoapods不易操作,它必须要有自己的运行环境,而且要牢记终端命令行的指令。2.cocopods的优缺点优点:①可以很方便的查找到新的第三方库,能够找到真正好用的库,以此来缩短我们的开发周期和提升软件的质量。②解决了库与库之间的依赖关系,让我们能自动化
分类: 其他 发布时间: 03-03 09:35 阅读次数: 0

iOS 完美解决navigationBar隐藏/显示

项目开发navigationController的使用避免不了,随着界面的丰富我们会发现navigationBar的显示/隐藏变得极其恶心.总有那么一种情况的跳转显得十分不友好,网上找了很多资料,总于整理了一个相对简单的方式,让navigationBar完美的显示/隐藏解决办法给UIViewController 建一个分类 直接放代码UIViewController+Hidden.h#import <UIKit/UIKit.h>@interface UIViewController
分类: 其他 发布时间: 03-03 09:34 阅读次数: 0

iOS 微信openSDK1.8.6 分享二次跳转报错

问题分析:App分享微信时:检测Universial失败 微信openSDK1.8.6WX>>>>>5, 0, Universal Link check failed. The application is launched by WeChat via schemeUniversal links失效,可能原因:1)工程配置associated domain未打开或未添加Universal links域名2)配置文件未上线或未按苹果要求放在服务器指定的路径下(域名根目录
分类: 其他 发布时间: 03-03 09:34 阅读次数: 0

机器学习之监督学习--(分类)决策树①

注:数据集在文章末尾(1)决策树简单例子from sklearn.feature_extraction import DictVectorizerfrom sklearn import treefrom sklearn import preprocessingimport csv# 读入数据Dtree = open(r'AllElectronics.csv', 'r')reader = csv.reader(Dtree)# 获取第一行数据headers = reader.__next
分类: 其他 发布时间: 03-03 09:34 阅读次数: 0

机器学习之监督学习--(分类)决策树②

注:数据集在文章末尾(1)决策树–线性二分类import matplotlib.pyplot as pltimport numpy as npfrom sklearn.metrics import classification_reportfrom sklearn import tree# 载入数据data = np.genfromtxt("LR-testSet.csv", delimiter=",")x_data = data[:,:-1]y_data = data[:,-1]pl
分类: 其他 发布时间: 03-03 09:34 阅读次数: 0

机器学习之监督学习--(回归)决策树③--回归树

注:数据集在文章末尾(1)回归树import numpy as npimport matplotlib.pyplot as pltfrom sklearn import tree# 载入数据data = np.genfromtxt("data.csv", delimiter=",")x_data = data[:,0,np.newaxis]y_data = data[:,1,np.newaxis]plt.scatter(x_data,y_data)plt.show()model
分类: 其他 发布时间: 03-03 09:33 阅读次数: 0

机器学习之监督学习--(分类)支持向量机SVM①

SVM简单例子from sklearn import svmx = [[3, 3], [4, 3], [1, 1]]y = [1, 1, -1]model = svm.SVC(kernel='linear')model.fit(x, y)# 打印支持向量print(model.support_vectors_)# 第2和第0个点是支持向量print(model.support_)# 有几个支持向量print(model.n_support_)print(model.predic
分类: 其他 发布时间: 03-03 09:33 阅读次数: 0

机器学习之监督学习--(分类)支持向量机SVM②

注:数据集在文章末尾(1)SVM–线性分类import numpy as npimport matplotlib.pyplot as pltfrom sklearn import svm# 创建40个点x_data = np.r_[np.random.randn(20, 2) - [2, 2], np.random.randn(20, 2) + [2, 2]]y_data = [0]*20 +[1]*20plt.scatter(x_data[:,0],x_data[:,1],c=y_da
分类: 其他 发布时间: 03-03 09:33 阅读次数: 0

机器学习之无监督学习--(聚类)K-Means

1. K-MEANS概述       算法接受参数k;然后将事先输入的n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一个聚类中的对象相似度较高,而不同聚类中的对象相似度较小。注:数据集在文章末尾2. 算法思想       以空间k个点为中心进行聚类,对最靠近它们的对象归类。通过迭代的方法,逐次更新各聚类中心的值,直至得到最好的聚类结果。3. 算法流程
分类: 其他 发布时间: 03-03 09:33 阅读次数: 0

机器学习之无监督学习--(聚类)Mini Batch K-Means

1. Mini Batch K-Means概述       Mini-Batch-K-MEANS算法是K-Means算法的变种,采用小批次量的数据子集减少计算时间。这里所谓的小批量是指每次训练算法时所随机抽取的数据子集,采用这些随机产生的子集进行训练算法,大大减小了计算时间,结果一般只略差于标准算法。2. 算法步骤1)从数据集中随机抽取一些数据形成小批量,把它们分配给最近的质心。2)更新质心:与K均值算法相比,数据的过呢更新是在
分类: 其他 发布时间: 03-03 09:32 阅读次数: 0

机器学习之无监督学习--(聚类)K-Means肘部法则

1. K-Means算法缺点1)对k个初始质心的选择比较敏感,容易陷入局部最小值。如下面这两种情况。K-Means也是收敛了,只是收敛到了局部最小值。2)k值得选择是用户指定的,不同的k得到的结果会有挺大的不同,如下图所示,左边是k=3的结果,蓝色的簇太稀疏了,蓝色的簇应该可以再划分成两个簇。右边的是k=5的结果,红色和蓝色的簇应该合并为一个簇3)存在局限性,如下面这种非球状的数据分布就搞不定了。4)数据量比较大的时候,收敛会比较慢。2. K-Means算法优化1)使用多次的随机初始化,计
分类: 其他 发布时间: 03-03 09:32 阅读次数: 0

机器学习之无监督学习--(聚类)DBSCAN

1. DBSCAN概述       DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是基于密度的聚类算法,本算法将具有足够高密度的区域划分为簇,并可以发现任何形状的聚类。● ε邻域:给定对象半径ε内的区域成为该对象的ε邻域● 核心对象:如果给定ε邻域内的样本点数大于等于Minpoints,则该对象为核心对象。● 直接密度可达:给定一个对象集合
分类: 其他 发布时间: 03-03 09:32 阅读次数: 0

一张图理解什么是TP、TN、FP、FN

分类: 其他 发布时间: 03-03 09:32 阅读次数: 0

机器学习之无监督学习--(降维)主成分分析PCA

注:数据集在文章末尾PCA简单例子import numpy as npimport matplotlib.pyplot as plt# 载入数据data = np.genfromtxt("data.csv", delimiter=",")x_data = data[:,0]y_data = data[:,1]plt.scatter(x_data,y_data)plt.show()print(x_data.shape)输出:# 数据中心化def zeroMean(dataMat
分类: 其他 发布时间: 03-03 09:31 阅读次数: 0

机器学习之集成学习(Ensemble Learning)介绍

1. 概述       在机器学习的有监督学习算法中,我们的目标是学习出一个稳定的且在各个方面表现都较好的模型,但实际情况往往不这么理想,有时我们只能得到多个有偏好的模型(弱监督模型,在某些方面表现的比较好)。集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。     &n
分类: 其他 发布时间: 03-03 09:31 阅读次数: 0

机器学习之集成学习--Bagging

1. 概述       Bagging也叫做bootstrap aggregating,是在原始数据集选择S次后得到S个新数据集的一种技术。是一种有放回抽样。如图:2. 示例3. 算法流程       Bagging是投票式算法,如图所示:首先使用Bootstrap产生k不同的训练数据集,然后再分别基于这些训练数据集得到多个基础分类器,最后通过对基础分类器
分类: 其他 发布时间: 03-03 09:31 阅读次数: 0