一、基本操作
{1-1}
台灯内部有一块android主板,向外提供4个USB和一个HDMI口。USB用于连各样配件,像这里的摄像头、小风扇、鼠标。HDMI则可连HDMI接口显示器。简单说,可认为台灯内置了个小电脑主机。
面板上有四个按钮,分别是电源、亮度、场景和隐私保护。
上电后,只电源灯会亮。此时灯板和android主板都不工作。按下电源按钮,开灯,灯板会亮,android主板通电。正如android手机或平板,这需要点时间。
{1-2-1, 1-2-2}
一旦完成,就可以远程桌面访问台灯了。如果台灯还没wifi,按这视频中“kDesktop连接wifi”部分说的去连接wifi。有wifi地址后,就可远程桌面访问台灯了。这里演示用的客户端是Windows自带的远程桌面连接。
可以看到,台灯操作系统是Android。但要用的app可说就只有launcher这个apk。在桌面,商店后面的图标是第三方小程序。
进入“设置”窗口,确保选择了正确的底盘驱动。底盘驱动由台灯制造商提供,这里是“纽兰斯顿”。进入“纽兰斯顿”小程序,确保选择了正确的串口以及波特率。“长按阈值”参数是长按的时间间隔。
{1-3-1, 1-3-2}
一旦开灯,电源按钮功能要分短按和长按。短按功能是切换色温,长按则是关灯。
亮度按钮分短按和长按。短按是切换亮度,长按则把亮度变成0。要注意,此时不是初始上电状态,这时android主板仍旧通着电,亮度灯也亮着。再次按下亮度,亮度就恢复了。
场景按钮分长按和短按。台灯只要在工作,就会处在某种场景。在kLink,可看到这台灯有三种场景,正坐(前)、正坐(右)和陪伴做操。此时正工作在正坐(右),即摄像头放在右侧的坐姿检测。短按按钮,可切换到下一个场景。长按则是挂起当前场景,即还是处于这场景,但啥也不做。挂起用途可能是这样的,你想趴桌上睡下,坐姿检测会认为这是不端正坐姿,避免听到播报,就叫不要检测。
隐私按钮用于开启和关闭隐私保护。一旦进入“隐私保护”状态,会阻止远程桌面、蓝牙IP发现、以及第三方小程序上传摄像头拍到图像。
台灯可能出现重复式语音播报,这时“场景”灯会闪烁。按下按钮,功能是停止重复式播报。
二、AI agent
{2(aiagent)-1}
要使用AI agent,需设置AI驱动。Basic小程序的AI驱动要连接Deepseek大模型,需要设置个你从Deepseek申请到的API key。
{2(aiagent)-2}
进入中心,单击AI agent,会列出已安装小程序提供的AI agent。对Basic小程序提供的添加定时提醒,它给了数个预设问题,针对自个需要,选择一个,简单编辑,像物理改为化学。发送,等待deepseek回答。
按要求,deepseek回了个以3列表格表示的两天复习计划。第一个时间段是10点到11点半,建议做的是“复习第一、第二章核心概念与化学方程式”。在回答尾部,会有三个数字,依次是此次问答总共用了801个token,输入用了126个token,输出用了675个token。它们前面的“新”字,表示这是此次会话的第一轮回答。
在日志,可看到在得到回答后,系统调用了一个叫“定时任务”的小程序任务。
去kLink,会有个触发时刻是10点的定时任务。也就是说,到10点了,会重复式语音播放“复习第一、第二章核心概念与化学方程式”。
{2(aiagent)-3}
台灯提供AI agent运行框架,用户通过编写小程序,去实现特定目标。。不少AI agent,它们追求通用解决方案,这里具体化目标了,即开发者知道这次AI agent要解决那种目标,然后写个aiagent任务把这目标进行折分,在每个阶段,知道要调什么工具。
这图描述了台灯怎么实现之前演示的添加定时提醒。
第一步:向Deepseek提问,得到各时间段下的学习计划。
第二步:各时间段学习计划是文字格式,转化为后面定时任务小程序需要的待增加任务。
第三步:以待增加任务为输入变量,调用定时任务小程序。它会把待增加任务加入到定时任务,于是每到时间段开始时刻,台灯便会重复式语音提醒。
三、坐姿检测
{2-1}
坐姿检测是本地识别,不论隐私保护是开还是关,都不会向外传摄像头图像。
坐姿检测分两种:正坐(前)是摄像头放在正前方,正坐(右)是摄像头放在右侧。不论哪个方向,都要判断是否端正和是否离座。
用正坐(前)时,判断是否端正是三个指标。不要靠太近,脸不要太歪,头不要太低。具体怎么判断,是通过实时检测33个人体姿势关节键,用特定几个做依据。以不要靠太近为例,用的是左、右肩这两个关键点,它们在x方向的距离。一旦认为超过0.42,就认为靠太近了。
数值上,是以图像宽度是1,其中双肩宽度是0.42。当然,默认可能不适合你,或想放宽或收紧这参数,可去提供坐姿检测的kHome小程序。把最大双肩宽度改到0.38,算法上就会随之更新。
改小最大双肩宽度后,符合靠太近就更容易了。
{2-2}
通过正坐(前),很难判断是否坐直,以及出现驼背。检测这两指标得用正坐(右),那里在计算脊柱角度,和肩到鼻的角度。
{2-3}
不论正坐(前),还是正坐(右),都要产生三种事件:坐姿是否端正,是否离坐,以及是否久坐。可以在kHome小程序修改相关参数。像把是否端正持续时间由10改为8,那只要坐姿不端正持续8秒,就会报告不端正事件。
有了事件,就要做相应处理,这个处理放在kLink。事件被赋值到环境变量env_base_subtask_code_,“坐姿检测”这条自动化,发现这变量不是0了,就去执行“坐姿不端正、离座、久坐”任务。后面kLink会说这任务。
四、做操(陪伴做操)
{3-1}
和坐姿检测一样,陪伴做操也是本地识别。场景挂接的是kHome小程序实现的一种肩颈操,怎么做操来自这视频。
(视频)
针对这肩颈操,陪伴可归纳提示动作开始和结束;判断用户姿势,开始20秒倒计时;以及倒计时过程中,一旦发现动作不规范,提示不规范原因。
{3-2}
这里只是一种肩颈操,开发者可以开发陪伴做其它健身操。到时新建一个场景,然后挂接到那小程序任务。
五、课件
{5(课件)-1}
课件可以是一篇课文教案,一个问题详细解答,一次家庭作业,一处旅游景点描述,等等。格式上,总体分内容、知识点和习题。必填的只有标题和内容,其它按自个需要。
在“编写”界面,可以制作、并上传课件。制做课件需要输入较多文字,或许可用Windows版Launcher。
要上传课件,供他人下载,需在C洼注册个账号,并以这账号在app登录。上传后,在个人中心、素材,可查看或删除已上传课件。
{5(课件)-2}
在“下载”界面,可下载他人编写的课件。
课件能干啥。目前实现的可分为两类。一是放入课单,到时像歌单一样,闲时循环播放声音。
{5(课件)-3}
第二个,如果课件中有习题,可把这习题问向deepseek,加深理解。为节省token,建议把问题复制到网页版deepseek,那里免费,在那里去提问。
六、kLink(自动化)
{4-1}
kLink窗口中的任务和底盘场景决定台灯能做什么事。底盘场景是台灯开着就会执行。klink任务是当满足某个触发条件时,就会执行。触发条件可以是智能家居事件,语音命令,变量,定时。
以坐姿检测为例,这是个变量触发。当检测到变量env_base_subtask_code_不为0时,就去执行坐姿不端正、离座、久坐任务。让看这任务怎么写的。
env_base_subtask_code_平时是0,当坐姿检测模块判断出有事件后,会修改它。变量值是1,意味着发生不端正事件,处理方式是语音提示坐姿不端正,以及不端正原因。变量值2表示发生离座事件,执行操作是语音提示人离开了,可以考虑关灯。变量值3表示发生久坐事件,并进入“处理久坐”状态,在“处理久坐”状态会开始重复式播放“坐久了,建议离开坐位,休息下”。
用户想改变任务行为,像发生离坐后,要执行关灯。只要把值2的启动状态改为“关灯”。在“关灯”状态,会执行台灯制造商提供的关灯任务。保存后,新任务就会生效,一旦发生离座,就会关灯。
任务结束后,会处理同步变量。这里的同步变量就是env_base_subtask_code_,会把它修改到平时值0。
{4-2}
切换场景是个语音命令触发。识别出用户说的话是以“切”字开始,并含有“到场景”或“场景到”,而且后面跟有个词,那就会切换到名称含有该词的场景。。
{4-3}
烟雾报警器触发和门铃按下是智能家居触发。当硬件ID是6c38这一串字符时,表示触发设备是门铃,播放“有人在按下门铃”,否则触发设备是烟雾报警器,进入烟雾报警器播报状态。在该状态,会重复式播放厨房发生烟雾报警。
这是按下门铃。
这是触发烟雾报警。
{4-4}
问询书上题目和点读笔,用于后面要介绍的做习题。
隔1小时执行,隔1分钟执行,都是变量触发。顾名思义,一个让可以隔一小时执行一次,另一个隔一分钟执行一次。
如果kLink任务、场景、语音命令脚本、任务脚本改乱了,可以通过“设置”,“导入kLink配置”,配置选 “台灯(中文)”。点击导入,恢复到出厂设置。
七、语音相关
{5-1}
5.1 语音播放
播放声音用的是launcher自写的中文播放模块。要使用它,得下载个拼音包,下载后,这里会显示拼音包版本号。如果有新的,可以“升级”它。
质量上,这个包也就是让人能听懂内容是什么,至于像多音字、混读英文单词,就没有。好处是免费,没有版权问题,以及不必联网。
5.2 录音
launcher app一启动,就会开始录音。
录音设备是放在外壳内的咪头。一些USB相机带麦克风,但目前不会使用这些麦克风进行录音。
可在录音窗口查看、保存实时波形。
{5-2}
5.3 语音识别
要能语音识别,以及后面语音提问,必须设置语音驱动。
对小程序Basic实现的语音驱动,用的是科大讯飞在线语音听写SDK。使用时,需要向科大讯飞注册个账号,得到APPID。
录音中有个概念叫“人声阈值”,只当有音量超过这个阈值,才会把接下一段声音送去识别。把值改为4200,在“录音”窗口画的横线就会变成4200。通过“录音”窗口,可选择用哪个合适值。
{5-3}
5.4 语音提问
对小程序Basic实现的语音驱动,语音提问用的是星火大模型SDK。但用的SDK是老版本,讯飞官方已不支持,一提问便会报错。
免得播放错误提示,打勾“关闭语音提问”。
语音提问核心是用哪个大模型。后面估计不会再用星火,目前在测试百度智能云。把“测试单任务”的“启动状态”选了“(khome)deepseek”,中心执行它,可看到看连接百度智能云的实现情况。
问题是“用一首七言绝句总结李白一生”,回答用了30秒,这时间有点长。
六、做习题
{6-1}
对做习题,目前只是做了些基础性工作。应该会分两块。一是使用预制习题本,二是没有习题本。
对预制习题本,可简单看个示例。下载kbook.rar,解压后,把kbook目录、kbook.csv文件放到khome小程序的saves目录下。进入khome,习题,便可看到kbook.csv这习题本的题目。注意下第3页第15题。
{6-2}
用“问询书上题目”语音命令触发让机器人做习题。
可以看到,台灯按要求做第3页第15题,求阴影部分面积。
{6-3}
没有预制习题本时,要解决用户怎么把这道题的内容发送到台灯,设想是用点读笔。市面上已有点读笔,是从图像识别出一段文字,或阅读,或翻译,或提问到大模型,自个处理掉了。这里得改为点读笔识别出文字后,用串口发到台灯。
“测试单任务”的“启动状态”选择“点读笔状态1(写文字)”,去“中心”,执行它,就模拟了一次操作码是3,文字是“谁最早发明了微积分”的点读笔触发。操作码3表示提问到大模型,等一段时间,会在日志区显示这问题的答案。
“点读笔状态2(写操作码)”,要写的操作码由3改为1。再次执行“测试单任务”,操作码1是阅读,于是变成语音播放“谁最早发明了微积分”。