分类 未分类 下的文章

太极创客对28BYJ-48单极性步进电机的介绍很详细, 型号源于名称: 外径28毫米四相八拍式永磁减速型步进电机.B是步进,Y是永磁, J是减速,哈哈很明显是我国的电机标准.
太极创客对这个步进电机的原理的介绍讲转子有6齿而定子有8齿, 最后算下来每一步是11.25度, 很有道理但很可惜, 是错的. 按转子6齿, BCDA每次循环完毕, 转子只会转45/3×4=60度, 每一步只有45/3=15度. 但11.25度这个结论却是对的. 是因为其实转子和定子都是8齿!
这个老外的博客对28BYJ-48这个国产型号电机进行了详细的拆解分析, 反而是正确的.
定子是4个8齿的齿板组成, 分上下两组. 每组两个齿板两两相对. 每个齿板上, 齿角是360/8=45度. 从上到下四个齿板角度依次为0度, (45/4)×2度, (45/4)×1度, (45/4)×3度. 转子是8个方向的永磁铁组成. 每一步可以走45/4=11.25度. 走完一圈是360/11.25=32步. 减速比1/64, 故最外层走完一圈是32×64=2048步. 然而上下两组齿板同时通磁,可以形成半步, 这样可以做到2048×2=4096个不同角度.

原文链接: ESP8266 NodeMCU – Controling Stepper Motor with ULN2003 Driver

最主要是2个:

  1. 使用了AccelStepper库,而不是常见的Stepper库.
  2. 电机要单独供电. 文章使用9V+LM7805稳压到5V, 我就直接用直流电源了. 5.3V下电流大约0.17A.

程序如下:

#include <AccelStepper.h>           // Load the AccelStepper library

#define motorPin1  5                // IN1 pin on the ULN2003A driver to pin D1 on NodeMCU board
#define motorPin2  4                // IN2 pin on the ULN2003A driver to pin D2 on NodeMCU board
#define motorPin3  0                // IN3 pin on the ULN2003A driver to pin D3 on NodeMCU board
#define motorPin4  2                // IN4 pin on the ULN2003A driver to pin D4 on NodeMCU board

int stepsPerRevolution = 64;        // steps per revolution
int degreePerRevolution = 5.625;    // degree per revolution

/*
 * AccelStepper::FULL2WIRE (2) means: 2 wire stepper (2 pins needed). 
 * AccelStepper::FULL3WIRE (3) means: 3 wire stepper, like a harddisk motor (3 pins needed). 
 * AccelStepper::FULL4WIRE (4) means: 4 wire stepper (4 pins needed). 
 * AccelStepper::HALF3WIRE (6) means: 3 wire half stepper, like a harddisk motor (3 pins needed) 
 * AccelStepper::HALF4WIRE (8) means: 4 wire half stepper (4 pins needed) 
 *
 * AccelStepper uses AccelStepper::FULL4WIRE (4 pins needed) by default.
 */
AccelStepper stepper(AccelStepper::HALF4WIRE, motorPin1, motorPin3, motorPin2, motorPin4);

void setup() {
  Serial.begin(9600);               // initialise the serial monitor

  stepper.setMaxSpeed(1000.0);      // set the max motor speed
  stepper.setAcceleration(100.0);   // set the acceleration
  stepper.setSpeed(200);            // set the current speed

}

// Degrees of the momevement. So first to 90 degrees, then to -90 graden then to 180 degrees etc.
int steps[] = { 90, -90, 180, -180, 0 };

// The total entries in steps[]
int stepsCount = 5;

// Keeps track of the position in steps[] we are about to run
int stepsIndex = 0;

void loop() {

  // If the stepper isn't moving and doesn't have to go any distance
  if (!stepper.isRunning() && stepper.distanceToGo() == 0) {

    // Move the stepper to the degrees on the position of stepIndex in steps[]
    stepper.moveTo(degToSteps(steps[stepsIndex]));

    // Increase the index when each movement has finished
    stepsIndex++;

    // If we have executed all positions of steps[]
    if (stepsIndex > stepsCount) {

      // Set the index to 0 to restart the process
      stepsIndex = 0;
    }
  }

  stepper.run();

}

/*
 * Converts degrees to steps
 * 
 * 28BYJ-48 motor has 5.625 degrees per step
 * 360 degrees / 5.625 = 64 steps per revolution
 * 
 * Example with degToSteps(45):
 * (64 / 5.625) * 45 = 512 steps
 */
float degToSteps(float deg) {
  return (stepsPerRevolution / degreePerRevolution) * deg;
}

这个程序有个问题是, 断电后重新上电, 是以当前位置为0位的, 不能记忆上次断电的位置.

