平时的PPT翻页笔需要插入USB信号接收器,安装相应的驱动,在实际使用过程当中发现并不是每台电脑都能够直接正常的使用,接收器有时也因为反复拔插很容易坏掉导致无法正常使用。ESP32开发板带有WIFI和蓝牙双核功能,这里利用ESP32的蓝牙模拟鼠标功能做一个翻页笔的神器。可以用于PPT的播放,也可以连接手机蓝牙实现一些需要翻页操作的功能,例如刷抖音,设置时间间隔让抖音自动循环播放等功能!

一、总体设计思路

利用ESP32开发板做主控,通过遥感来控制翻页操作。这里的电路连接较简单,通过BleMouse库来实现相应的操作。这里只用了遥感X轴的模拟量和一个按键数字量信号来控制,X轴方向上左右移动控制向上和向下滚动翻页,按下一次按键则进入自动循环滚动模式,时间间隔自己设置,再按一次按键则推出自动循环滚动模式。

二、电路连接

(一)ESP32引脚图

(二)遥感控制器

(三)对应引脚连接

ESP32引脚            遥感控制器

GPIO34   ________   VRx

GPIO5    ________    SW

GND      ________   GND

3V3       ________    5V

三、配置软件开发环境

(一)Arduino IDE中添加esp32开发板

1.找到文件>首选项>附加开发板管理器网址 中加入Arduino core for esp32的地址 https://dl.espressif.com/dl/package_esp32_index.json

2.完成网址添加后就可以在:工具>开发板>开发板管理器 中搜索并下载ESP32开发板数据包。(此过程可能需要科学上网!)

注意:添加ESP32开发环境的方式有很多,可自行上csdn查阅。

(二)添加BleMouse库

1.github上下载库文件,网址:https://github.com/T-vK/ESP32-BLE-Mouse

2.解压添加库文件到Arduino IDE的libraries文件目录下。

3.打开下载的库文件夹,点击进入找到BleMouse.cpp的文件。

4.找到164行代码将bleKeyboardInstance改为bleMouseInstance,否则可能会导致编译不能通过。

四、代码部分

#include    //蓝牙模拟鼠标库BleMouse bleMouse;   //创建类的对象,用于调用BleMouse类的成员函数const int xpin=34;  //接遥感模拟输入X引脚const int modepin=5;//接遥感数字引脚SWunsigned long last_time=0;  //计时器记录上一次的时间unsigned long current_time; //计时器记录当前的时间unsigned long interval_time=4000; //时间间隔为4000毫秒即4秒void setup() {  pinMode(xpin,INPUT);  pinMode(modepin,INPUT);  Serial.begin(115200);  Serial.println("Starting BLE work!");  bleMouse.begin();  //初始化蓝牙鼠标}void loop() {  static int state;     //声明静态局部变量state,用于记录按键的状态  if(bleMouse.isConnected()) {   //做切换自动播放功能和手动操作功能用    int a=analogRead(xpin);   //读取X轴数值变化    if(a>3000){                    //遥感控制上滑动       Serial.println("Scroll up");       bleMouse.move(0,0,1);       delay(100);    }    else if(a<10){                  //遥感控制下滑动       Serial.println("Scroll down");       bleMouse.move(0,0,-1);       delay(100);    }    else if(digitalRead(modepin)==0){  //按下开关键,状态量自加1      state+=1;      Serial.print("state  ");      Serial.println(state);      switch(state){        case 0:        Serial.println("do nothing!");        break;        case 1:        Serial.println("go into the loop mode");        while(true){                           //如果第一次按下开关键就进入自动滚动状态          current_time=millis();               //每4秒执行一次向上滚动          if(current_time-last_time>interval_time){            last_time=millis();            //注意这里不能用delay()函数,用计时器来执行延时操作            bleMouse.move(0,0,1);         //不然容易造成按键不灵敏的状况            delay(100);             Serial.println("loop mode");          }                    if(analogRead(xpin)<10 || analogRead(xpin)>3000){            delay(500);              //当进入自动循环滚动时,任意拨动一下遥感则退出循环操作            state=0;            break;          }        }        break;      }    }    else{      Serial.println("no acthion move");    }    delay(100);  }  }

代码写好后配置好开发板对应信息、波特率、端口即可上传,注意ESP32开发板点击上传程序后等待出现connecting省略号连接符号时需要按住开发板的BOOT按键,目的将GPIO 0引脚接地进入下载模式才能上传成功,当进度条滚动过后即可松开BOOT按键

最后打开电脑或者手机设备的蓝牙功能,搜索ESP32 Bluetooth Mouse蓝牙信号连接成功即可使用相应功能。

