【摸鱼向】利用Arduino实现自动化切屏

news2024/11/23 0:51:49

曾几何时,每次背着老妈打游戏的时候都要紧张兮兮地听着爸妈是不是会破门而入,这严重影响了游戏体验,因此,最近想到了用Arduino加上红外传感器来实现自动监测的功能,当有人靠近门口的时候,电脑可以自动执行预设的命令,比如切屏。下面分享一个简单的实现~(注:私以为利用这种道具逃避学习是不对的,最好的办法是与父母进行沟通,协商好娱乐和学习的时间。)

硬件清单

Arduino Nano微控制器、HC-12无线串口通讯模块、人体红外传感器模块、TTL-USB转换器。

请添加图片描述
上图是信号发生端。HC-12连接到了Arduino Nano的硬串口上,而红外传感器的输出连接到了Arduino Nano的2号引脚上。

请添加图片描述
上图是信号接收端,负责把信号传给电脑。

它的原理呢,也非常的简单,当有人从周围经过时,红外传感器的输出信号会从低电平转为高电平,而Arduino Nano会捕获这个信号,进而把信息通过HC-12串口转发出去。

当接收器的HC-12接收到信息时,就会把信息通过这个USB口继续传输到电脑,所以我们只用在电脑监视这个输入信号即可。

代码撰写

首先是Arduino Nano烧录的代码:

#include <Arduino.h>

volatile bool warnFlag = false;

void warn() {
  warnFlag = true;
}

void setup() {
  Serial.begin(9600);
  attachInterrupt(digitalPinToInterrupt(2), warn, CHANGE);
}

void loop() {
  if (warnFlag) {
    warnFlag = false;
    if (digitalRead(2) == HIGH) {
      Serial.print("<warn>\n");
    } else {
      Serial.print("<safe>\n");
    }
  }
}

然后是电脑上用于监视信号的代码:

import serial

import pyautogui

se = serial.Serial(port = "COM12", baudrate = 9600)
pyautogui.PAUSE = 0.01

while True:
    if se.readable():
        cmd = se.readline().decode()
        if cmd == '<warn>\n':
            pyautogui.keyDown('space')
            pyautogui.keyDown('volumemute')
            pyautogui.hotkey('ctrl', 'win', 'left')
        if cmd == '<safe>\n':
            pyautogui.typewrite('safe now')

我的USB接收器设备连接的端口号是COM12,大家可以根据自己电脑上的设备管理器查看是哪一个端口并修改。而且我执行的快捷键序列是先按空格,再按静音键,最后切到左侧的桌面,大家可以根据自己的需要进行修改。

如何运行

把接收器插到电脑上,并且将python代码修改好并运行,再用9V电池给Arduino Nano供电,放到门口外面,当外面有人经过的时候,python中相应的命令就会被执行了~

结语

虽然实现起来很简单,但是我觉得这可能是我目前为止做出来的第一个具有量产价值的小东西😅,不过要想量产的话,还得再设计好模具,并且把部件都给替换成更便宜的部件(比如红外信号接收便宜得多),最后全安装到一个PCB板子上集成化。现在的话,单个成本大概是三四十,替换好之后大概十几块就可以搞定了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1306616.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vmd+lstm代码详解 完整代码数据可直接运行

项目视频讲解:Vmd+lstm时间序列预测分类回归预测代码详解 完整代码可直接运行_哔哩哔哩_bilibili 项目演示效果: 代码详解: # -*- coding: utf-8 -*- # 导入库pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple import pandas as pd import numpy as np fr…

解决:ModuleNotFoundError: No module named ‘ldm‘

import sys sys.path.append(程序所在路径) 就好了

《TDA4》专栏导航

文章目录 1. 前言2. 章节1. 前言 《TDA4》专栏主要介绍TI TDA4芯片的工程应用笔记,“授人以鱼不如授人以渔”,本专栏着眼于如何从零上手一款复杂的多核异构的芯片平台,其中包含了博主如何查找资料,如何寻求资源,如何实验测试,如何搭建环境等点点滴滴的过程,希望对TDA4感…

计算机网络网络层(期末、考研)

计算机网络总复习链接&#x1f517; 目录 路由算法静态路由与动态路由距离-向量算法链路状态路由算法层次路由 IPv4&#xff08;这个必考&#xff09;IPv4分组IPv4地址与NAT子网划分与子网掩码、CIDRARP、DHCP与ICMP地址解析协议ARP动态主机配置协议DHCP IPv6IPv6特点 路由协议…

用什么台灯可以护眼?考研必备的护眼台灯推荐

台灯是我们日常生活中必不可少的一盏灯具&#xff0c;不管是休闲、办公&#xff0c;还是学习阅读都需要使用它。如今随着生活质量的提升&#xff0c;大家对健康的问题也越来越重视了&#xff0c;可以改善用光不适、预防眼睛近视的护眼台灯&#xff0c;也越来越受大家所拥戴。 …

若依框架前后端分离版创建新的模块,并且使用mybatis-plus

首先创建新的模块 resources里面只留下mapper的xml文件&#xff0c;其他配置文件都删除&#xff0c;像application.yml这些&#xff0c;都在admin模块里面有了&#xff0c;其他模块不需要创建。 需要注意一点&#xff0c;把自己模块的controller放到admin的controller目录下&…

