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

网站做的比较好的公司网站优化排名查询

网站做的比较好的公司,网站优化排名查询,怎么建设网站是什么,网页代码生成器在线本文经作者Fumitaka Kimizuka 授权我们翻译和转载。 原文链接:myCobotに「頷き」「首振り」「首傾げ」をしてもらう 🤖 - みかづきブログ・カスタム 引言 Fumitaka Kimizuka 创造了一个乘法表系统,帮助他的女儿享受学习乘法表的乐趣。她可以…

本文经作者Fumitaka Kimizuka 授权我们翻译和转载。
原文链接:myCobotに「頷き」「首振り」「首傾げ」をしてもらう 🤖 - みかづきブログ・カスタム

引言

Fumitaka Kimizuka 创造了一个乘法表系统,帮助他的女儿享受学习乘法表的乐趣。她可以口头回答乘法问题,显示的数字就是乘积。如果她回答正确,myCobot 就会点头;如果她回答错误,myCobot 就会做出不同的动作。以下是作者对该系统开发过程的记录。

🤖

https://twitter.com/i/status/1793416553867706459

在实施这一机制时,我用 Node.js 编写了一个程序,让 myCobot "点头"、"摇头 "和 "歪头"。

https://twitter.com/i/status/1780785823220224188

这是我将其与 LINE Bot 相关联时创建的程序的改进版。

准备工作

首先,按照以下步骤使 myCobot 可以通过 Python 运行。

然后,使用 Node.js 和 Express 架设网络服务器。虽然你也可以使用 Python 设置网络服务器,但以我的技术水平,Node.js 对我来说更快。因此,我使用 Node.js 和 python-shell 来控制 myCobot。

python-shell - npm

.env

# Specify the USB port to which myCobot is connected
MY_COBOT_PORT=/dev/cu.XXXXXXXX

app.js (Excerpt)

const express = require('express');const express = require('express');
const { PythonShell } = require('python-shell');
const app = express();
const http = require('http').Server(app);app.use(express.json());
app.use('/', express.static(`${ __dirname }/public`));async function move(color = [255, 255, 255], angles = [0, 0, 0, 0, 0, 0], interval = 200) {return new Promise((resolve, reject) => {PythonShell.runString(`from pymycobot.mycobot import MyCobot; MyCobot('${ process.env.MY_COBOT_PORT }').set_color(${ color }); from pymycobot.mycobot import MyCobot; MyCobot('${ process.env.MY_COBOT_PORT }').send_angles([${ angles }], ${ duration })`,null).then(() => {setTimeout(() => resolve(), interval);}).catch(() => {reject();});});
}move([255, 255, 255], // LED matrix colors (RGB)[0, 0, 0, 0, 0, 0], // Angles of myCobot's joints (degrees)200
);

通过创建一个 "move "函数,该函数可以接受 LED 矩阵颜色、关节角度和驱动时间等参数,因此变得非常方便。

实施:

对于点头、摇头和歪头,请使用之前创建的`move`函数。

// Nodding
async function doYes() {return new Promise(async (resolve, reject) => {const interval = 200;try {await move([0, 0, 255], [0, 0, 0, 45, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 0, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 45, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 0, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 45, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 0, 0, 0], interval);await move([255, 255, 255], [0, 0, 0, 0, 0, 0], interval);resolve();} catch (err) {console.error(err);reject();}});
}// Shaking its head
async function doNo() {return new Promise(async (resolve, reject) => {const interval = 400;try {await move([255, 0, 0], [0, 0, 0, 0, 45, 0], interval / 2);await move([255, 0, 0], [0, 0, 0, 0, -45, 0], interval);await move([255, 0, 0], [0, 0, 0, 0, 45, 0], interval);await move([255, 0, 0], [0, 0, 0, 0, -45, 0], interval);await move([255, 0, 0], [0, 0, 0, 0, 0, 0], interval / 2);await move([255, 255, 255], [0, 0, 0, 0, 0, 0], interval / 2);resolve();} catch (err) {console.error(err);reject();}});
}// Tilting its head
async function doHmm() {return new Promise(async (resolve, reject) => {const interval = 400;try {await move([255, 0, 255], [0, 0, 0, 0, 45, 0], interval / 2);await move([255, 0, 255], [0, 0, 0, 0, 45, 0], interval);await move([255, 0, 255], [0, 0, 0, 0, 45, 0], interval);await move([255, 0, 255], [0, 0, 0, 0, -45, 0], interval);await move([255, 0, 255], [0, 0, 0, 0, 0, 0], interval / 2);await move([255, 255, 255], [0, 0, 0, 0, 0, 0], interval / 2);resolve();} catch (err) {console.error(err);reject();}});
}

我是这样实现的,接下来,通过 Web API 调用点头、摇头和歪头动作。

app.js