空调中的导风口使用的也是步进电机, 这儿有一篇维修文章

参考文章:
AccelStepper官方文档
28BYJ-48 Stepper Motor with ULN2003 Driver and Arduino Tutorial
ULN2003-Datasheet.pdf
ULN2003-Stepper-Motor-Driver-PCB.pdf
28byj48-Stepper-Motor-Datasheet.pdf

网易云音乐上的翻译完全失去了原词的性感, 这儿我对比重新翻译一下。

作词 : Adam Levine/Shellback/Savan Kotecha/Max Martin
作曲 : Adam Levine/Shellback/Savan Kotecha/Max Martin

我的重译 英文原词 网易云音乐翻译
你和我,关系恶化 You and I go hard, 我们的关系不断僵化
彼此看来,就快干架 at each other like we're going to war 在彼此看来都是紧张到一触即发
你和我,日益暴躁 You and I go rough, 生活变得艰难
东西互砸,把门摔爆 we keep throwing things and slamming the doors 我们唯一的交流变成了摔打东西和大力的关门隔绝彼此
你和我,两人有病 You and I get sore, 我们变得易怒、歇斯底里
功能失调,整天较劲 then dysfunctional we stuck keeping score 以互踩痛处而相互较量
你和我,已经烦透 You and I get sick, 我们的所作所为编的越来越超出常规
谁都知道,我们不能在这样! they all know that we can't do this no more 连旁人都看不下去了
但是宝贝,你又要走 But baby there you go again, 但是亲爱的你
你又要走,又让我爱上你啦 there you go again making me love you 又再一次让我爱上了你
我,不用大脑 Yeah I stopped using my head, 是的,我已经停止思考
不用大脑,一切放手 using my head let it all go 思考该怎么放手
你,贴我身上 Got you stuck on my body, 你紧紧贴着我的身体
贴我身上,像个刺青 on my body like a tattoo 就像一枚带着疼痛的印记
我,像个傻逼 And now i'm feeling stupid, 现在的我感觉自己很愚蠢
像个傻逼,爬到你背后 feeling stupid crawling back to you 悄悄溜回你身边的决定是如此的失策
所以,我胸前画个十字,不如死了算了 So I cross my heart, and I hope to die, 所以我以我的生命起誓
只要让我陪你再多一夜 that i'll only stay with you one more night 我只会跟你再待最后一晚
我知道我说过千百万次 And I know i've said it a million times 我知道我已经说了千万遍
但我真的只要陪你再多一夜 But i'll only stay with you one more night 但这真的是我们相处的最后一夜
想和你说不 Trying to tell you no, 我试图拒绝你
但我的身体却一直说好 but my body keeps on telling you yes 可我的身体却自行接受
想和你说停 Trying to tell you stop, 我试图停下
但你的口红让我喘不过气 but your lipstick got me so out of breath 但你口红的颜色都快让我无法呼吸
我明早醒来 I'd be waking up, 我必将在清晨醒来时
大概会厌恶自己 in the morning probably hating myself 无比厌恶这样的自己
我明早醒来 And i'd be waking up, 我必将在清晨醒来时
无比满足却又负罪如坠地狱 feeling satisfied but guilty as hell 心中满是满足和如临地狱般的罪恶感
但是宝贝,你又要走 But baby there you go again, 但是亲爱的
你又要走,又让我爱上你啦 there you go again making me love you 你又再一次让我爱上了你
我,不用大脑 Yeah I stopped using my head, 是的,我已经放弃了思考权衡,
不用大脑,一切放手 using my head let it all go 我不会再放手
你,贴我身上 Got you stuck on my body, 让你紧紧的缠绕着我的身体
贴我身上,像个刺青 on my body like a tattoo 就像枚带着疼痛的印记
我,像个傻逼 And now i'm feeling stupid, 我现在感觉自己如此愚蠢
像个傻逼,爬到你背后 feeling stupid crawling back to you 我真后悔悄悄溜回你的身旁
所以,我胸前画个十字,不如死了算了 So I cross my heart, and I hope to die, 所以我以死起誓
只要让我陪你再多一夜 that i'll only stay with you one more night 只再和你共度一晚
我知道我说过千百万次 And I know i've said it a million times 我知道我已经说了千万遍
但我真的只要陪你再多一夜 But i'll only stay with you one more night 但这真的是最后一晚
耶宝贝再给我一夜 Yeah baby give me one more night 亲爱的再让我和你多待一晚
耶宝贝再给我一夜 Yeah baby give me one more night 再给我一夜回忆
耶宝贝再给我一夜 Yeah baby give me one more night 最后一夜
但是宝贝,你又要走 But baby there you go again, 但亲爱的你
你又要走,又让我爱上你啦 there you go again making me love you 又让我再次的爱上了你
我,不用大脑 Yeah I stopped using my head, 我已经不能再维持理性
不用大脑,一切放手 using my head let it all go 不能再对你放手
你,贴我身上 Got you stuck on my body, 想让你始终呆在我的身旁
贴我身上,像个刺青 on my body like a tattoo 就像枚滴血的刺青
耶耶耶耶 Yeah, yeah, yeah, yeah 耶~
所以,我胸前画个十字 So I cross my heart, 我双手交叉
死了算了 and I hope to die, 以我的生命起誓
只要让我陪你再多一夜 that i'll only stay with you one more night 这将会是你我共处的最后一夜
我知道我说过千百万次 And I know i've said it a million times 我知道这句话我已经说了千万遍
但我真的只要陪你再多一夜 But i'll only stay with you one more night 但我只想与你多待这最后一夜
耶宝贝再给我一夜 (yeah baby give me one more night) 最后一夜
所以,我胸前画个十字,不如死了算了 So I cross my heart, and I hope to die, 所以我用我的生命起誓
只要让我陪你再多一夜 that i'll only stay with you one more night 这真的将是最后一夜
我知道我说过千百万次 And I know i've said it a million times 我知道这句话我已经说了千万遍
但我真的只要陪你再多一夜 But i'll only stay with you one more night 但我此刻只想与你共度今夜时光

