当前位置: 首页 > news >正文

温州网站域名注册服务公司怎样做网站的快捷方式

温州网站域名注册服务公司,怎样做网站的快捷方式,用html5的视频网站,滨州新闻头条最新消息虽然选择了触摸屏#xff0c;我仍选择为机械键盘嵌入摇杆模块#xff0c;这本质上是对操作连续性的执着。   值得深思的是#xff0c;本次开发过程中借助DeepSeek的代码生成与逻辑推理#xff0c;其展现的能力已然颠覆传统编程范式#xff0c;需求描述可自动…  虽然选择了触摸屏我仍选择为机械键盘嵌入摇杆模块这本质上是对操作连续性的执着。   值得深思的是本次开发过程中借助DeepSeek的代码生成与逻辑推理其展现的能力已然颠覆传统编程范式需求描述可自动转化为功能实现算法优化能自主完成多目标博弈这昭示着技术生产关系的根本性变革。   技术演进正在重构价值坐标系边缘计算设备通过蒸馏更好的模型实现端侧智能使AI能力呈指数级渗透产业格局算力资本形成的新型生产资料正在重塑技术话语权分配机制工程师的核心竞争力将从代码实现转向需求抽象、系统架构与伦理把控在这场人机协同的认知革命真正的危机并非技术替代而是思维范式的停滞。   当AI解构了执行层的技术壁垒人类智慧的战场必将向更高维度迁移——那些涉及跨领域创新、价值判断与复杂系统设计的领域正是技术人亟待开垦的新边疆但愿技术人可以在这样的狭缝中获得存在的意义。   言归正传还是回到我们的QMK键盘增加摇杆功能首先要了解一下QMK 生成键盘的整体文件结构 qmk_firmware/keyboards/demo_keyboard/ ├── config.h ├── keymaps/ │ └── default/ │ ├── keymap.c ├── rules.mk └── keyboard.json keyboard.json功能定义键盘的硬件配置、布局、功能和元数据。示例 rules.mk功能定义编译选项和功能开关。 config.h功能定义键盘的硬件配置和宏。 keymaps/default/keymap.c功能定义默认键位布局开启自定义功能。 所以增加摇杆和鼠标就需要在这些文件里面进行修改 在rules.mk中启用摇杆和鼠标按键功能 POINTING_DEVICE_ENABLE yes POINTING_DEVICE_DRIVER analog_joystick MOUSEKEY_ENABLE yes # DEBUG_ENABLE yes # CONSOLE_ENABLE yes # 启用调试输出 在config.h中添加摇杆和鼠标键的读取对应端口 /* Copyright 2025 JohnsonLvThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/. */#pragma once#define ANALOG_JOYSTICK_X_AXIS_PIN GP26 #define ANALOG_JOYSTICK_Y_AXIS_PIN GP27 #define MOUSE_BTN1_PIN GP15 在keymap.c中添加保留以前的键盘键的映射然后添加一些关于摇杆的函数 /// Copyright 2023 QMK // SPDX-License-Identifier: GPL-2.0-or-later#pragma once#include QMK_KEYBOARD_H #include pointing_device.h #include print.h #include timer.h // 用于 timer_read32 和 timer_elapsed32// 定义摇杆的灵敏度 #define JOYSTICK_SENSITIVITY 1static bool debounce false; static uint32_t debounce_timer 0;// 初始化独立按键的 GPIO void keyboard_post_init_user(void) {setPinInputHigh(MOUSE_BTN1_PIN); // 设置为输入模式启用内部上拉电阻 }// 新增参数定义需根据实际需求调整 #define MAX_CURSOR_SPEED 10 // 最大光标速度 #define SPEED_REGULATOR 3 // 速度调节系数// 非线性映射函数基于 IBM 专利逻辑 void joystick_ibm_algorithm(int16_t x, int16_t y, int16_t* x_out, int16_t* y_out) {static int16_t z_prev 0; // 静态变量保存上一次的 z 值// --- 核心算法逻辑 ---// 1. 计算近似平方根的 z 值int16_t ax abs(x);int16_t ay abs(y);int16_t z ax ay - ((2 * (ax ay ? ax : ay)) / 3);// 2. 动态调整光标移动if (z 4) {// 计算动态变化的 zi 值包含释放补偿int16_t zi (z - z_prev) * 6 z;// 计算最终坐标避免除以零int16_t x_calc (zi 0) ? 0 : (x * z * MAX_CURSOR_SPEED) / (zi * SPEED_REGULATOR);int16_t y_calc (zi 0) ? 0 : (y * z * MAX_CURSOR_SPEED) / (zi * SPEED_REGULATOR);*x_out x_calc;*y_out y_calc;} else {*x_out 0;*y_out 0;}// 3. 保存当前 z 值供下次使用z_prev z; }// 处理独立按键和摇杆的函数 void my_process_joystick(void) {// 获取摇杆的 X/Y 轴值int16_t x_raw joystick_state.axes[0];int16_t y_raw joystick_state.axes[1];// 创建鼠标报告report_mouse_t mouse_report {0};// 应用 IBM 算法int16_t x_mapped, y_mapped;joystick_ibm_algorithm(x_raw, y_raw, x_mapped, y_mapped);// 检测独立按键状态按下时为低电平bool btn_state !readPin(MOUSE_BTN1_PIN); // 按下时为 true// 消抖逻辑if (btn_state !debounce) {debounce true;debounce_timer timer_read32();mouse_report.buttons | KC_BTN1; // 触发左键} else if (!btn_state debounce) {if (timer_elapsed32(debounce_timer) 5) { // 消抖时间 5msdebounce false;mouse_report.buttons ~KC_BTN1; // 释放左键}}// 发送鼠标报告pointing_device_set_report(mouse_report);pointing_device_send(); }// 键盘矩阵扫描后的钩子函数 void matrix_scan_user(void) {my_process_joystick(); }// 键盘布局定义无需为独立按键分配矩阵键位 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] {[0] LAYOUT_numpad_4x4(KC_1, KC_2, KC_3, KC_4,KC_5, KC_6, KC_7, KC_8,KC_9, KC_0, KC_A, KC_B,KC_C, KC_D, KC_BTN2, KC_BTN3 // 保持矩阵中的键位不变) };在上面的这段算法中借用了 https://patents.google.com/patent/US5570111A IBM的一个专利技术 以下是这段基于 IBM 专利的摇杆算法的逐层解析我将用 「物理直觉 → 数学实现 → 代码表达」 的逻辑链解释其精妙之处 1. 近似矢量长度模拟平方根物理需求 需要计算摇杆偏移的「矢量长度」但避免耗时的真实平方根运算。数学实现 通过线性组合近似替代 x 2 y 2 \sqrt{x² y²} x2y2 ​专利给出的公式 z ∣ x ∣ ∣ y ∣ − ( 2 ∗ m i n ( ∣ x ∣ , ∣ y ∣ ) ) / 3 z |x| |y| - (2 * min(|x|, |y|)) / 3 z∣x∣∣y∣−(2∗min(∣x∣,∣y∣))/3 代码实现 int16_t ax abs(x); int16_t ay abs(y); int16_t z ax ay - ((2 * (ax ay ? ax : ay)) / 3);效果说明当摇杆沿对角线移动时xy公式简化为 ( 4 / 3 ) ∗ x (4/3) * x (4/3)∗x接近真实平方根 2 ∗ x ≈ 1.414 x \sqrt2*x ≈ 1.414x 2 ​∗x≈1.414x当摇杆沿单轴移动时如 x0公式退化为 y与真实值一致平衡了计算效率和准确性 2. 动态响应补偿预测释放动作 物理需求 当用户松开摇杆时光标会因惯性继续移动需要模拟「减速回弹」效果。 数学实现 通过差分计算摇杆速度变化 z i z 6 ∗ ( z − z p r e v ) zi z 6*(z - z_{prev}) ziz6∗(z−zprev​) z p r e v z_{prev} zprev​是上一帧的 z 值 代码实现 int16_t zi (z - z_prev) * 6 z; // 放大变化量的影响效果说明 快速释放时z 急剧减小 z i zi zi会远小于 z z z导致 x c a l c / y c a l c x_{calc}/y_{calc} xcalc​/ycalc​分母增大光标减速保持摇杆时z 稳定 z i ≈ z zi ≈ z zi≈z光标匀速移动推动摇杆时z 增大 z i z zi z ziz分母增大光标加速更平缓 3. 非线性速度映射 物理需求 摇杆偏移量与光标速度呈非线性关系小偏移精细控制大偏移快速移动。 数学实现 速度公式 x_calc (x * z * MAX_CURSOR_SPEED) / (zi * SPEED_REGULATOR)代码实现 int16_t x_calc (zi 0) ? 0 : (x * z * MAX_CURSOR_SPEED) / (zi * SPEED_REGULATOR);参数控制 参数作用调整建议MAX_CURSOR_SPEED最大移动速度值越大光标移动越快SPEED_REGULATOR整体灵敏度调节值越大光标移动越慢6 (zi的系数)惯性响应强度值越大释放时的减速越明显 4. 死区处理与噪声过滤 物理需求 消除摇杆中心位置的微小抖动。 数学实现 当 z ≤ 4 时强制归零 if (z 4) { ... } else { *x_out0; *y_out0; }效果说明 过滤摇杆电阻器的噪声提供明确的中心死区 整体算法流程图 原始输入 (x,y) ↓ 计算近似矢量长度 z ↓ 动态补偿 → 计算 zi (包含惯性预测) ↓ 非线性映射 → 输出 (x_calc, y_calc) ↓ 保存 z 值 → 供下一帧使用实际调试技巧 参数联动调整 先固定 SPEED_REGULATOR1调整 MAX_CURSOR_SPEED 确定最大速度然后增大 SPEED_REGULATOR 微调灵敏度最后调整 zi 的系数代码中的 6控制惯性效果 边界保护 添加范围限制防止溢出 x_calc MAX(-127, MIN(x_calc, 127)); // 确保在鼠标协议范围内这个算法通过巧妙的近似和差分计算在极低的计算开销下实现了符合人体工学的光标控制特性正是这种「用简单数学模拟复杂物理直觉」的设计让它成为经典。
http://www.hkea.cn/news/14451116/