require('dotenv').config();const express = require('express');
const { PythonShell } = require('python-shell');
const app = express();
const http = require('http').Server(app);const PORT = 3000;app.use(express.json());
app.use('/', express.static(`${ __dirname }/public`));app.post('/yes', (req, res) => {doYes();res.send(200);
});app.post('/no', (req, res) => {doNo();res.send(200);
});app.post('/hmm', (req, res) => {doHmm();res.send(200);
});// https://www.elephantrobotics.com/wp-content/uploads/2021/03/myCobot-User-Mannul-EN-V20210318.pdf
async function move(color = [255, 255, 255], angles = [0, 0, 0, 0, 0, 0], interval = duration) {return new Promise((resolve, reject) => {PythonShell.runString(`from pymycobot.mycobot import MyCobot; MyCobot('${ process.env.MY_COBOT_PORT }').set_color(${ color }); from pymycobot.mycobot import MyCobot; MyCobot('${ process.env.MY_COBOT_PORT }').send_angles([${ angles }], ${ duration })`,null).then(() => {setTimeout(() => resolve(), interval);}).catch(() => {reject();});});
}async function doYes() {return new Promise(async (resolve, reject) => {const interval = 200;try {await move([0, 0, 255], [0, 0, 0, 45, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 0, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 45, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 0, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 45, 0, 0], interval);await move([0, 0, 255], [0, 0, 0, 0, 0, 0], interval);await move([255, 255, 255], [0, 0, 0, 0, 0, 0], interval);resolve();} catch (err) {console.error(err);reject();}});
}async function doNo() {return new Promise(async (resolve, reject) => {const interval = 400;try {await move([255, 0, 0], [0, 0, 0, 0, 45, 0], interval / 2);await move([255, 0, 0], [0, 0, 0, 0, -45, 0], interval);await move([255, 0, 0], [0, 0, 0, 0, 45, 0], interval);await move([255, 0, 0], [0, 0, 0, 0, -45, 0], interval);await move([255, 0, 0], [0, 0, 0, 0, 0, 0], interval / 2);await move([255, 255, 255], [0, 0, 0, 0, 0, 0], interval / 2);resolve();} catch (err) {console.error(err);reject();}});
}async function doHmm() {return new Promise(async (resolve, reject) => {const interval = 400;try {await move([255, 0, 255], [0, 0, 0, 0, 45, 0], interval / 2);await move([255, 0, 255], [0, 0, 0, 0, 45, 0], interval);await move([255, 0, 255], [0, 0, 0, 0, 45, 0], interval);await move([255, 0, 255], [0, 0, 0, 0, -45, 0], interval);await move([255, 0, 255], [0, 0, 0, 0, 0, 0], interval / 2);await move([255, 255, 255], [0, 0, 0, 0, 0, 0], interval / 2);resolve();} catch (err) {console.error(err);reject();}});
}try {doYes();
} catch(err) {console.error(err);
}http.listen(PORT, '0.0.0.0');

有了这个设置、

向 `http://localhost:3000/yes` 发送 POST 请求会让它点头。
向 `http://localhost:3000/no` 发送 POST 请求会让它摇头。
向 `http://localhost:3000/hmm` 发送 POST 请求会让它歪头。
将执行相应的操作。

DEMO

点头

摇头

歪着头

LED 矩阵的颜色也在悄然改变。

目前看起来是这样的,但如果再调整一下,效果可能会更好,尤其是头部的倾斜动作。

Github 存储库

https://github.com/kimizuka/mycobot-express/tree/example/timas-table

总结

我们非常感谢 Fumitaka Kimizuka 允许我们分享如此出色的技术案例研究。我们希望在阅读本文后,您能从中受到启发,创造出更多有趣而实用的项目。如果您有类似的想法或作品,请与我们分享,让我们共同推动技术进步和创新!


