来源: 关于C#winform端Settings.settings的见解_winform settings-CSDN博客
我用OpenGlass做了一个AI眼镜【上篇】 | Rocket Lu
我用OpenGlass做了一个AI眼镜【上篇】
来源: 我用OpenGlass做了一个AI眼镜【上篇】 | Rocket Lu
消费级AI 硬件
01 Rabbit R1
02 Rewind(https://www.limitless.ai/)

03 AI PIN(https://humane.com/shop)

04 Meta Ray-Ban Glass(https://www.ray-ban.com/usa/ray-ban-meta-smart-glasses)


首先是准备工作
- Seeed Studio XIAO ESP32 S3 Sense(带蓝牙、摄像头)
01 下载Arduino IDE
02 设置ESP32S3主板程序
shell
.ino 文件。
- 菜单栏,选择“文件”>“首选项”(File > Preferences),然后在“其他 Boards Manager URL”(“Additional Boards Manager URLs” )填写这个链接:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- 导航到“工具”>“开发板”>“开发板管理器…”(Tools > Board > Boards Manager),在搜索框中输入关键字
esp32,选择最新版本的esp32并安装它。我这两个都安了一下,但任意选一个就行。(esp32升级了,所以只下第二个的2.0.17版本就行,不要下两个了,也不要升级版本,不然都会报错!)


- 选择您的主板和端口:
- 在 Arduino IDE 顶部,选择开发板和端口。
- 弹窗中搜索
xiao并选择XIAO_ESP32S3。


- “PSRAM:”设置为“PSRAM:”“OPI PSRAM”

ArduinoBLE
- 点击
验证按钮(对号图标),检查代码是否有错误。
- 点击
上传按钮(箭头图标),将代码上传到XIAO ESP32S3开发板。
03 验证功能
- 打开Arduino IDE的
串口监视器,检查输出信息。
- 确保设备连接到蓝牙。
- 检查摄像头是否能够拍照,并通过蓝牙发送数据。
04 完善硬件:XIAO ESP32S3开发板连接天线、摄像头、电池


05 启动照片的页面程序
- 在位于 https://github.com/BasedHardware/OpenGlass/blob/main/sources/keys.ts
keys.ts的文件中添加 Groq 和 OpenAI 的 API 密钥。
- 对于 Ollama,从存储库中自行托管 https://github.com/ollama/ollama 的 REST API,并将 URL 添加到
keys.ts文件中。
-
- 启动应用程序:
shell
shell

0607更新-常见报错
使用nvm(Node Version Manager)
-
- 安装nvm:
shell
-
- 加载nvm(你可能需要将下面的命令添加到你的
~/.zshrc或~/.bashrc文件中):
- 加载nvm(你可能需要将下面的命令添加到你的
shell
-
- 重启终端或重新加载配置文件:
shell
-
- 安装最新版本的Node.js:
shell
-
- 验证安装:
shell
直接安装Node.js
- 下载并安装Node.js:
-
- 前往Node.js官方网站 https://nodejs.org。
-
- 下载适用于你操作系统的LTS(长期支持)版本并进行安装。
-
-
- 验证安装:
shell
配置项目
-
- 安装项目依赖:
shell
-
- 启动项目:
shell
安装Expo
- 打开终端。
-
- 运行以下命令来全局安装Expo CLI:
shell
-
- 验证安装:
shell
-
- 确保你在项目目录中:
shell
-
- 安装项目依赖(如果还没有安装):
shell
-
- 运行项目:
shell
sudo(macOS和Linux):shell
shell
nvm来管理和切换不同版本的Node.js。shell
shell
shell
shell
nvm 的步骤:- 打开终端:首先,您需要打开您的终端应用程序。
-
- 安装 Homebrew(如果您尚未安装):
shell
sudo 来获取必要的权限。-
- 使用 Homebrew 安装 nvm:
shell
-
- 验证安装:安装完成后,您可以通过运行以下命令来验证
nvm是否已正确安装:
- 验证安装:安装完成后,您可以通过运行以下命令来验证
shell
-
- 重新加载您的 shell 配置文件或重新启动终端,以确保
nvm可以被正确识别:
- 重新加载您的 shell 配置文件或重新启动终端,以确保
shell
-
- 安装 Node.js 版本:使用
nvm安装您需要的 Node.js 版本,例如安装版本 16:
- 安装 Node.js 版本:使用
shell
-
- 设置默认 Node.js 版本(如果需要):
shell
下篇预告


又火一个惊艳的开源项目,诞生了!
来源: 又火一个惊艳的开源项目,诞生了!
大家好,今天继续聊聊科技圈发生的那些事。
一、ToonCrafter
ToonCrafter 可以通过预训练的图像到视频扩散先验来插值两个卡通图像。通俗点说,就是给出起始帧,给出结束帧,ToonCrafter会帮你补全中间的部分,生成一段完整的视频图像。另外,它还有个功能,基于给出的草图,给草图中的内容上色。
ToonCrafter基于图像条件的扩散模型,通过丰富的运动先验来合成复杂的非线性运动和现象。主要包括三个关键的技术:
-
卡通矫正学习:通过对预训练的生成模型进行微调,使其能够更好地理解动画的上下文,并生成与卡通风格匹配的内容。 -
细节注入与传播解码:引入一个基于双参考的3D解码器,使用混合注意力残差学习机制,将有损的帧潜在变量转换回像素空间,并注入输入图像中的细节信息。 -
基于草图的可控生成:ToonCrafter配备了一个帧独立的草图编码器,使用户能够通过草图输入来引导生成过程。
我们来看一个具体的例子:
将这两张图作为起始帧和结束帧,让 ToolCrafter 进行补全。
成功补全风中凌乱的发型,效果生动逼真,灵动飘逸,毫无违和感。
这个工具最优秀的特点是,生成出的gif图体积极小,给出的这些demo示例大多都只有几百KB的大小。同时,还能兼顾生成质量。
项目已经开源,也已经有了 HuggingFace 的在线体验,感兴趣的小伙伴,可以体验看看。
在线体验地址:
https://huggingface.co/spaces/Doubiiu/tooncrafter
项目地址:
https://github.com/ToonCrafter/ToonCrafter
二、Stable-Diffusion-3-Medium
备受瞩目的Stable Diffusion 3,终于开源了!
SD3 自从二月份发布以来,其优秀的性能就一直好评不断。而在几天前的6月12日,Stability AI 正式宣布开源 SD3!
据悉,本次开源的Stable Diffusion 3 Medium 包含20万亿个参数,代表了Stability AI目前的最高水准。在 HuggingFace 上已经可以下载到模型权重文件了。
话不多说,我们先来看看效果:
SD3相比起前代,主要提升了生成图像的细节处理,图像的质量会很高。同时,模型的尺寸非常优秀,即使是在常见的消费级GPU上,也有非常卓越的性能。
顺提一句,SD3已经能支持8k生成了,不过整出来的文件过大,这里就不直接放效果图了。
不过目前也有消息称,SD3在人像生成方面可能会出现一些比较“惊悚”的现象,针对整个人体的生成,SD3似乎有些不着调,就像这样…
或许是数据集的问题,SD3无法理解完整的人类图像,在生成此类图像的时候,就略显尴尬了。
不过,抛开这个问题不谈,SD3绝对是一款优秀的文本生成图像模型!无论是生成图像的精细程度,还是生成效率,都有很大的提升。感兴趣的小伙伴,可以自行体验一下。
在线体验地址:
https://huggingface.co/spaces/stabilityai/stable-diffusion-3-medium
三、consistent-character
今天咱们要说的第三个项目 consistent-character,是一个偏娱乐向的项目。
这个项目在 HuggingFace 上的介绍非常简单:Create images of a given character in different poses,也就是让图像上的角色以不同的姿势出现。当然,既然要提供prompt生成,常见的换衣服功能也是必不可少的。
所以,我们要第N次请出咱们的皮衣刀客了,每次不知道拿谁当输入素材的时候,总会找到老黄的…
作为示例,咱们就用默认的prompt吧,换身衣服就可以了。
这里一定要记得打开这个选项,让生成的图像能有随机的pose,注入项目的灵魂。
效果还不错!咱们的皮衣刀客瞬间斯文了一把,穿上了笔挺的西装,一副大佬样。可以看到,项目生成的图片给老黄换了几个不同的姿势,甚至是个“无死角”的帅哥呢。
那么,如果我们再换一个prompt,来点不一样的风格呢?
a man, Mohican hairstyle, rocker style undershirt.
男子,莫西干发型,摇滚风格打底衫
画风突变!这感觉,令人有点无法言说。
这个项目目前还没有开源,这里给出 HuggingFace 的地址,可以放上自己想操作的照片,给出prompt,就可以试试这个奇妙的效果了。不过,如果照片分辨率太高,等待时间可能会比较长。感兴趣的小伙伴可以自行体验看看!
在线体验地址:
https://huggingface.co/spaces/fffiloni/consistent-character
好了,本期的内容就是这么多,我们下期再见!
一周万星的文本转语音开源项目「GitHub 热点速览」 - 削微寒 - 博客园
来源: 一周万星的文本转语音开源项目「GitHub 热点速览」 – 削微寒 – 博客园
上周的热门开源项目让我想起了「图灵测试」,测试者在不知道对面是机器还是人类的前提下随意提问,最后根据对方回复的内容,判断与他们交谈的是人还是计算机。如果无法分辨出回答者是机器还是人类,则说明机器已通过测试,具有人类的智力水平。
虽然现在大模型的回答还充满 AI “味”,可以一眼识破,但 GitHub 上有个开源项目:ChatTTS,它根据文本生成的语音,已经可以做到“以假乱真”,不单单是我这么觉得,一周飙升了 1w+ Star,已经足以说明大家对它的认可。

作者为了限制 ChatTTS 生成的语音,在 4 万小时模型的训练过程中添加了少量额外的高频噪音,并尽可能压缩了音质,让其更好分辨出来,从而防止不法分子用它进行诈骗等违法行为,看来生成效果已经好到作者自己都“害怕”的地步了😅
还有位开发者(lihaoyun6)因为看不惯 macOS 的录屏软件收费,就自己动手做了一个轻巧的 macOS 屏幕录制工具:QuickRecorder,它不仅功能齐全还免费开源。如果你觉得自己桌面有点单调,这有个小工具(RunCat_for_windows)可以在任务栏上显示一只奔跑的小猫,它会陪着你一起加班或写代码。文生图的效果很看提示词的质量,Omost 让你仅需一条极简的描述就能生成一张细节满满的图片,比如“一个有趣的卡通蝙蝠侠与小丑战斗”。

最后,推荐一个用当下最新的前端技术栈构建的管理后台模版:soybean-admin 和一个非常漂亮的终端文件管理器:superfile
- 本文目录
- 1. 开源新闻
- 1.1 强大的对话式文本转语音模型:ChatTTS
- 2. 开源热搜项目
- 2.1 直接使用 ChatTTS 的 WebUI:ChatTTS-ui
- 2.2 轻巧的 macOS 屏幕录制工具:QuickRecorder
- 2.3 开源的在线办公套件:Univer
- 2.4 清新优雅的管理后台模板:soybean-admin
- 2.5 极简提示词的文生图工具:Omost
- 3. HelloGitHub 热评
- 3.1 在 Windows 任务栏飞奔的“小猫”:RunCat_for_windows
- 3.2 非常漂亮的终端文件管理器:superfile
- 4. 结尾
- 1. 开源新闻
1. 开源新闻
1.1 强大的对话式文本转语音模型:ChatTTS
该项目是专门为对话场景设计的文本转语音模型,支持中、英双语。它不仅能够生成自然、流畅的语音,还能控制和添加笑声、停顿和语气词等。ChatTTS 生成较短的语音效果很好,几乎听不出 AI “味”。
import ChatTTS
from IPython.display import Audio
chat = ChatTTS.Chat()
chat.load_models(compile=False) # 设置为True以获得更快速度
texts = ["在这里输入你的文本",]
wavs = chat.infer(texts, use_decoder=True)
torchaudio.save("output1.wav", torch.from_numpy(wavs[0]), 24000)
GitHub 地址→github.com/2noise/ChatTTS
2. 开源热搜项目
2.1 直接使用 ChatTTS 的 WebUI:ChatTTS-ui

主语言:Python,Star:2.1k,周增长:2k
该项目为 ChatTTS 提供了开箱即用的本地网页界面,可以直接在本地浏览器中使用 ChatTTS,支持文字合成语音、中英文、数字混杂等功能,并提供了 API 接口。
GitHub 地址→github.com/jianchang512/ChatTTS-ui
2.2 轻巧的 macOS 屏幕录制工具:QuickRecorder

主语言:Swift,Star:2.6k,周增长:500
这是一个用 SWiftUI 编写、仅 10MB 的 macOS 屏幕录制工具,它只为做好录屏这一件事,不仅免费且功能丰富,支持窗口录制、应用录制、录制移动设备、窗口声音内录、鼠标高亮、隐藏桌面文件等功能。
GitHub 地址→github.com/lihaoyun6/QuickRecorder
2.3 开源的在线办公套件:Univer

主语言:TypeScript,Star:5.1k,周增长:1k
这是一个功能丰富、易于集成的在线办公套件,它提供了类似 Google 文档、幻灯片(开发中)和表格的功能,支持富文本、表格公式、数据验证、国际化等功能。
GitHub 地址→github.com/dream-num/univer
2.4 清新优雅的管理后台模板:soybean-admin

主语言:TypeScript,Star:8.3k,周增长:300
该项目是采用 Vu3、Vite5、Pinia 和 UnoCSS 等技术栈构建的管理后台模板,它不仅拥有漂亮的界面,还有清晰的项目结构、严格的类型检查、统一的代码规范,内置丰富的主题配置、国际化方案、页面组件,并且支持移动端。
GitHub 地址→github.com/soybeanjs/soybean-admin
2.5 极简提示词的文生图工具:Omost

主语言:Python,Star:2.6k,周增长:2k
该项目基于 LLM 的编程能力帮用户自动完善文生图的提示词,可以根据用户输入的简短提示词生成高质量的图片,还支持图片局部修改等功能,比如将图片中的龙变成恐龙,极大地降低了编写文生图的门槛,无需复杂的提示词即可生成满意的图片。
GitHub 地址→github.com/lllyasviel/Omost
3. HelloGitHub 热评
在这个章节,将会分享下本周 HelloGitHub 网站上的热门开源项目,欢迎与我们分享你上手这些开源项目后的使用体验。
3.1 在 Windows 任务栏飞奔的“小猫”:RunCat_for_windows

主语言:C#
这是一个用 C# 写的小工具,它会在 Windows 任务栏显示一只奔跑的小猫动画,CPU 使用率越高它跑得越快。
项目详情→hellogithub.com/repository/7c37c2e3bf3142e7bf5891f5070e3606
3.2 非常漂亮的终端文件管理器:superfile

主语言:Go
这是一个现代终端文件管理器,为命令行文件操作提供了一个直观且漂亮的界面。它默认采用 Vim 风格的快捷键操作,还支持插件和主题自定义。
项目详情→hellogithub.com/repository/d791057ece4f4662be25202c21405a27
4. 结尾
以上就是本期「GitHub 热点速览」的全部内容,希望你能够在这里找到自己感兴趣的开源项目,如果你有其他好玩、有趣的 GitHub 开源项目想要分享,欢迎来 HelloGitHub 与我们交流和讨论。
WP精仿小刀娱乐网源码整套 带翻页和手机版并有3000+文章-壹软资源网
来源: WP精仿小刀娱乐网源码整套 带翻页和手机版并有3000+文章-壹软资源网
![图片[1]-WP精仿小刀娱乐网源码整套 带翻页和手机版并有3000+文章-壹软资源网](http://www.mikel.cn/wp-content/uploads/2024/05/201810271540644789159773.png)
本套源码是仿壹软资源网样式,基于WP程序开发的,改动了很多使其更简洁大方,源码无后门和加密,
可放心使用运营
从没有手机版到手机版发生了很大的变化这个源码我花费大概400多今天发布了!
源码无后门,我正在用的不用了,带3000+文章,带翻页,带手机版,
安装完可直接上手运营
全网首发如此完全的WP源码
上传好源码并到输入数据库,
配置数据库文件,
然后修改数据库里zige_options这个数据库,把里边的网站地址改成自己的就可以了!
后台:域名+admin_qqwang_666
源码需要伪静态才可以使用哦,记得配置上伪静态!
文章附件
字节Coze实现多Agent模式,文内在线体验,实时给产品经理提需求_coze 多agent-CSDN博客
来源: 字节Coze实现多Agent模式,文内在线体验,实时给产品经理提需求_coze 多agent-CSDN博客
摘要:
多Agent模式是一种分布式计算范式,它通过将复杂任务分解为多个子任务,并由独立的智能体(Agents)并行处理,从而提高系统的处理能力和效率。这种模式在自然语言处理、机器学习和其他数据密集型应用中尤为有效。然而,多Agent系统的实施和运行需要显著的算力支持,尤其是在处理大型数据集和复杂模型时。为了满足这些需求,算力提供方正在探索新的供给模式,软硬件优化,存内计算等模式。
AI Agent 设计模式:
吴恩达教授在美国红杉 AI 活动上关于 Agent 的最新趋势与洞察,提出了目前有 4 种主要的 Agent 设计模式,分别是:
Reflection:让 Agent 审视和修正自己生成的输出;
Tool Use:LLM 生成代码、调用 API 等进行实际操作;
Planning:让 Agent 分解复杂任务并按计划执行;
Multiagent Collaboration:多个 Agent 扮演不同角色合作完成任务;
🤩 在 扣子(coze.cn)/Coze (coze.com)上,可以将上述四种模式快捷落地,本文重点介绍Reflection模式和多Agent模式。
1 Reflection模式
含义:让 Agent 审视和修正自己生成的输出。
背景:大模型的生成有时候会犯懒,可能只会部分执行Prompt导致效果有限。Reflection模式适用于让LLM自行审视和修正自己生成的输出,对生成内容进行多次自我调优,进而生成更加优质的内容。
场景:让 AI 或 LLM 说,写一个行业短评。开始写第一稿,自己阅读生成第一稿,思考哪些部分需要修改,然后,LLM进一步优化生成,可以一遍又一遍地进行。因此,这个工作流程是可迭代的,你可能让模型进行一些思考,然后修改文章,再思考,并通过多次迭代来完成这个过程。
流程图:
🔥 Workflow实现简单“行业短评”效果
👉 工作流拆解:
第一步:Start节点,用于接收用户的输入。
第二步: 大模型节点,行业短评Prompt:使用真实数据、案例、SWOT模型,并言简意赅表达。
第三步:基于其生成结果第二步中的大模型的生成结果,复制其Prompt,并进一步提示生成短评,达到审视和修正自己生成输出的效果,提高短评生成质量。
第四步: 输出结果。
👉 示意图参考:
👀 效果:汽车行业调研短评
第一次:大模型对于提示,仅生成比较概括性的短评,使用了真实数据。
第二次:大模型对生成结果进行迭代,生成了详细短评,不仅优化了表达内容,还增加了SWOT分析和案例分析。
2 Multiagent Collaboration 模式
🔥 使用coze的Multi-agent功能实现高质量旅行规划
第一步:定义3个用于旅行规划场景的专家Agents
目的地推荐专家: 调用搜索等能力,基于用户的需求推荐目的地。
机票酒店专家: 调用机票、酒店的查询工具,根据用户的背景信息和诉求,推荐合适的机票酒店。
行程规划专家: 根据用户的信息和其他专家产出的结果,帮助用户制定完整的行程规划,并将内容输出到PDF中。
第二步:将3个专家Agents排列到画布中,并为他们设置任务交接的条件。
第三步:开始对话
开放体验来袭:
直接登入Coze,创建属于你的Agent, 产品经理在线等你提需求,点击下方链接,开启测评:
https://bbs.csdn.net/topics/618354373
https://bbs.csdn.net/topics/618354373
效果演示图
多Agent模式的算力需求
多Agent模式在构建AI系统时,需要处理来自不同代理的任务和数据,这通常会导致算力需求的增加。在多Agent模式下,每个代理可能负责特定的任务或工作流程的一部分,它们需要进行通信和协作以完成更复杂的任务。这种模式的算力需求取决于多个因素,包括代理的数量、每个代理处理的任务复杂度、代理间的交互频率以及整体系统的优化程度。
软硬件层面的优化。
1. 硬件层面:
使用高性能的计算硬件,如多核CPU、GPU或TPU,以支持并行处理和快速的数据处理。
考虑使用高速网络接口和交换机,以减少Agent间通信的延迟。
采用分布式存储系统,如分布式数据库或对象存储,以高效管理大量数据。
2. 软件架构:
采用微服务架构,每个Agent可以作为一个独立的微服务运行,这样可以提高系统的可伸缩性和容错性。
实现一个高效的任务调度器,如FIFO或轮询(Round-Robin)调度算法,以合理分配任务和资源。
引入上下文管理器,以支持LLM的上下文快照和恢复,管理LLM的上下文窗口,确保Agent间的有效协作。
使用内存管理器来为每个Agent的交互日志提供短期内存,确保数据在Agent活跃时存储和可访问。
集成工具管理器,管理一系列API工具,增强LLM的功能,如网络搜索、科学计算等。
3. 操作系统层面:
考虑开发或使用专为多Agent系统设计的操作系统,如AIOS,它将LLM嵌入到操作系统中,优化Agent请求的调度,支持上下文切换,实现并发执行,并提供工具服务和访问控制。
4. 开发工具和框架:
利用多Agent框架,如AutoGen,它允许用户创建和管理多个智能体,以协同完成复杂的任务。
使用提供多Agent支持的开发工具包(SDK),简化Agent开发者的开发过程,专注于Agent的核心逻辑和功能。
存内计算架构火力支持
在多Agent模式中,如果每个代理都使用类似的大型模型,那么总体算力需求将是巨大的。此外,多模态大模型对算力的消耗呈指数级增长趋势,因为它们需要处理和整合来自不同模态(如文本、图像、音频等)的数据。这种类型的模型在多Agent模式下的应用将进一步推动对高性能计算资源的需求。
值得一提的是,在新一轮算力攻坚赛中,突破传统冯·诺依曼架构的范式探索成为主要方向之一。而“存算一体”架构打破了存算分离的壁垒,减少了数据的搬运,它就如同“在家办公”的新型工作模式,消除了数据“往返通勤“的能量消耗、时间延迟,并且节约了“办公场所”的运营成本,因而具备高能效比。加上“存算一体”架构对于工艺制程的“弱依赖”性(14nm展现4nm数字电路表现性能),使其成为了AI算力的重要发展方向。
Posit数字计算内存(CIM)模型(简称PD-CIM)的整体架构
上图为最新融入Posit系统的存内计算架构,在加载数据到PD-CIM时,FP-to-POSIT编码器将浮点数据转换为Posit格式以便于存储。CPCS会检测权重尾数的位宽,并预存逻辑值到备用的CIM单元中。在计算过程中,BRPU执行基于位移位或的区间处理。CIM核心结合CPCS有三种工作模式,包括3位模式、2-4位集合关联模式和正常模式。前两种模式使用预存的逻辑值来实现CIM内部的双比特乘累加(MAC)操作。CASU通过将加法操作替换为位级或操作来节省加法树的能量,并改变CPCS的计算顺序以增加无重叠尾数的数量。
整体而言,PD-CIM架构的设计旨在通过在存储器内部直接进行计算来提高能效和计算性能,同时支持多种计算精度和工作模式,以适应不同的计算需求。这种架构特别适合于需要处理大量数据和复杂计算任务的应用,如人工智能和大数据分析。
总结:
多Agent模式背后的算力需求通常较高,因为需要同时处理来自多个智能体的任务和数据。存内计算(Computing in memory,CIM)作为一种新兴的计算架构,能够在存储器阵列内完成逻辑运算,避免存储器和处理器之间频繁的数据搬移操作,从而提升算力,降低功耗。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_58966968/article/details/137691787
我用OpenGlass做了一个AI眼镜【更新中】 | Rocket Lu
来源: 我用OpenGlass做了一个AI眼镜【更新中】 | Rocket Lu

准备工作
.ino 文件。
-
- 将 ESP32 板 添加到您的 Arduino IDE:
- Navigate to File > Preferences, and fill “Additional Boards Manager URLs” with the URL:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
- Navigate to File > Preferences, and fill “Additional Boards Manager URLs” with the URL:
- 将 ESP32 板 添加到您的 Arduino IDE:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json-
-
- Navigate to Tools > Board > Boards Manager…, type the keyword
esp32in the search box, select the latest version ofesp32, and install it.
- Navigate to Tools > Board > Boards Manager…, type the keyword
-
esp32 ,选择最新版本的 esp32 并安装它。-
- Select your board and port:
-
-
- On top of the Arduino IDE, select the port (likely to be COM3 or higher).
-
-
-
- Search for
xiaoin the development board on the left and selectXIAO_ESP32S3.
- Search for
-
xiao 并选择 XIAO_ESP32S3 。开启智能眼镜新时代:OpenGlass-CSDN博客
来源: 开启智能眼镜新时代:OpenGlass-CSDN博客
开启智能眼镜新时代:OpenGlass
项目地址:https://gitcode.com/BasedHardware/OpenGlass
项目简介
OpenGlass是一个创新的开源项目,它能将普通眼镜转变为功能强大的智能眼镜,成本只需25美元以下。利用现成的组件,你可以记录生活、记住见过的人、识别物体、翻译文本等,让你的视野从此智能起来。
通过视频演示,进一步了解OpenGlass的神奇之处。
技术分析
OpenGlass的核心是基于Seeed Studio XIAO ESP32 S3 Sense微控制器,这是一款集成了Wi-Fi和蓝牙功能的高性能芯片。结合EEMB LP502030电池和3D打印的眼镜架,构建出轻便且持久使用的智能眼镜框架。软件部分则采用了Node.js和Expo开发的移动端应用,实现了与硬件的无缝交互,为用户提供直观易用的界面。
关键功能实现依赖于各种API服务,如Groq和OpenAI用于数据处理和智能识别,而Ollama的REST API用于语音转文本功能。为了确保隐私,自托管选项也得到了支持。
应用场景
OpenGlass的应用广泛:
生活记录者: 随时随地记录你的日常生活,重要时刻不再错过。
社交达人: 记住新朋友的名字,减少尴尬的忘记瞬间。
户外探险: 辨识野生动植物,增加旅行的乐趣。
语言翻译: 实时翻译文字,跨国交流更无障碍。
视觉辅助: 对视力受限的人来说,它可以读取菜单或标签上的文字。
项目特点
低成本: 无需高昂费用,就能拥有智能眼镜体验。
可扩展性: 开源设计允许开发者和爱好者添加更多功能。
便捷安装: 易于组装的硬件和清晰的软件设置指南,任何人都可以尝试。
社区支持: 加入Based Hardware Discord社区,获取帮助、分享经验,共同进步。
隐私优先: 自主选择是否自托管API服务,尊重并保护个人数据。
如果你对预装版感兴趣,可以填写兴趣表单获得通知。现在就动手,开启属于你的智能眼镜时代吧!
注:文章中的链接可能无法直接点击,请复制到浏览器中打开。
1
项目地址:https://gitcode.com/BasedHardware/OpenGlass
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/gitblog_00012/article/details/139019634
uniapp table 组件-CSDN博客
uniapp table 组件
- uniapp是2019年非常的火爆的一个Dcloud开发跨平台前端工具,支持ios Android wap,小程序,除了Android有点卡外,其他暂时没有发现什么瑕疵。
- 最近在捣鼓uniapp项目,恰好用到table组件,之前写了个demo,后面一直都想写一个像样的,可以分享给别人用的组件。
- 自己的水平一般,开发出来的组件可能代码不咋地,还望路过大神斧正。
- 下面是我写的uniapptable的说明,希望能够帮到别人
这里默认大家都非常熟悉vue和uniapp的包引入,不再阐述uniapp组件引入方法以及uniapp组件和vue的区别
插件市场更新会比github更新延后,查看github项目:
- uniapp是2019年非常的火爆的一个Dcloud开发跨平台前端工具,支持ios Android wap,小程序,除了android有点卡外,其他暂时没有发现什么瑕疵。
- 最近在捣鼓uniapp项目,恰好用到table组件,之前写了个demo,后面一直都想写一个像样的,可以分享给别人用的组件。
- 自己的水平一般,开发出来的组件可能代码不咋地,还望路过大神斧正。
- 下面是我写的uniapptable的说明,希望能够帮到别人
这里默认大家都非常熟悉vue和uniapp的包引入,不再阐述uniapp组件引入方法以及uniapp组件和vue的区别
插件市场更新会比github更新延后,查看github项目 GitHub – MTTTM/uniapp-elemnt-table: 模仿element-ui的表格组件
插件市场更新会比github更新延后,查看demo源码
插件市场更新会比github更新延后,查看demo使用引入方式
支持功能大概如下
点击查看demo,PC浏览器模拟显示和真实移动设备访问有差异
固定高度不支持同时固定某一列
已测试平台 ->ios,android,wap,微信小程序
部分效果预览
基本使用示例源码
html
<v-table :columns="columns" :list="data"></v-table>
JavaScript (data数组必须提供id)
-
import vTable from “@/components/table.vue”
-
export default{
-
components: {
-
vTable
-
},
-
data(){
-
return {
-
data: [{
-
name: ‘John Brown’,
-
age: 18,
-
address: ‘New York No. 1 Lake Park’,
-
id: “1”,
-
-
}
-
],
-
columns: [{
-
title: “ID”,
-
key: “id”
-
},
-
{
-
title: ‘Name’,
-
key: ‘name’
-
},
-
{
-
title: ‘Age’,
-
key: ‘age’
-
},
-
{
-
title: ‘Address’,
-
key: ‘address’
-
}
-
],
-
}
-
}
-
-
}
基本属性
html标签属性
| 属性 | 说明 | 类型 | 默认 | 必填 |
|---|---|---|---|---|
| columns | 列数据 | Array | — | 必填 |
| dataColSpan | 行数据 | Array | — | 必填 |
| row-class-name | 行样式 | String或Function | — | — |
| height | 表格高度(可用固定表头) | Number | — | — |
| td-height | 单元格高 | Number | 110 | — |
| td-width | 单元格宽 | Number | 30 | — |
| td-padding | 单元格间距 | Number | 10 | — |
| border-color | 表格边框颜色 | String | #666 | — |
| th-td-height | 表头单元格高 | Number | 30 | — |
| loading | 加载状态 | Boolean | false | — |
| selection | 可选mulit和single | String | — | — |
| span-method | 行列合并 | Function | — | — |
| slot-cols | 插槽自定义列元素,对应columns的key | Array | — | — |
| emptyText | 插没数据提示文字 | String | — | — |
| emptyClickFn | 没数据点击响应函数 | Function | — | — |
事件
| 属性 | 说明 | 参数 |
|---|---|---|
| @on-selection-change | 单选 多选变更 | {old:””,new:””} |
| @delete | 自定义事件(它可以不叫delete,可以是任意事件,只要你在list里面定义了) | {row:{},index:Number} |
list 参数
| 属性 | 说明 | 类型 |
|---|---|---|
| cellClassName | 设置行内某一列的样式类名 | Object |
| operate | 数据操作的列 | Object |
columns 参数
| 属性 | 说明 | 类型 |
|---|---|---|
| $width | 设置列宽度 例如 “120px”,请务必使用px单位 | String |
| $fixed | 固定某一列,可选left和right | String |
| $operateList | 数据操作选项和list的operate对应 | Array |
插件市场更新会比github更新延后,查看demo源码
插件市场更新会比github更新延后,查看demo使用引入方式
支持功能大概如下
点击查看demo,PC浏览器模拟显示和真实移动设备访问有差异
固定高度不支持同时固定某一列
已测试平台 ->ios,android,wap,微信小程序
部分效果预览
基本使用示例源码
html
<v-table :columns="columns" :list="data"></v-table>
JavaScript (data数组必须提供id)
-
import vTable from “@/components/table.vue”
-
export default{
-
components: {
-
vTable
-
},
-
data(){
-
return {
-
data: [{
-
name: ‘John Brown’,
-
age: 18,
-
address: ‘New York No. 1 Lake Park’,
-
id: “1”,
-
-
}
-
],
-
columns: [{
-
title: “ID”,
-
key: “id”
-
},
-
{
-
title: ‘Name’,
-
key: ‘name’
-
},
-
{
-
title: ‘Age’,
-
key: ‘age’
-
},
-
{
-
title: ‘Address’,
-
key: ‘address’
-
}
-
],
-
}
-
}
-
-
}
基本属性
html标签属性
| 属性 | 说明 | 类型 | 默认 | 必填 |
|---|---|---|---|---|
| columns | 列数据 | Array | — | 必填 |
| dataColSpan | 行数据 | Array | — | 必填 |
| row-class-name | 行样式 | String或Function | — | — |
| height | 表格高度(可用固定表头) | Number | — | — |
| td-height | 单元格高 | Number | 110 | — |
| td-width | 单元格宽 | Number | 30 | — |
| td-padding | 单元格间距 | Number | 10 | — |
| border-color | 表格边框颜色 | String | #666 | — |
| th-td-height | 表头单元格高 | Number | 30 | — |
| loading | 加载状态 | Boolean | false | — |
| selection | 可选mulit和single | String | — | — |
| span-method | 行列合并 | Function | — | — |
| slot-cols | 插槽自定义列元素,对应columns的key | Array | — | — |
| emptyText | 插没数据提示文字 | String | — | — |
| emptyClickFn | 没数据点击响应函数 | Function | — | — |
事件
| 属性 | 说明 | 参数 |
|---|---|---|
| @on-selection-change | 单选 多选变更 | {old:””,new:””} |
| @delete | 自定义事件(它可以不叫delete,可以是任意事件,只要你在list里面定义了) | {row:{},index:Number} |
list 参数
| 属性 | 说明 | 类型 |
|---|---|---|
| cellClassName | 设置行内某一列的样式类名 | Object |
| operate | 数据操作的列 | Object |
columns 参数
| 属性 | 说明 | 类型 |
|---|---|---|
| $width | 设置列宽度 例如 “120px”,请务必使用px单位 | String |
| $fixed | 固定某一列,可选left和right | String |
| $operateList | 数据操作选项和list的operate对应 | Array |
移动端 触摸事件和mousedown、mouseup、click事件之间的关系_移动端 touch、click出发顺序-CSDN博客
来源: 移动端 触摸事件和mousedown、mouseup、click事件之间的关系_移动端 touch、click出发顺序-CSDN博客
一、移动端 触摸事件
ontouchstart、ontouchmove、ontouchend、ontouchcancel
1、Touch事件简介
pc上的web页面鼠 标会产生onmousedown、onmouseup、onmouSEOut、onmouSEOver、onmousemove的事件,但是在移动终端如iphone、ipod Touch、ipad上的web页面触屏时会产生ontouchstart、ontouchmove、ontouchend、ontouchcancel事件,分别对应了触屏开始、拖拽及完成触屏事件和取消。
当按下手指时,触发ontouchstart;
当移动手指时,触发ontouchmove;
当移走手指时,触发ontouchend。
当一些更高级别的事件发生的时候(如电话接入或者弹出信息)会取消当前的touch操作,即触发ontouchcancel。一般会在ontouchcancel时暂停游戏、存档等操作。
2、Touch事件与Mouse事件的出发关系
在触屏操作后,手指提起的一刹那(即发生ontouchend后),系统会判断接收到事件的element的内容是否被改变,如果内容被改变,接下来的事 件都不会触发,如果没有改变,会按照mousedown,mouseup,click的顺序触发事件。特别需要提到的是,只有再触发一个触屏事件时,才会 触发上一个事件的mouseout事件。
二、mousedown、mouseup、click事件之间的关系
点击select标签元素的时候,会弹出下拉。然而当option中没有元素时,就不希望弹出下拉(比如在某些浏览器中,点击select会默认出一个罩层效果,而此时没有数据选择的话,弹出比较不友好)。
首先想到是利用click事件控制,发现仍然会有下拉出现…实际这个是mousedown事件控制的。
这里就说明下click和mousedown、mouseup。规范要求,只有在同一个元素上相继触发 mousedown 和 mouseup 事件,才会触发 click 事件;如果 mousedown 或 mouseup 中的一个被取消,就不会触发 click 事件。
这句话也很好理解,有时候我们在浏览网页时,鼠标在一个按钮或者链接上按下了,但是突然却又改了主意,此时我们一般会移开鼠标,在另一个空白处松开鼠标哈哈~相信这个大家经常上网都有经验。实际这个就利用了click事件要求在同一个元素相继触发mousedown 和 mouseup 事件。
<script type=”text/JavaScript”>
var len = 0;
$(‘#sel’).mousedown(function(){
if(len == 0){// 模拟一下select标签没数据的标志
console.log(‘mousedown’);
return false;
}
}).mouseup(function(){
console.log(‘mouseup’);
}).click(function(){
console.log(‘click’);
});
</script>
点击后发现,log的顺序是:mousedown–>mouseup–>click
当在mousedown中return false后,就不会弹出下拉或者罩层了…
这里再介绍下鼠标的各个事件:
DOM3 级事件中定义了9个鼠标事件,简介如下。
click:在用户单击主鼠标按钮(一般是左边的按钮)或者按下回车键时触发。这一点对确保易访问性很重要,意味着onclick事件处理程序既可以通过键盘也可以通过鼠标执行。
dblclick:在用户双击主鼠标按钮(一般是左边的按钮)时触发。从技术上说,这个事件并不是DOM2级事件规范中规定的,但鉴于它得到了广泛支持,所以DOM3 级事件将其纳入了标准。
mousedown:在用户按下了任意鼠标按钮时触发。不能通过键盘触发这个事件。
mouseenter:在鼠标光标从元素外部首次移动到元素范围之内时触发。这个事件不冒泡,而且在光标移动到后代元素上不会触发。DOM2级事件并没有定义这个事件,但 DOM3级事件将它纳入了规范。IE、Firefox 9+和 Opera支持这个事件。
mouseleave:在位于元素上方的鼠标光标移动到元素范围之外时触发。这个事件不冒泡,而且在光标移动到后代元素上不会触发。DOM2级事件并没有定义这个事件,但 DOM3级事件将它 纳入了规范。IE、Firefox 9+和 Opera支持这个事件。
mousemove:当鼠标指针在元素内部移动时重复地触发。不能通过键盘触发这个事件。
mouseout:在鼠标指针位于一个元素上方,然后用户将其移入另一个元素时触发。又移入的另一个元素可能位于前一个元素的外部,也可能是这个元素的子元素。不能通过键盘触发这个事件。
mouseover:在鼠标指针位于一个元素外部,然后用户将其首次移入另一个元素边界之内时触 发。不能通过键盘触发这个事件。
mouseup:在用户释放鼠标按钮时触发。不能通过键盘触发这个事件。 页面上的所有元素都支持鼠标事件。除了 mouseenter 和 mouseleave,所有鼠标事件都会冒泡, 也可以被取消,而取消鼠标事件将会影响浏览器的默认行为。取消鼠标事件的默认行为还会影响其他事 件,因为鼠标事件与其他事件是密不可分的关系。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/muzidigbig/article/details/83276851
Mikel