相关文章:

  • 淮安集团网站建设开发小程序软件的公司
  • 做网站一般不选用的图片格式wordpress adminimize
  • 58同城网招聘找工作下载安装关键词首页排名优化公司推荐
  • 建设旅游电子商务网站的目的做电影网站的成本
  • 做电脑网站手机能显示不出来上海做网站高端
  • 数字网站建设电子宣传册如何制作
  • 上海住房城乡建设厅网站首页地产设计网站
  • 安徽平台网站建设企业线上运营公司
  • 网络营销就是seo伊宁网站建设优化
  • 米枫网站怎么做分页网站你懂我意思正能量晚上
  • 陕西公司网站建设东丽区网站建设公司
  • iis7.5 网站配置做外贸无法登录国外网站怎么办
  • 企业营销型网站推广网站的文章参考文献怎么做
  • 毕业设计团购网站建设小型私人会所装修设计
  • 网站标题加后缀村网站建设计划书
  • 做网站要学的技术做网站公司的年终总结
  • 网站搭建平台都有哪些深圳关键词排名seo
  • 烟台建设集团 招聘信息网站canvas网站源码
  • 可信网站身份验证wordpress内容打不开
  • 百度网盘0基础网站开发教程工业互联网平台首先要提高数据的挖掘能力
  • 建设大型门户网站老闵行租房
  • 无锡百度网站推广渠道wordpress 页面 自定义
  • 山东系统建站怎么用三亚论坛
  • 建设银行etc网站徐州模板建站平台
  • 做网站下载什么软件中国万网域名登录
  • 西安h5建站厦门网站制作全程服务
  • 装修网站免费设计wordpress 空格 插件
  • 珠江现代建设 杂志社网站一般app需要多少钱
  • 宁夏小蚁人网站建设友情下载网站
  • 做网站后端的是什么部门电子科技学校网站建设