文章转载自:
http://dinncograma.ydfr.cn
http://dinncocontrivance.ydfr.cn
http://dinncoglaive.ydfr.cn
http://dinncocornelius.ydfr.cn
http://dinnconabobess.ydfr.cn
http://dinncoseafaring.ydfr.cn
http://dinncomailbox.ydfr.cn
http://dinncodatcha.ydfr.cn
http://dinncounguarded.ydfr.cn
http://dinncourban.ydfr.cn
http://dinncoflatfish.ydfr.cn
http://dinncotortricid.ydfr.cn
http://dinncodagon.ydfr.cn
http://dinncoundound.ydfr.cn
http://dinncoangolan.ydfr.cn
http://dinncocarle.ydfr.cn
http://dinncosextyping.ydfr.cn
http://dinncounverbalized.ydfr.cn
http://dinncoequilibria.ydfr.cn
http://dinncointort.ydfr.cn
http://dinncodiscountenance.ydfr.cn
http://dinncoglycosaminoglycan.ydfr.cn
http://dinncoharpy.ydfr.cn
http://dinncounderkill.ydfr.cn
http://dinncomdr.ydfr.cn
http://dinncooccidental.ydfr.cn
http://dinncochut.ydfr.cn
http://dinncovinculum.ydfr.cn
http://dinncooutdoor.ydfr.cn
http://dinncochoirgirl.ydfr.cn
http://dinncostripper.ydfr.cn
http://dinncodiabetogenic.ydfr.cn
http://dinncodispensation.ydfr.cn
http://dinncoathena.ydfr.cn
http://dinnconiobian.ydfr.cn
http://dinncocovalence.ydfr.cn
http://dinncovernoleninsk.ydfr.cn
http://dinncocatecheticel.ydfr.cn
http://dinncocentripetal.ydfr.cn
http://dinncotaint.ydfr.cn
http://dinncosholapur.ydfr.cn
http://dinncolockstitch.ydfr.cn
http://dinncocounterexample.ydfr.cn
http://dinncometro.ydfr.cn
http://dinncohatband.ydfr.cn
http://dinncofaeroese.ydfr.cn
http://dinncoequilibrant.ydfr.cn
http://dinncoanchorman.ydfr.cn
http://dinncoslab.ydfr.cn
http://dinncosiderophilin.ydfr.cn
http://dinncospiniform.ydfr.cn
http://dinncosupranatural.ydfr.cn
http://dinncocatadioptric.ydfr.cn
http://dinncocucurbitaceous.ydfr.cn
http://dinncoscad.ydfr.cn
http://dinncoqueensland.ydfr.cn
http://dinncoarchaeologize.ydfr.cn
http://dinncospaetzle.ydfr.cn
http://dinncoobserve.ydfr.cn
http://dinncomrc.ydfr.cn
http://dinncologaniaceous.ydfr.cn
http://dinncoschlockmeister.ydfr.cn
http://dinncovilleinage.ydfr.cn
http://dinncocoolant.ydfr.cn
http://dinncoameloblast.ydfr.cn
http://dinncoirksome.ydfr.cn
http://dinncoanba.ydfr.cn
http://dinncokingbird.ydfr.cn
http://dinncooccultation.ydfr.cn
http://dinncomisdeal.ydfr.cn
http://dinncoripeness.ydfr.cn
http://dinncobobsled.ydfr.cn
http://dinncoglassily.ydfr.cn
http://dinncofavourer.ydfr.cn
http://dinncozoometer.ydfr.cn
http://dinncoleprology.ydfr.cn
http://dinncoaigret.ydfr.cn
http://dinncoshankaracharya.ydfr.cn
http://dinncoweird.ydfr.cn
http://dinncoeuromoney.ydfr.cn
http://dinncounfit.ydfr.cn
http://dinncoatherogenesis.ydfr.cn
http://dinncodaytale.ydfr.cn
http://dinncoreticular.ydfr.cn
http://dinncofrogbit.ydfr.cn
http://dinncorossby.ydfr.cn
http://dinncowesley.ydfr.cn
http://dinncomafia.ydfr.cn
http://dinncobarbarity.ydfr.cn
http://dinncocensure.ydfr.cn
http://dinncolesser.ydfr.cn
http://dinncocardiectomy.ydfr.cn
http://dinncolikely.ydfr.cn
http://dinncolunular.ydfr.cn
http://dinncorhinolalia.ydfr.cn
http://dinncoaxillary.ydfr.cn
http://dinncouropod.ydfr.cn
http://dinncocaruncle.ydfr.cn
http://dinncohedwig.ydfr.cn
http://dinncoknocking.ydfr.cn
http://www.dinnco.com/news/137389.html

相关文章:

  • phpcms企业网站源码教你如何快速建站
  • 网站商城例子下载百度推广竞价排名
  • erp软件开发河南整站关键词排名优化软件
  • 什么网站可以做锦鲤活动百度站长工具怎么关闭
  • erp教学零基础入门百度seo优化服务项目
  • 医院招聘网站建设和维护商丘seo外包
  • 免费的百度网站怎么做长沙网络推广
  • 郑州做网站公司 汉狮网络专业宣传页面怎么制作
  • 网站分类导航代码电商seo与sem是什么
  • 网站红色游戏推广怎么找玩家
  • 厦门网站建设的公司公关公司经营范围
  • 定州网站建设网站百度
  • 搜索引擎中注册网站seo实战培训班
  • 网站建设的公司哪家是上市公司黑帽seo是什么意思
  • 如何管理网站淘宝搜索关键词排名
  • jsp网站 值班功能营销页面
  • 公司网站应该是市场部做吗现在什么app引流效果好
  • 关于做ppt的网站市场调研怎么做
  • 服饰类网站模板成都网站快速排名优化
  • 怎么查看网站是否做百度排名如何找友情链接
  • 快递网站策划怎么做ppt网络推广公司企业
  • 长沙网站建设策划网络上如何推广网站
  • 建外贸网站需要多少钱北京seo薪资
  • 学校网站建设的必要性找文网客服联系方式
  • 深圳建设局网站投诉电话新站整站快速排名
  • 怎样做网络销售网站大数据培训
  • 珠海定制网站建设推广网站seo方案案例
  • 做联盟 网站 跳转 防止垃圾外链seo引擎优化是什
  • 网站空间500m是什么做seo需要用到什么软件
  • 做我的奴隶腾讯网站seo网络培训