官方的说明上不去了 http://docs.typecho.org/develop/acl, 这儿转载官方说明如下:

在Typecho中分别设置了5个等级的权限供多个用户共用一个博客。他们的权限从高到低分别是:管理员(administrator), 编辑(editor), 贡献者(contributor), 关注者(subscriber), 访问者(visitor).其权限设置与wordpress有一些相同之处,但是扩展方法不尽相同。

权限名称 管理员 编辑 贡献者 关注者 访问者
代号 administrator editor contributor subscriber visitor
等级1) 0 1 2 3 4
阅读
进入控制台 ×
修改自己的档案信息 ×
撰写文章 √2) × ×
管理文章 √3) × ×
撰写页面 × × ×
管理页面 × × ×
上传文件 √4) × ×
管理文件 √5) × ×
管理评论 × × ×
管理分类和标签 × × ×
管理链接 × × × ×
管理用户 × × × ×
管理插件 × × × ×
调整外观 × × × ×
基本设置 × × × ×
评论设置 × × × ×
阅读设置 × × × ×
撰写习惯设置 × ×

开发人员接口

对用户的权限操作以及用户信息获取,我们都封装在了Widget_User组件中。开发人员可以通过调用此组件获取相关信息。

方法名称 描述 参数
login 登录用户 * $uid(int) - 用户ID
  1. 数字越小权限越高
  2. 审核后发布
  3. , 5) 仅限于自己
  4. 受限

只知非黑即白的年轻人喜欢说话,他们觉得世界和自己一样单纯;只知流量为王的自媒体喜欢说话,他们觉得世界处处都能把流量变现;剩下的我们知道世界善恶相杂、并不易分开对错,所以不爱说话,所以,我们是沉默的大多数。😷

知乎:有哪些好用的管理家庭物品的应用(收纳管理)?

名称 平台 离线使用 收纳物品 生产日期、保质期 搭配硬件 备注
电子收纳专家 Android - - - - 可以盒子套盒子。Android10以后不能使用
收哪儿 - - - - - -
唯物主艺 - - - - - -
小鱼收纳 - - - - 二维码标签、收纳盒 -
桃桃收纳(收纳·家) - - - - 二维码标签、收纳盒 -
晒书房 iOS、Android - 书籍 - - 豆瓣导入
我的衣橱 iOS - - - - 可拍照,淘宝购买记录导入
美容护肤品管理器 iOS - - 批代码导入 - -
过期日 - - 食品 - -
云收纳 微信小程序 - - - - -
我的物品 iOS - - - - -
家里有什么 微信小程序 - - - -
存存 - - - - - -
西瓜冰箱 - - - - - -
收纳盒子 iOS - - - - -
Sortly iOS - - - - 物品数量多要收费

风险

  • 法律风险: @晒书房 在2021-7-23发布微博称将于2021-7-30停止服务,出于个人兴趣至今已经服务9年多,微博粉丝40167,看起来似乎是监管所致。物品、书籍拥有即有合法非法之分
  • 展示风险: 物品近乎于个人隐私。可以从物品的拥有判断出此人的兴趣爱好等。故不宜将所有物品直接展示。
  • 交易风险: 如果有人借助此平台进行非法交易,如贩卖毒品该怎么办?交易中涉及钱财交换,如何相互信任?所以不宜通过此平台直接交易,而宜导流至其他成熟平台如闲鱼。但这样做会大大增加用户交易付出的精力和时间成本,导致交易流动性减弱。