五、BleMouse库部分函数功能讲解

 bleMouse.move(0,0,1); //向上滚动 bleMouse.move(0,0,-1);//向下滚动 bleMouse.move(0,0,0,-1);//向左滚动 bleMouse.move(0,0,0,1);//向右滚动 bleMouse.move(0,-1);//向上移动鼠标指针 bleMouse.move(0,1);//向下移动鼠标指针 bleMouse.move(-1,0); //左移鼠标指针 bleMouse.move(1,0);//右移鼠标指针 bleMouse.click(MOUSE_LEFT);//左键鼠标点击 bleMouse.click(MOUSE_RIGHT);//右键鼠标点击 bleMouse.click(MOUSE_MIDDLE);//滚轮点击 bleMouse.click(MOUSE_BACK);//后退按钮点击 bleMouse.click(MOUSE_FORWARD);//前进按钮点击 bleMouse.click(MOUSE_LEFT | MOUSE_RIGHT);//同时点击鼠标左键和右键

开发者可根据实际需要参照更改相关功能

本案例所有库文件及相关代码后台回复“ESP32模拟鼠标”可获得。

欢迎转阅分享!

arduino nano 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器相关推荐

  1. arduino nano 蓝牙_掌控板IO接口编程入门 | 用Arduino玩转掌控板(ESP32)系列

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  2. 用Arduino玩转掌控板(ESP32):蓝牙翻页笔(PPT 控制器)

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  3. c++ windows 蓝牙库_蓝牙翻页笔(PPT 控制器) | ESP32学习之旅-Arduino版

    本系列历史文章目录: ESP32概述与Arduino软件准备 新冠肺炎疫情数据实时显示器 B 粉计数器 本期给大家带来的案例是:蓝牙翻页笔. 先来看一下演示视频吧: 蓝牙翻页笔 | PPT播放控制器 ...

  4. 蓝牙翻页笔(PPT 控制器)| ESP32轻松学(Arduino版)

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  5. arduino使用oled代码_用Arduino玩转掌控板(ESP32):蓝牙翻页笔(PPT 控制器)

    众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...

  6. python实现翻_python实现模拟按键,自动翻页看u17漫画

    python实现模拟按键,自动翻页看u17漫画 发布于 2015-10-22 08:23:25 | 134 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...

  7. arduino nano 蓝牙_基于Arduino的摩尔斯电码练习及无线收发报训练器

    摘要:本文介绍一款基于Arduino NANO开发的,带2.4G无线收发报功能的摩尔斯电码训练器的系统设计思路.发射端通过NANO板的外部中断引脚采集电键输入的脉冲PPM序列同时驱动喇叭播放电键音,然 ...

  8. arduino nano 蓝牙_Arduino使用HC05蓝牙模块与手机连接

    通过本文,可以了解到以下内容: 进入 AT 模式进行蓝牙基本参数设置 Arduino 蓝牙控制 LED 电路设计以及代码编写 利用 Andorid 蓝牙串口调试软件测试功能 进入 At 模式进行蓝牙基 ...

  9. arduino nano 蓝牙_贸泽开售结合蓝牙5.2与USB 2.0的 Nordic Semiconductor nRF52820多协议SoC...

    专注于引入新品并提供海量库存的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开售Nordic Semiconductor的nRF52820多协议片上系统 (SoC).此款S ...

最新文章

  1. Net设计模式之简单工厂模式(Simple Factory Pattern)
  2. oschina添加ssh公钥一记
  3. ReadyFor4GB破解win7支持4G内存恢复到原系统
  4. Maven-EclipseEE使用Maven构建Java web项目从0到1
  5. ST17H26的PWM模块
  6. 如何在linux下通过ssh运行X图形软件
  7. Mysql内存表主从复制【译】
  8. abaqus失效单元删除_Abaqus实例教学2-Failure Model
  9. jQuery.each方法
  10. ai疾病风险因素识别_克服AI的“蠕动因素”
  11. 求助 mac企业微信多开
  12. Linux快捷键的使用
  13. 用python批量下载modis数据的速度怎么样_MODIS数据下载与处理-pymodis的使用(持续更新...)...
  14. vue 下载插件downloadjs
  15. 计算机enter代表什么意思,enter是什么意思
  16. 蓝牙配对连接HCI log学习
  17. 数字身份的万亿市场之争才刚开始
  18. 基于java spring框架开发部标1078视频监控平台精华文章索引
  19. MySQL中复制表/结构的写法
  20. GitLab合并分支最后一步Merge按钮灰色不可点击,Ready to be merged automatically

热门文章

  1. HTML5 视频直播那些事儿+吕小鸣博客
  2. window7系统的电脑如何调节亮度?
  3. matlab实现三分之一倍频程,三分之一倍频程程序
  4. 解决win10下PPT打不开,显示内容有问题,提示修复但修复不成功
  5. 微信小程序一星期入门-完结篇--电影详情页的制作
  6. [禅悟人生]在劳动中品味幸福
  7. 新Macbook电池续航能力表现欠佳,用户表示用不到5小时
  8. Navicat for MySQL的使用
  9. Flutter列表ListView学习
  10. Keychron K7 Pro 轻薄矮轴机械键盘开箱体验