配置环境 系统:Raspbian11(官方64位) 设备:树莓派CM4 一.写在前面 关于PWM的基本介绍在上一篇博客已经说过了:树莓派GPIO开发(二)RGB模块-PWM调节 在RGB模块中,我们主要使用的是PWM控制电压大小的输出. 在蜂鸣器这里我们主要用的是频率的变化,频率决定音调,电压决定大小. 二.无源蜂鸣器基本介绍 蜂鸣器是一种简单低廉的音频信号装置,可以分为有源和无源两 种. 有源蜂鸣器内置震荡源通电时会发出单一频率的声音. 无缘蜂鸣器内部没有震荡源所以接入直流电后不会发出声音,需…
配置环境 系统:Raspbian11(官方64位) 设备:树莓派CM4 一.PWM简单介绍 全称:Pulse-width modulation,脉冲宽度调制,简单的数模转换方法 1.基本原理 脉冲宽度调制(PWM),是用脉冲信号对模拟信号进行近似的一 种技术,一般变换后脉冲的周期固定,但脉冲的工作周期 (Duty Cycle,即一个周期内高电平的比例)会依所需模拟信号的大小而改变,高电平所占比例越高,拟合的模拟信号的幅度越大. PWM 技术通过使用高分辨率计数器(调制频率)调制方波的占空比,从而…
配置环境 系统:Raspbian11(64位) 设备:树莓派CM4 一.写在前面 主要为了测试我捡漏买的CM4的拓展版 拓展板子没有焊接引脚,但是预留的接口 手动焊接一下 测试成功 ,说明我捡的这块板子的GPIO基本是正常的,而且没有引脚被挡到,赚到了! 使用传感器:激光头传感器模块 KY-008 二.树莓派使用GPIO口的基础知识 1.GPIO 引脚的定义(编号方法) 在树莓派上使用GPIO一般就用下面三种,第一种就是板子上的1.2.3.....40,用起来傻瓜式,只是仅能在树莓派上用,一般用…
树莓派我们编程一般都直接用高效的python,针对于GPIO编程,python也是有这一方面的库的,这里最有名也是最常用的就是RPI.GPIO了.这个库是专门为树莓派GPIO编程所设计的,利用它你可以愉快的像Arduino那样轻松控制GPIO管脚. 安装: sudo apt-get -y python-pip #安装pip sudo pip install rpi.gpio #安装RPI.GPIO 安装完成后在实际运用的时候,我们也会像arduino那样去设置输入输出,设置高低电平,获取针脚值等…
树莓派GPIO通过PWM来控制RGB彩色LED灯,可以显示任何我们想要的颜色. RGB模块简介 这个RGB彩色LED里其实有3个灯,分别是红灯.绿灯和蓝灯.控制这三个灯分别发出不同强度的光,混合起来就能发出各种颜色的光了. LED灯上的4根引脚分别是GND,R,G,B. GND需要接地.我们把它连到树莓派的电源地上. R,G,B分别是红绿蓝灯的正极接口.我们把它们连接到树莓派的GPIO口上. RGB彩色LED灯模块.jpg 硬件连接 R接到树莓派GPIO18 G连接树莓派GPIO15 B连接树莓…
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(三): 基于FwLib_STC8的模数转换ADC介绍和演示用例说明 STC8H开发(四): FwLib_STC8 封装库的介绍和使用注意事项 STC8H开发(五): SPI驱动nRF24L01无线模块 STC8H开发(六): SPI驱动ADXL345三轴加速度检测模块 STC8H开发(七…
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(三): 基于FwLib_STC8的模数转换ADC介绍和演示用例说明 STC8H开发(四): FwLib_STC8 封装库的介绍和使用注意事项 STC8H开发(五): SPI驱动nRF24L01无线模块 STC8H开发(六): SPI驱动ADXL345三轴加速度检测模块 STC8H开发(七…
我手里面的是树莓派3,系统是Raspbian官方操作系统,已经安装好了wiringPi.        PWM简介:脉宽调制(PWM)是指用微处理器的数字输出来对模拟电路进行控制,是一种对模拟信号电平进行数字编码的方法.wiringpi有两种方式产生PWM,第一种为树莓派硬件PWM,如果需要精确的PWM控制的话,最好使用硬件PWM.第二种为wiringpi软件模拟的pwm,我们一种一种的介绍.        首先是电路连接,准备做一个LED呼吸灯程序.所以电路很简单,一个LED,一个100Ω的电…
[前言] 一个热爱技术的人一定向往有一个科技感十足的环境吧,那何不亲自实践一下属于技术人的座右铭:“技术改变世界”. 就让我们一步步动手搭建一个属于自己的“智能家居平台”吧(不要对这个名词抬杠啦,技术在手,怎么设计实现因人而异),本文只做抛砖引玉,各路大神如果有更好的想法可以各显神通,当然能在评论区留下更好的想法让大家共同学习是再好不过啦. 在文章最后附有所有源代码,有需要的可以自行下载,感谢Star~ [系列目录] 树莓派GPIO简介(Python版) 温湿度数据采集存储(DHT11,MySq…
原文:基于Asterisk的VoIP开发指南--Asterisk 模块编写指南(1) 1 开源项目概述 Asterisk是一个开源的软件包,通常运行在Linux操作系统平台上.Asterisk可以用三种协议来实现VoIP,同时可以与目前电话使用的标准硬件进行交互通信,Asterisk在实现VoIP时,不需要任何附加硬件,本文所采用的也是这种使用方式.但是,如果企业没有与VoIP语音网关运营商建立合作关系,想要自己构建这样的一个平台,那么要和数字电话设备与模拟电话设备进行交互通信,Asterisk…
一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频,你得下个腾讯视频客户端才能看它的视频) C/S架构与socket的关系: 我们学习socket就是为了完成C/S架构的开发 二 osi七层 引子: 须知一个完整的计算机系统是由硬件.操作系统.应用软件三者组成,具备了这三个条件,一台计算机系统就可以自己跟自己玩了(打个单机游戏,玩个扫雷啥的) 如果…
标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155666.html 源代码:https://github.com/lamondlu/DynamicPlugins 在上一篇中,我们介绍了通过一个最简单了例子,给大家演示了一下,如何在ASP.NET Core Mvc中借助ApplicationPart来开发一个插件.在文章的最后,我们也提出了一些待解决…
Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶软件开发规范 六个目录: #### 对某某项目进行一个标准化的开发,进行规范化. #bin : 启动项目程序的主入口 #conf : 项目的配置文件 #core : 主要逻辑(业务逻辑) #db : 存放数据() #lib : 辅助文件(存放公共的一些方法) #README : 项目文档说明 ​ 二丶time模块(时间模块) 时间的三种方…
QT树莓派交叉编译开发环境搭建 - JerryZone <Cross-compiling Qt Embedded 5.5 for Raspberry Pi 2> <Qt for Embedded Linux> <适用于树莓派Raspberry Pi的嵌入式QT平台(一) — 交叉编译安装Qt Embedded 5.5> <适用于树莓派Raspberry Pi的嵌入式QT平台(二) — 在Windows下用Qt Creator开发编译Raspberry Qt 5应用…
web服务器专题:tomcat(二)模块组件与server.xml 配置文件 回顾: Web服务器专题:tomcat(一) 基础模块 一个Server.xml的实例 <?xml version='1.0' encoding='utf-8'?> <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.Ver…
老韩头的开发日常 ☞ [好书学习]系列 背景 作为丙方,完成了甲方的二开需求.因此,在设计二开模块的时候,考虑的是当时所列的需求清单,并整合到一个二开模块中.完成交付后,客户评价蛮好的.因此,成功的为乙方争取到了继续合作的机会.然后,就没我啥事了,尴尬... 再之后过了一两个月,另一个丙方搞不定甲方的需求,所以我又被安排上线收拾残局.而,此处接手的残局有点坑,涉及多个开发的二开模块.由于甲方的需求是分批提出,且由多个团队完成.因此,二开模块的间存在循环依赖的情况.在已经跑起来的库上运行,没有任何…
seajs实现了JavaScript 的 模块开发及按模块加载.用来解决繁琐的js命名冲突,文件依赖等问题,其主要目的是令JavaScript开发模块化并可以轻松愉悦进行加载. 官方文档:http://seajs.org/docs/#docs 首先看看seajs是怎么进行模块开发的.使用seajs基本上只有一个函数"define" fn.define = function(id, deps, factory) { //code of function- } 使用define函数来进行定…
一.定义 如何将全局定义的控制器模块化 先看下全局定义的控制器 var HelloCtrl=function($scope){ $scope.name='World'; } 模块化后代码 angular.module('hello',[]) .controller('HelloCtrl',function($scope){ $scope.name='World'; }); AngularJS为自己定义了全局命名空间angular,他提供多种功能及不少便利函数,module就是其中之一. 定义新的…
iOS开发-二维码扫描和应用跳转   序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如ZXing或者ZBar.使用时集成麻烦,出错也不方便调试.在iOS7之后,苹果自身提供了二维码的扫描功能,从效率上来说,原生的二维码远高于这些第三方框架.本文讲解如何使用原生框架实现二维码扫描功能,并且进行扫描后的项目跳转.ps:本期的源代码会在文章结尾给出链接 扫描相关类 二维码扫描需要获取摄像头并…
javaweb学习总结(六)--Servlet开发(二) 一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些初始化参数. 例如: 1 <servlet> 2 <servlet-name>ServletConfigDemo1</servlet-name> 3 <servlet-class>gacl.servlet…
本人最近接收开发一个代码模块,功能主要是在页面上显示安徽省市地图,并且在鼠标移动到地图某市区域时,显示当前区域的各类信息等,一开始准备用百度地图,高德地图等地图工具进行开发,最后发现都不适合进行此类开发,随后想到用GIS,但是又不会,需要花费时间去学习,而且项目功能简单,我觉得没有必要使用GIS,之后在微软的官网上看到了类似例子.主要内容就是将一幅安徽地图,切分成地市,然后在用Silverlight把这些市拼在一起,然后在加入鼠标移动上去的事件,进行添加一些特效和Tip等,使用这种方式开发简单,…
之前我们已经通过<Drupal8开发教程:认识.info.yml文件>对模块的YAML文件有了了解,今天我们来看如何通过模块开发的方式添加一个新的页面. 在 Drupal 7 中,通过模块添加新页面非常简单,使用 hook_menu 定义路径及回调函数返回要显示的结果即可.但 Drupal 8 却要麻烦很多,虽然也是定义路径,然后关联用于显示内容的函数,但却要在两个文件中分开进行.而且 Controller 文件还有目录结构要求,这些变化都需要慢慢来适应了. 除了上文中定义的 hello_wo…
今日要闻: 性价比是个骗局: 对某个产品学上三五天个把月,然后就要花最少的钱买最多最好的东西占最大的便宜. 感谢万能的互联网,他顺利得手,顺便享受了智商上的无上满足以及居高临下的优越感--你们一千块买来的东西,我半价就入手了. 他忘了自己花了多少时间多少精力找到这个淘宝店,也忘了自己花了多少时间多少精力把这个淘宝店的评价看了个遍分析了个遍,更忘了自己花了多少时间多少精力学习分辨港版.美版.A货.B货.这些都是成本.当然,这不是问题,这么多时间和精力用在赚钱上也许赚不到五百块,两相比较,还是赚了.…
android项目开发 二维码扫描   基于android平台的二维码扫描项目,可以查看结果并且链接网址 工具/原料 zxing eclipse 方法/步骤   首先需要用到google提供的zxing和core.jar文件,可以在csdn上下载   解压zxing,并将android文件夹作为项目导入到eclipse中   打开文件列表,在libs文件中导入core.jar,并修改掉部分报错的地方(都是小问题,按照提示修改就行)   项目在这个时候就可以运行了,效果如图所示(在这之前我已经对界…
Android Camera系列开发 (二)通过Intent录制视频 作者:雨水  2013-8-18 CSDN博客:http://blog.csdn.net/gobitan/ 概述 使用Camera有两种方式:通过Intent方式和通过Camera的API.在开发系列(一) 中已经介绍了通过Intent方式拍照,本文介绍通过Intent的方式录制视频. 通过Itent实现拍录制视频 第一步:在Eclipse中创建一个名为AndroidCamera的Android工程,可参见Helloworld…
原文:C#的百度地图开发(二)转换JSON数据为相应的类 在<C#的百度地图开发(一)发起HTTP请求>一文中我们向百度提供的API的URL发起请求,并得到了返回的结果,结果是一串JSON数据,我们先将这个JSON数据,使用在线工盯进行格式化. { "status": 0, "result": [ { "x": 39.926674689976, "y": 116.46594011987 }, { "x&q…
表达式的合法性 由于我们的计算器不是单步计算的,所以我们能够一次性输入一个长表达式.然而假设用户输入的长表达式不合法的话,那么就会引发灾难.所以有必要对于用户的输入做一个限制. 一些限制举例: 比方,在输入了左括号以后那么接下来,不能输入运算符.此时运算符要是不可用的状态.在输入了右括号以后不能直接输入数字,此时数字键应该是不可用状态.等等此类的. 在这里我使用了信号与槽的方式来实现.点击不同的button,会发展出不同的信号.在这之后的事,点击button本身无需考虑,这也是信号槽的良好的设计…
Webpack 开发工具与模块热替换 ​⚠️ 注意: 永远不要在生产环境中使用这些工具,永远不要. devtool 当 JavaScript 异常抛出时,你常会想知道这个错误发生在哪个文件的哪一行.然而因为 webpack 将文件输出为一个或多个 bundle,所以 追踪这一错误会很不方便. Source maps 试图解决这一问题.它有很多选择,各有优劣: devtool build rebuild production quality eval +++ +++ no generated co…
JAVA9模块化详解(二)--模块的使用 二.模块的使用 各自的模块可以在模块工件中定义,要么就是在编译期或者运行期嵌入的环境中.为了提供可靠的配置和强健的封装性,在分块的模块系统中利用他们,必须确定它们的位置,然后决定他们如何关联彼此. 2.1 模块的路径 为了在确定在工件中定义的模块的位置,模块系统搜索模块的路径,它在主系统中定义.模块路径是一个序列,它的每一个元素要么是一个模块工件,要么是一个包含模块工件的目录.模块路径中的元素被第一个工件有序的搜索,这个工件定义了一个合适的模块.模块的路…
接下来,我们再讲一下图文消息: 如图: 大家可以先从开发者文档中了解一下图文消息的一些参数: 如上图,用户回复4时,ipastor返回了几条图文消息,上图中属于多图文消息,当然还有单图文消息,图文消息,我们需用到封装类NewsMessage和Article,至于为什么用户发送4,ipastor就会回复图文消息,这个不用我说明了吧,加个判断就可以了,看代码: if ("4".equals(content)) { NewsMessage newsMessage = new NewsMess…