Arduino/给你的电脑做把钥匙

没事干整理了下屋子,然后找到了一块很久之前买的Arduino开发板,本来觉得没什么用的,但是当我打开我的电脑准备输入密码开机的时候......

等等,或许这块板子还有救

现在的新电脑都搭载了windows10系统,开机是需要输入密码的(*通常情况下),但是如果有这么种情况:你需要演示一个东西,但是电脑还没有开机。所以你不得不现场开机的时候,你肯定要当着别人面输入密码,这样不是就相当于直接把密码告诉别人了么?(*我才不会说是因为我懒得输电脑开机密码才弄了这么个东西......)

于是我想到了利用手上这块板子做个电脑的"钥匙",当这块板子插入计算机时,将会自动解锁计算机,当然我功力也不够深厚,就想到了最简单的解决方案:利用Arduino来模拟键鼠操作,自动输入密码并开机。

下面开始正式的教程:

首先是你需要的材料:

Arduino开发板,我这里使用的是Arduino Leonardo开发板,CPU型号是ATmega32u4

联网的电脑一台,用于运行ArduinoIDE来给板子编程

OK材料就这些,先来看看今天的主角吧:

Arduino Leonardo开发板,很小巧,整体也就和一元硬币差不多大,用来做钥匙再合适不过了。嗯?你说什么是Arduino?这个嘛......

简单来说Arduino就是一块搭载了一个微控制器的板子,你可以向其中写入程序代码,而这块板子将会按照你给出的代码执行相应的操作,根据给出的代码不同,Arduino可以实现很强大的功能例如智能家居、工业自动化等等......

扯远了,当准备好板子以后,就可以来部署我们的开发环境了,首先去Arduino官方网站(www.arduino.cc)来下载我们的IDE,加载出主页之后点击SOFTWARE,然后在下面的"Download the Arduino IDE"右边点"Windows Installer"下载windows安装包,下载完后直接安装即可。

(*ArduinoIDE下载页面)

安装完成之后,打开桌面上的Arduino程序,就可以看到下面的界面了:

然后我们可以开始写入代码了:

先来个HelloWorld~

#include "Keyboard.h"

void setup() {

Keyboard.begin();

delay(5000);//debug statement

}

void loop() {

Keyboard.print("Hello World!\n");

delay(500);

}

把这段代码敲到ArduinoIDE里去,然后按图示选好开发板型号

然后插入开发板,选择开发板所在端口

如果没有问题的话,点击对号右边的箭头开始烧写程序,此时可以在IDE的下方看到当前状态:

烧写成功的话,你会看到以下状态:

此时拔掉开发板,新建一个空白的文本文档,然后打开,接着插入开发板,等待5秒钟,你将会看到开发板每0.5秒钟打印一句"Hello World!"

至此代表你的开发板及集成开发环境调试完成,下面写入我们的目标程序代码:

/*

* Description

This program is write for unlock this computer

* Method

By simulate the input from keyboard

* Tips

Correct password is 123456

*/

#include "Keyboard.h"

unsigned long timeset=10000;

void setup() {

Keyboard.begin();

}

void loop() {

unsigned long runtime=millis();

if(runtime

{

Keyboard.press(KEY_LEFT_CTRL);

Keyboard.press('a');

delay(50);

Keyboard.press(KEY_DELETE);

Keyboard.releaseAll();

Keyboard.print("123456");

delay(50);

}

else

{

return;

}

}

如果你的电脑比较慢的话,请适当调大解锁时长(timeset的值,单位毫秒),密码输入至Keyboard.print后面的括号里,这样的话当你的电脑开机到输入密码的界面时,插入此设备可以直接解锁电脑,当然做个壳会好看很多......

至此,教程结束,当你下次遇到开头那种情况的时候,可以直接把这个小玩意插入USB口,瞬间解锁电脑,让别人大吃一惊去吧~~~

猫薄荷我说不定哪天突发奇想就会分享一些实用或是不实用的小知识哦~

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180210G0NU4200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券