Web Analytics
yangyang

码农兼一个普普通通小青年

IoT


.NET Core IoT破解PS2通讯协议

之前使用315MHZ可以进行远程控制,但是那个只有4个按钮,理论上只能控制4个变量的输入,并且偶尔信号还会串,所以需要探索其他远程控制方式。 PS2是Sony PlayStation2游戏机的遥控手柄,它采用的是2.4G无线通讯技术,有效控制范围能达到10米。恰好有人已经破解了通讯协议,使得手柄能够接到其他器件上遥控使用,比如这个叙利亚战场上使用PS2手柄控制的遥控机枪,我们这里只是简单的用在智能小车上,当然可以扩展到很多需要控制的地方,他的特点是性价比非常高(只要几十块钱就能买到一套山寨的控制器和接口,正版Playstation 2是不可能这个价格的,但是功能一点不差),而且按键丰富,方便扩展。 PS2手柄介绍 PS2手柄和接收器如下图: ▲ PS2 手柄和接收器 手柄,主要用来发送按键信息,接收器与主机相连(主机可以是树莓派,也可以是 …

IoT .NET Core PS2Controller

.NET Core IoT使用TB6612FNG驱动直流电机

在开发树莓派小车时,需要使用树莓派来控制直流电机,树莓派无法直接驱动直流电机,需要使用直流电机驱动芯片,最常见的有L298N,比如一般的TT马达用这个驱动就足够,但是如果是大功率电机,它的发热量和死区都比较大,因为我买的小车是大功率直流电机,所以使用的是TB6612FNG驱动芯片,它是东芝的芯片,能驱动两个直流电机,或者并联四个直流电机(左前和左后并联,右前和右后并联)。本文介绍如何使用TB6612FNG来驱动直流电机。 TB6612FNG驱动芯片 TB6612FNG驱动芯片结构如下图: ▲ TB6612FNG结构图 我买回来,实物是这样的,体积很小。 ▲ 装车图 针脚很多, 对照TB6612FNG结构图,各针脚功能如下。 左边针脚 功能 右边针脚 功能 PWMA A电机控制信号输入 VM 电机驱动电压输 …

IoT Raspberry Pi .NET Core TB6612FNG DCMotor

树莓派4B安装Raspberry Pi OS系统遇到的问题和解决方法

在前面的一篇文章中,描述了如何在树莓派3b+上安装ubuntu 64位系统,因为官方还没有发布正式版的64位系统,所以只有安装第三方系统,但是开发过程中会碰到各种奇怪的问题,比如缺少rasp-config,需要自己安装;比如gpio权限问题,每次重启都要重新赋权;比如通过WIFI SSH登陆时时不时WIFI会断开不稳定;比如树莓派官方摄像头无法驱动等等。所以在做需要用到GPIO,摄像头这些硬件通信的时候,安装官方的树莓派系统。 最近又买了一个树莓派4B,原因是树莓派3B+我在做驱动直流电机实验的时候,使用的是面包板的电源线改造来的,他的输出电压是12V1A,是个DC头,我买了个DC转换头,引出了正极和负极,然后连上杜邦线,当时这两根线是带电的,我在操作的时候,不小心正极碰到了树莓派3B+的电路板,当时就看到了有火花,虽然当时树莓派没通电,但悲剧依旧发生了,我的树莓派3B+永远 …

IoT Raspberry Pi .NET Core

.NET Core IoT 驱动SSD1306 I2C显示器

本篇文章严重参考阿迪王的 Windows 10 IoT: How to Drive an SSD1306 I2C Display 这篇文章,我的传感器都是参照该博客来购买的。在进行以下实验时,最好保证树莓派安装的是官方系统。我之前安装的是64位Ubuntu 20系统,但是在需要访问I2C接口,或者访问树莓派官方摄像头,红外传感器发送和接受,以及本文的SSD1306显示时,总会遇到各种各样的问题。所以我重新将系统换成了官方32位系统以及32位.NET Core运行时,这对于Visual Studio开发来说没有变化,依旧发布后,拷贝到树莓派上即可运行,不需要关注32位或者64位。 SSD1306 I2C OLED显示器 SSD1306 I2C OLED显示器分辨率为128×64,也叫12864屏,SSD1306为其显示驱动芯片,长这样,各位在购买传感器的 …

IoT Raspberry Pi .NET Core SSD1306

.NET Core IoT 驱动 TM1637四位数码管

买了一个四位数码管,它长这样,有4个针脚,内部驱动芯片为TM1637,还有一种内部驱动芯片为74HC595,有5个针脚,千万要注意,不然就要996了,不过如果你买成了74HC585,可以参考阿迪王的这篇文章: 说回TM1637,这个模块是一个12脚的带时钟点的4位共阳数码管,只需要2跟线号线即可使单片机控制4位8段数码管,并且亮度8级可调。 接线 接线如上图,VCC接5V,GND接GND,CLK接GPIO19,DIO接GPIO26。显示是通过时钟CLK和DIO共同控制。 新建TLEDTM1637Driver类,用来封装显示模块,代码如下: public class LEDTM1637Driver : IDisposable { private byte[] Characters = { 0x3f, 0x06, 0x5b, …

IoT Raspberry Pi .NET Core TM1637 DigitTube

.NET Core IoT 315MHz 遥控器

我买了一个 315MHz 无线遥控收发模块,这种还有433MHz的。有了它你就可以进行各种遥控操作,比如可以用它遥控开启你家车库的门,停车库里的车位上的地锁(我估计也是这种,便宜稳定),可以用来遥控树莓派小车等,它长这样: ▲ 是不是觉得这遥控器,又丑又大😂 ▲ 实际他跟车钥匙差不多,还挺精致的😁 ▲ 还别说,这个遥控车钥匙的控制方式跟这个还挺类似,我看了下,他用的是434MHZ 左边是接收器,右边是遥控器,这遥控器,实际上跟车钥匙差不多大。如果不放对比,你可能觉得这东西又丑又大,我一开始也这么认为,买到手之后发现不大,看起来还挺精致。十来块钱就能买到还挺不错的。 左边的接收器,左上方ANT可以外接天线,板子上其实有个天线,我实测不外接天线,10米内仍然能接到信号。接收器上,从左到右依次接口为: VT,输出,只要遥控器任何一个按钮按下, …

IoT Raspberry Pi .NET Core 355MH Remote Control

.NET Core IoT 人体红外传感器

在前面的文章中,演示了如何通过GPIO的高低电平控制LED灯的亮起和熄灭,这篇文章介绍如何联动人体红外传感器来控制LED小灯的亮起和熄灭。 HC-SR501人体红外感应传感器 HC-SR501长下图这样,圆形的球是菲涅尔透镜.: 有三个插脚,VCC接树莓派5V电源接口, GND接树莓派GND接口,OUT是输出接口,接树莓派的GPIO口,感应到人体后,输出高电平,否则输出低电平。有两种信号输出模式 L不可重复,表示感应输出高电平后,延时时间一结束,输出将自动从高电平变为低电平。 H可重复,表示感应输出高电平后,在延时时间段内,如果有人体在其感应范围内活动,输出将一直保持高电平,知道人离开后才延时将高电平变为低电平。 调节方式就是上图左下角的黄色跳线,拔下就可以选择H或者L,默认为H。 这里由于传感器会向树莓派插口输出电压,尤其 …

IoT Raspberry Pi HC-SR501 PIR

.NET Core IoT Blink小程序

前面一篇文章说明了如何在Ubuntu上运行.NET Core程序,现在开始搭建第一个物联网小程序Blink。 配置GOPI接口权限 在开始访问GOPI时,需要设置树莓派的相关权限。一般都会告诉你使用使用sudo raspi-config命令,但是因为树莓派目前还没有正式版本的64位系统,我装的ubuntu,里面没有raspi-config,如果执行的话,会报Command Not found命令 ,所以需要安装相关模块,可以查看树莓派安装非官方系统没有raspi-config命令的解决方法。这篇文章。 安装完成之后,执行如下命令: ubuntu@ubuntu:~$ sudo raspi-config 就可以弹出主界面。 ▲树莓派设置主界面 ▲开启远程GPIO接口 开启之后,我们就可以开始针对GOPI编程了。 .NET Core代 …

IoT Raspberry Pi .NET Core Blink

树莓派3b+中安装64位ubuntu系统并设置.NET Core开发环境

很久之前买了一个树莓派3B+,放在那里吃灰😂,今天准备拿起来重新搞一下,一个是配置一下.NET Core开发环境,另外一个是玩一下.NET Core IoT。 ▲ 树莓派3B+ 在树莓派上安装64位Ubuntu 20.04 因为树莓派从3B+版本开始,支持64位系统,但是在树莓派官方网站上只提供了64位的beta版本系统。如果你买的是树莓派4 2G以上版本,那么最好安装64位系统,这样能充分利用内存。所以目前要安装64位系统,只有Ubuntu和Gentoo。 首先去Ubuntu官网下载针对Raspberry的64为系统。 下载下来的img文件,使用balenaEtcher工具烧录到树莓派的SD卡中。 使用Flash from file 选择img文件,中间选择树莓派的SD卡(需要读卡器),然后点击Flash!,烧录的过程中不要动读卡器 …

IoT Raspberry Pi .NET Core Ubuntu

  • 1