JVM虚拟机系统性学习-垃圾回收器Serial、ParNew、Parallel Scavenge和Parallel Old

垃圾回收器 有 8 种垃圾回收器&#xff0c;分别用于不同分代的垃圾回收&#xff1a; 新生代回收器&#xff1a;Serial、ParNew、Parallel Scavenge老年代回收器&#xff1a;Serial Old、Parallel Old、CMS整堆回收器&#xff1a;G1、ZGC Serial&#xff1a;串行回收 Serial是…

jmeter里如何添加Referer

按照此实例添加即可。 例如&#xff1a;接口

一步解决 Required request body is missing: public com.xxx.xxx

1.问题描述   调用接口时报错   Required request body is missing: public com.xxx.CommonResult<com.xxx.CommonPage<com.xxx.ContractListVo>> com.xxx.ContractController.list(com.xxx.ContractSearchVo,com.xxx.PageParam) 2.原因分析   get请求接口使…

Windows系统简易操作工具箱

Windows系统简易操作工具箱 目录 Windows系统简易操作工具箱 前言一、发展过程1.1 版本更新1.2功能开发1.3版本展示 二、Windows简易工具箱设计2.1登录界面2.2 窗体显示信息2.3 窗体中文乱码2.4 TabPage美化2.5 界面统一化处理 三、设计结果验证总结 前言 在日常使用Windows系统…

百度智能云战略与咨询高级总监詹颖:每个人都能在大模型驱动的数字化生态中找到立足之地

“ 大模型是皇冠上的明珠。 ” 整理 | 王娴 编辑 | 云舒 出品&#xff5c;极新 2023年11月28日&#xff0c;极新AIGC行业峰会在北京东升国际科学园顺利召开&#xff0c;百度智能云战略与咨询高级总监詹颖女士在会上做了题为《生成式 AI 驱动企业应用创新》的演讲。 重点…

电脑手机文件无线互传方法?利用备忘录更方便

在忙碌的工作生活中&#xff0c;文件传输和分享已经成为了我们日常生活中的一部分。从厚厚的文件夹到电子化的文件&#xff0c;从线下到线上&#xff0c;这一转变让我们的工作和生活变得更加方便高效。 而在这个数字化时代&#xff0c;备忘录成为了我们实现电脑手机文件无线互…

03-详解网关的过滤器工厂和常见的网关过滤器路由过滤器,默认过滤器,全局过滤器的执行顺序

过滤器工厂 过滤器种类 GatewayFilter是网关中提供的一种过滤器,可以对进入网关的请求和微服务响应的结果做加工处理 Spring提供了31中不同的路由过滤器工厂 AddResponseHeader表示给请求添加响应头 default-filters: # 默认过滤器 - AddResponseHeaderX-Response-Default-R…

故障解析丨导入字符串NULL导致主从报错

1.背景概述 目前需要搭建一个从库&#xff0c;由于单表数据量较大&#xff0c;时间比较有限&#xff0c;考虑到导入导出的时间&#xff0c;并且GreatSQL支持并行load data的功能&#xff0c;能够加速数据的导入&#xff0c;因此决定使用 select into outfile 和 load data 的方…

设计模式(三)-结构型模式(1)-适配器模式

一、为何需要适配器模式&#xff08;Adapter&#xff09;? 在软件设计中&#xff0c;某个模块里有很多公用的功能接口&#xff0c;其中有些公用接口需要用到不同的类当中时&#xff0c;会出现接口不兼容的问题。因为这些不同的类对这个相同任务的接口&#xff0c;都有各自代码…

全栈必备——网络编程基础

我们是幸运的&#xff0c;因为我们拥有网络。网络是一个神奇的东西&#xff0c;它改变了你和我的生活方式&#xff0c;改变了整个世界。 然而&#xff0c;网络的无标度和小世界特性使得它又是复杂的&#xff0c;无所不在&#xff0c;无所不能&#xff0c;以致于我们无法区分甚至…

镭速助力集成绘图建模工具加速文件传输速度

在当前信息化社会中&#xff0c;绘图建模工具已经成为许多人不可或缺的伙伴。无论是学习、工作还是生活&#xff0c;这些工具都能够在表达思想、设计方案以及展示成果等方面发挥重要作用。然而&#xff0c;随着绘图建模工具功能的日益强大&#xff0c;用户创作的文件也变得越来…

基于ssm大学生创新创业平台项目管理子系统设计与实现论文

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对大学生创新创业项目信息管理混乱&#xff0c;出错率高&#xff0c;信…

js基础:简介、变量与数据类型、流程循环控制语句、数组及其api

JS基础&#xff1a;简介、变量与数据类型、流程循环控制语句、数组及其api 一、简介 1、js概述 tip&#xff1a;JavaScript是什么&#xff1f; 有什么作用&#xff1f; JavaScript&#xff08;简称JS&#xff09;是一种轻量级的、解释性的编程语言&#xff0c;主要用于在网页…

java系列-LinkedHashMap怎么实现LRU

1.定义变量accessOrder public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {final boolean accessOrder;public LinkedHashMap(int initialCapacity, float loadFactor, boolean accessOrder) {super(initialCapacity, loadFactor…