昨天东京奥运开幕式,下班后看到CCTV1直播,断断续续看了些。今天就在B站和微信上发现大量自媒体说东京奥运如何阴间,标题都是这样的:
网易首页 > 网易号 > 正文 日本鬼片?开幕式画面太惊悚,贞子既视感,网友:家长陪同观看 2021-07-23 20:14:38 来源: 梦与体育

B站 黛玮爸爸:东京奥运会开幕式为何像恐怖片一般,如此阴间—你是不是也看得一头雾水?
配了下面这些截图

大量自媒体用了这个图

另外的图来自于东京奥运宣传舞台剧《Wassai》

陈老师的教学鼠标中键工具列 提取码: ukkc

视图

平移 右键(3D视图为Shift+右键), 上下左右键
缩放 中键|Ctrl+右键
旋转 shift+ctrl+右键(3D视图为右键)
放大/还原视图 双击视图名,如Top
切换视图 放大后点击下方视图标签

控制点

平移 Alt+上下左右

按钮编辑

移动/删除按钮 Shift+左键拖动
复制按钮 Ctrl+左键拖动
编辑按钮 Shift+右键点击

工具列(按钮列)

工具列可以很灵活的编辑/保存为文件/从文件导入

操作轴

需要把状态栏的操作轴点击加黑打开
平移/旋转/缩放: 鼠标左键可以直接做按轴平移(箭头轴)/按面平移(田字)/旋转(旋转弧)/缩放(缩放杆), 按住shift+左键缩放,可以同时在3轴缩放
线挤出面: 拉伸箭头轴上的原点, 或Ctrl拉伸箭头;
复制: 按住Alt拉伸箭头,或拉伸旋转弧
调节缩放杆长度: 按住ctrl拉伸调节.
操作轴右键菜单(白点菜单)

  • 定位操作轴: 可以将操作轴中心重新定位到其他位置
  • 重置操作轴: 将操作轴重置到默认位置;
  • 自动重置操作轴: 每次操作后自动将操作轴回正.
  • 拖拽强度: 减小拖拽强度可以更精细的拖拽

显示模式

右键视图模式切换, 一般用着色模式. 着色模式可以修改所有物体的显示方式.

常用快捷键

切换显示网格 F7
框选放大 Ctrl+W
物体充满窗口 Ctrl+Shift+E
复制物体 鼠标左键拖动物体时, 点一下Alt就变成复制了
多选物体 Shift+左键增加, Ctrl+左键减少
空格=回车=右键
锁定当前画线的方向 Tab
打开或关闭控制点 F10/F11

选取方式

左向右框选: 需全部框中
右向左框选: 只需部分框中
Alt+左向右框选: 不会点中鼠标开始位置的物体(强制由点选变为框选)
使用选取Tab页选择, 实现很多特殊选择, 如选取所有点/曲线/曲面等
超级移动: 选择体中的一个点/线/面(穿透选择, 即穿透体选择面) Ctrl+Shift+左键,并能单独控制其位置形态

图层

图层移动 选中对象后, 在下方状态栏点选切换图层即可

贝塞尔曲线

控制点数=阶数+1
1阶贝塞尔: 直线
2阶贝塞尔: 抛物线

放样

loft

记录建构历史

建构体中使用的点线面,在建构完成后还能通过修改其位置来改变建构后的体的形态

在工作平面为xy时候画垂直线

按住ctrl点击一个点

Nurbs: 非均匀有理B样条, 曲面, 曲线, 参数化
Polygon: 多边形, 网格
Subdivision: 细分, SubD

参数化建模软件: Rhino3D \ UG \ ProE \ SolidWorks \ FreeCAD, 文件格式: IGES \ STEP, 建筑模型文件格式: IFC
多边形建模: Blender , 文件: OBJ \ STL \ ABC \ DAE

Rhino7以Nurbs起家,现在是完整支持Nurbs/Polygon/Subdivision. 这三者什么区别? 这儿有一篇2012年的文章讲述了区别.

我来理解,Nurbs完美的描述了曲面, 实现了类似于矢量图无限放大不会变形的效果, Polygon的所有面都是以平面多边形组成, 像位图一样放大后就失去了细节, 然而却可以描述非常复杂的外形. SubD则是将网格边缘在实时显示时圆角(平滑)化而不需要去画对应的曲线,以较少的网格实现曲面平滑的效果.