.NET Developer, Microsoft MVP

Windows Development 90 UWP, WPF, WinForm, etc


Reed Controlled Light by Windows 10 IoT Core

Reed switch is an electronic component to connect / disconnect the switch by magnetic field. When it touchs magnetic field, the two iron sheets inside the tube will clip together, so the switch is connected.  The application of Reed Swith: Door light controller: When you open the door, turn the light on. When you close the door, turn off the light. This is simply install a reed switch on …

Windows 10 IoT Raspberry Pi

74HC595 4 Digits LED Tube with Windows 10

One of the common used LED Tube driver chip is 74HC595, by using the Chip, you can save GPIO ports. I bought a LED Tube with 595 chip, it only need 3 GPIO ports to display 4 digits. However there is no existing posts about how to drive the 74HC595 LED Tube from Windows 10. So I can only try for myself. 1. Physical Connection VCC to DC3.3 power, GND to Ground, DIO to GPIO27 (you can change it, …

Windows 10 IoT Raspberry Pi

Using stepper motor in Windows 10 IoT Core

如果你需要精确控制设备的转动角度,普通电机是做不到的,通常我们会选用步进马达。比如28BYJ-48这个型号的,很容易买到。 步进马达得配合驱动板使用,最常用的是ULN2003芯片的驱动板,就像下图。不过注意,你买到的驱动板长相可能不太一样,不过没关系,只要芯片上写的是ULN2003,就可以使用,它们的接口都是一样的。关于步进马达的原理,可以看这篇: https://en.wikipedia.org/wiki/Stepper_motor  拿到驱动板和步进马达后,将马达插入驱动板的白色插槽中,这个接口有防呆设计,所以不会插反。 关于Windows 10 IoT如何驱动步进马达,有一篇很好的英文材料: https://www.hackster.io/erickbp/stepper-motor-and-windows-10-iot-core-d3c5d6 我 …

Windows 10 IoT Raspberry Pi

Sound Controlled Light by Windows 10 IoT Core

In many buildings, there are sound controlled light in use. When you clap your hands, the light turns on. Now, with Raspberry Pi 3 and Windows 10 IoT, we can make a sound controlled light ourselves. The sound sensor I use is FC-04. As other sensors, the first step is calibration. 1. Calibration for FC-04 Sound Sensor In quiet environment. Connect VCC to DC 3.3V,GND to Ground. At that time, …

Windows 10 UWP IoT Raspberry Pi

Windows 10 IoT开发:HC-04超声波传感器测距(树莓派3)

HC-04是树莓派上用的比较广泛的超声波传感器,可以用来测量设备和物体之间的距离。可惜网上的资料很少有针对Windows 10的,几乎都是Python和C在Linux上的例子。 hackster.io上有一篇用HC-04做雷达的例子,但是设计的部件太多了,对单纯学习HC-04传感器的使用来说这个例子比较复杂。搜了一圈,英文资料最好的是这篇:http://www.guruumeditation.net/en/digital-io-with-windows-10-iot-raspberry-pi-2-and-the-ultrasonic-ranging-module-hc-sr04/ 国内中文资料介绍Windows 10上HC-04传感器的文章似乎还没有,所以就简单总结一下步骤。 一、物理连接 对于没有多少物理和电子知识基础的人(比如我)来说,第一步连线是比较难的。很多文章 …

Windows 10 UWP IoT Raspberry Pi


GY-30 (BH1750FVI) Light Sensor with Windows 10 IoT

I purchased a GY-30 light sensor recently, this model is also known as "BH1550FVI". There seems no sample for this sensor on Windows 10 yet, so I tried to make one. The light sensor looks like this: My board is a Raspberry Pi 3, the GPIO layout is shown in this table: Because GY-30 is an I2C device, so we can not use GPIO to drive it directly, we must use the I2C ports. In addition, …

Windows 10 UWP IoT Raspberry Pi

Windows 10 IoT开发:UWP应用调用关机和重启命令

UWP通常是没有让设备关机和重启的权限的。但是在Windows 10 IoT Core中是有办法实现的。安装Windows 10 Iot Core之后默认启动的那个欢迎页面右上角是有关机和重启按钮的。其实就是个UWP,它的源代码在:https://github.com/ms-iot/samples/tree/develop/IoTCoreDefaultApp  分析源代码可以发现,关机和重启是通过ShutDownManager这个class实现的。 #region Assembly Windows.System.SystemManagementContract, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null, ContentType=WindowsRuntime // C:\Program Files (x86) …

Windows 10 UWP IoT

Azure Remote Controlled Light with Windows 10 IoT Core

For those who have watched the "Big Bang Theory", you would probably remember that those physicists build an Internet controlled lamp. The signal send from their laptop traveled around the world and come back to their house to light up the lamp. Now, with Windows 10 IoT Core and Microsoft Azure, we could also achieve the same thing on a Raspberry Pi 3. First, I strongly recommend you …

Azure Windows 10 IoT Raspberry Pi

Windows 10 UWP开发:如何不让界面卡死

自从.NET 4.5开始,C#多了一对新的异步关键词 async 和 await,如果不了解的朋友可以简单的看下下面的示意图。 简单的说,就是在通常情况下,用户在界面上进行的操作,比如点击一个按钮之后,如果进行大量的计算,或者读写文件、网络请求等耗时的操作,那么程序的界面就会卡住,在这段时间里,任何交互都不会响应,直到后台的代码执行完毕才会继续响应用户操作。 这种现象和你的应用是不是UWP没有什么卵关系,WinForm,WPF,Windows Phone SL/RT应用都会有这个问题。 这个问题的原因是因为这些耗时的操作和界面(UI线程)没有关系,但却在UI线程上执行了。解决办法就是另起一个线程,让它在UI线程之外去执行代码,这样就不会锁死UI。就像这图: 在.NET 4.5以前,要进行一个异步操作写法有点繁琐,.NET 4.5以后。我们只要把一个方法的签名声明为 …

async await Windows 10 UWP