<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Simon</title>
	<atom:link href="https://www.luisimon.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.luisimon.com</link>
	<description>blog</description>
	<lastBuildDate>Sun, 22 Jun 2025 11:52:10 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>

<image>
	<url>https://www.luisimon.com/wp-content/uploads/2019/09/cbrks-x5t4i-001.ico</url>
	<title>Simon</title>
	<link>https://www.luisimon.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ubuntu 24 强制设置root用户为简单密码</title>
		<link>https://www.luisimon.com/2025/06/22/949/</link>
		
		<dc:creator><![CDATA[Alan]]></dc:creator>
		<pubDate>Sun, 22 Jun 2025 11:52:09 +0000</pubDate>
				<category><![CDATA[Linux日记]]></category>
		<category><![CDATA[随手记录]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=949</guid>

					<description><![CDATA[以下脚本由ChatGPT生成，只要修改[NEW_PASSWORD]变量即可修改root用户密码为任意值。 使用 ... <a title="Ubuntu 24 强制设置root用户为简单密码" class="read-more" href="https://www.luisimon.com/2025/06/22/949/" aria-label="继续阅读Ubuntu 24 强制设置root用户为简单密码">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p>以下脚本由ChatGPT生成，只要修改[<strong>NEW_PASSWORD</strong>]变量即可修改root用户密码为任意值。</p>



<p></p>



<pre class="wp-block-code"><code>

#!/bin/bash

# 你想设置的密码
NEW_PASSWORD="111111"

# 检查是否为 root 运行
if &#91;&#91; "$EUID" -ne 0 ]]; then
  echo "请以 root 身份运行本脚本（sudo）"
  exit 1
fi

# 确保 root 用户未被锁定
passwd -S root | grep -q 'L' &amp;&amp; {
  echo "解锁 root 用户..."
  passwd -u root
}

# 设置 root 密码（绕过复杂度检查）
echo "root:$NEW_PASSWORD" | chpasswd &amp;&amp; {
  echo "✅ 成功将 root 密码设置为 '$NEW_PASSWORD'"
} || {
  echo "❌ 设置密码失败"
  exit 1
}
</code></pre>



<p>使用比如vim编辑器新建一个脚本文件。</p>



<p>如果没有vim，请执行以下安装命令</p>



<pre class="wp-block-code"><code>#系统中无vim时执行
apt install vim</code></pre>



<pre class="wp-block-code"><code>vim set-root-simple-password.sh
# 然后按键盘上&#91;Insert]按键或者&#91;i]按键
# Shift + Insert，粘贴上面的脚本
# 按&#91;Esc]推出输入状态，在按&#91;:]冒号（注意是英文符号），终端窗口左下角会显示冒号，然后输入wq，回车即可保存。
# 下面命令给予脚本执行权限，并且执行脚本
chmod +a set-root-simple-password.sh &amp; ./set-root-simple-password.sh</code></pre>



<p><strong>注意Ubuntu桌面不允许使用root登录，所以切换到root登录时，无论如何都提示密码错误！</strong></p>



<p>允许root登录桌面另有办法，请自行AI。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>N型MOSFET电荷泵驱动电路</title>
		<link>https://www.luisimon.com/2024/11/09/923/</link>
		
		<dc:creator><![CDATA[Alan]]></dc:creator>
		<pubDate>Sat, 09 Nov 2024 15:03:14 +0000</pubDate>
				<category><![CDATA[电子电路]]></category>
		<category><![CDATA[MOSFETT]]></category>
		<category><![CDATA[T12]]></category>
		<category><![CDATA[电荷泵]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=923</guid>

					<description><![CDATA[前言：众所周知，MOSFET为“电压驱动”型器件，以N-MOS为例，VGS电压与RDS(on)成反比。即驱动N ... <a title="N型MOSFET电荷泵驱动电路" class="read-more" href="https://www.luisimon.com/2024/11/09/923/" aria-label="继续阅读N型MOSFET电荷泵驱动电路">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p><strong>前言：众所周知，MOSFET为“电压驱动”型器件，以N-MOS为例，V<sub>GS</sub>电压与R<sub>DS(on)</sub>成反比。即驱动N-MOS时<strong>V<sub>GS</sub></strong>尽可能最大。</strong></p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="534" height="287" src="https://www.luisimon.com/wp-content/uploads/2024/10/ChargePump.jpg" alt="" class="wp-image-925" srcset="https://www.luisimon.com/wp-content/uploads/2024/10/ChargePump.jpg 534w, https://www.luisimon.com/wp-content/uploads/2024/10/ChargePump-300x161.jpg 300w" sizes="(max-width: 534px) 100vw, 534px" /><figcaption class="wp-element-caption">N-MOSFET &amp; Charge Pump（测试电路，电阻R13不是必须的）</figcaption></figure></div>


<p>首先讲清楚此电路的具体是用于控制T12烙铁，其中P+是接T12烙铁正极。</p>



<p>电荷泵组成器件分别是：D2、D3、C4，此三个器件构成的电荷泵可以使N沟道的MOS作为上管使用。</p>



<p>即是Q2导通，MOS关断时，电源通过D3、C4以及烙铁构成回路并在此时为C4充电至电源电压。在Q2关断时，MOS导通，由于MOS导通后电阻极小（T12烙铁≈8Ω），使得B点电压迅速抬升（接近电源电压），C4在此时发挥作用，由于C4负极在B点，C4电压满足MOS的V<sub>GS</sub>最小要求，向G极提供电流，MOS稳定导通。</p>



<p>解释：D3的作用使防止MOS导通时，C4通过MOS流回B点而放电。D2主要起到钳位作用保护MOS的G极（V<sub>GS</sub>最高耐压20V）。</p>



<p class="has-text-color has-link-color wp-elements-1a88632bc5a1b55ce5a7b6597637164a" style="color:#919ca5"><em>其他：A、B电压约为18V，A对地电压约为 电源电压+18V。</em></p>



<p><a href="https://www.luisimon.com/goto/litp" rel="nofollow" data-type="link" data-id="https://github.com/wagiminator/ATmega-Soldering-Station">T12项目参考自德国网友GitHub</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>WinSCP和SecureCRT开启心跳，保持连接</title>
		<link>https://www.luisimon.com/2024/09/08/912/</link>
		
		<dc:creator><![CDATA[Simon]]></dc:creator>
		<pubDate>Sun, 08 Sep 2024 05:08:19 +0000</pubDate>
				<category><![CDATA[Linux日记]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Putty]]></category>
		<category><![CDATA[SecureCRT]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[WinSCP]]></category>
		<category><![CDATA[心跳]]></category>
		<category><![CDATA[断线]]></category>
		<category><![CDATA[断连]]></category>
		<category><![CDATA[服务器]]></category>
		<category><![CDATA[运维]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=912</guid>

					<description><![CDATA[WinSCP和SecureCRT是服务器运维人员常用的两个软件工具，用于连接登录Linux服务器。但是，在连接 ... <a title="WinSCP和SecureCRT开启心跳，保持连接" class="read-more" href="https://www.luisimon.com/2024/09/08/912/" aria-label="继续阅读WinSCP和SecureCRT开启心跳，保持连接">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p>WinSCP和SecureCRT是服务器运维人员常用的两个软件工具，用于连接登录Linux服务器。但是，在连接公网的服务器时，如果比较长时间不操作，电信运营商会丢弃长时间没有没有数据传输的TCP连接，这样会导致我们需要频繁重新登录服务器。</p>



<p></p>



<p class="has-medium-font-size"><strong>WinSCP设置心跳</strong></p>



<p>在登录窗口选择你要设置心跳的服务器，点击【编辑】</p>



<figure class="wp-block-image size-full"><img decoding="async" width="640" height="430" src="https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123847.png" alt="" class="wp-image-913" srcset="https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123847.png 640w, https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123847-300x202.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p>然后点击【高级】</p>



<figure class="wp-block-image size-full"><img decoding="async" width="640" height="430" src="https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123902.png" alt="" class="wp-image-914" srcset="https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123902.png 640w, https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123902-300x202.png 300w" sizes="(max-width: 640px) 100vw, 640px" /></figure>



<p>选择【连接】设置，如下图开启【Keeplives】</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="567" height="461" src="https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123908.png" alt="" class="wp-image-915" style="width:647px;height:auto" srcset="https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123908.png 567w, https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908123908-300x244.png 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p></p>



<p class="has-medium-font-size"><strong>SecureCRT设置心跳</strong></p>



<p>选择要设置心跳的服务器，右键菜单点击【Properties】(属性)</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="376" height="354" src="https://www.luisimon.com/wp-content/uploads/2024/09/Screenshot-2024-09-08-125053.png" alt="" class="wp-image-916" style="width:644px;height:auto" srcset="https://www.luisimon.com/wp-content/uploads/2024/09/Screenshot-2024-09-08-125053.png 376w, https://www.luisimon.com/wp-content/uploads/2024/09/Screenshot-2024-09-08-125053-300x282.png 300w" sizes="auto, (max-width: 376px) 100vw, 376px" /></figure>



<p>选择【Terminal】(终端)设置，开启【Send Protocol NO-OP】，时间间隔一般设置30秒</p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" width="543" height="512" src="https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908125711.png" alt="" class="wp-image-917" style="width:659px;height:auto" srcset="https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908125711.png 543w, https://www.luisimon.com/wp-content/uploads/2024/09/微信图片_20240908125711-300x283.png 300w" sizes="auto, (max-width: 543px) 100vw, 543px" /></figure>



<p></p>



<p>这样设置后就可以很大程度避免断线的问题啦</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>奥克斯(AUX)风扇遥控器协议</title>
		<link>https://www.luisimon.com/2024/09/01/897/</link>
		
		<dc:creator><![CDATA[Alan]]></dc:creator>
		<pubDate>Sun, 01 Sep 2024 06:04:26 +0000</pubDate>
				<category><![CDATA[单片机]]></category>
		<category><![CDATA[編程三兩事]]></category>
		<category><![CDATA[红外]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=897</guid>

					<description><![CDATA[分析可知，奥克斯遥控器应该是私有协议不同于NEC协议。 由逻辑分析仪图可以看出，每个位的信号周期由400us和 ... <a title="奥克斯(AUX)风扇遥控器协议" class="read-more" href="https://www.luisimon.com/2024/09/01/897/" aria-label="继续阅读奥克斯(AUX)风扇遥控器协议">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p>分析可知，奥克斯遥控器应该是私有协议不同于NEC协议。</p>



<p>由逻辑分析仪图可以看出，每个位的信号周期由400us和1200us组成。根据抓取到遥控器所有按键信号数据，分析前面4bit是固定的，后8bit可以理解位数据。注意：由于此协议无固定结束信号，所以最后1bit在分析仪上看并不完整，只需要判断低电平时长即可。</p>



<p>命令需要发送至少2次，每次间隔8ms。</p>



<p>笔者定义：</p>



<ul class="wp-block-list">
<li>1.2ms载波（低电平）+400us空闲（高电平）为“1”。</li>
</ul>



<ul class="wp-block-list">
<li>400us载波（低电平）+1.2ms空闲（高电平）为“0”。</li>
</ul>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="197" src="https://www.luisimon.com/wp-content/uploads/2024/09/AUX分析-1024x197.jpg" alt="" class="wp-image-899" srcset="https://www.luisimon.com/wp-content/uploads/2024/09/AUX分析-1024x197.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/09/AUX分析-300x58.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/09/AUX分析-768x148.jpg 768w, https://www.luisimon.com/wp-content/uploads/2024/09/AUX分析.jpg 1162w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>购买打印机后的感受想告诉你的注意事项</title>
		<link>https://www.luisimon.com/2024/07/26/857/</link>
		
		<dc:creator><![CDATA[Simon]]></dc:creator>
		<pubDate>Fri, 26 Jul 2024 14:01:46 +0000</pubDate>
				<category><![CDATA[未分类]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=857</guid>

					<description><![CDATA[打印机在大约十年前对于个人（家庭）来说还是个稀罕的东西。大家对打印机还是“办公室” “打印店”的印象。但随着今 ... <a title="购买打印机后的感受想告诉你的注意事项" class="read-more" href="https://www.luisimon.com/2024/07/26/857/" aria-label="继续阅读购买打印机后的感受想告诉你的注意事项">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p>打印机在大约十年前对于个人（家庭）来说还是个稀罕的东西。大家对打印机还是“办公室” “打印店”的印象。但随着今年来个人家庭对打印需求的增加和打印机价格的降低，打印机逐渐走进个人家庭。</p>



<p class="has-medium-font-size"><strong>进纸</strong></p>



<p>前进纸纸张需要转一个弯，这意味着纸张会弯曲，某些也比较硬的时候可能会打印，也就是打印机的适用范围变窄了。</p>



<p class="has-medium-font-size"><strong>相片纸压痕</strong></p>



<p>相片纸打印时可能出现送纸机构齿轮的压印（不算特别明显，毕竟不是专业的相片打印机）。这个问题你可能需要在网上向网友咨询一下你的意向机器的情况，这可能跟相纸厚度方面也有关系。我个人的是佳能G3800墨仓打印机。不过其他品牌也可能有类似的问题。</p>



<p class="has-medium-font-size"><strong>无边距</strong></p>



<p>似乎只要支持A4（打印机最大支持尺寸）的无边距，那么这个范围下的其他尺寸理论上也可以支持，不过最好咨询一下客服。</p>



<p class="has-medium-font-size"><strong>耗材价格</strong></p>



<p>关于耗材，主要是说墨水。一般建议购买墨仓式的打印机，后期直接购买一瓶瓶的墨水这样成本比较低。个人还是建议使用原厂墨水。特别是还在保修期内的机器，因为如果你使用了第三方的墨水，厂家是能检测出来的，你的机器将会失去保修。</p>



<p class="has-medium-font-size"><strong>墨水防水性</strong></p>



<p>所谓防水，指的是打印出来的文档不会因为纸张沾了水导致字体化开和渗透到反面。一般来说，防水墨水属于颜料墨水，不防水的属于染料墨水。通常家用的入门机器是只有黑色墨水是防水的（相对价格而言感觉家用也是够的）。</p>



<p class="has-medium-font-size"><strong>打印速度</strong></p>



<p>通常喷墨打印机打印速度不如激光打印机，如果你打印需求不大，大部分机器的速度还是没有问题的。打印<strong>7寸</strong>照片通常需要50-60秒，普通文本因为不是满版所以速度通常1分钟有20张左右的速度。具体机器也有差异。</p>



<p class="has-medium-font-size"><strong>屏幕显示</strong></p>



<p>配备屏幕的机器通常比较贵，屏幕主要是方便直接操作。如果支持APP（手机）操作，那么可以忽视屏幕，省下钱来。</p>



<p class="has-medium-font-size"><strong>喷墨技术（微压电/热发泡）</strong></p>



<p><strong>微压电</strong>技术。这个是爱普生的专利技术，代表厂家有<strong>爱普生</strong>和<strong>兄弟</strong>。利用压电陶瓷的压电效应来挤压墨水</p>



<p><strong>热发泡</strong>技术。佳能公司的专利技术。代表厂家有<strong>佳能</strong>和<strong>惠普</strong>。技术实现，在喷头里设置加热体，浸泡在墨水，瞬间将周围的墨水加热到100°C，水汽膨胀将墨水喷射出去。</p>



<p>微压电，喷头价格相对较高（是热发泡2倍左右），使用寿命较长，爱普生宣称喷头不是耗材，无需更换，打印分辨率相比热发泡稍高。</p>



<p>热发泡，价格相对较低，堵头后维修或者更换方便，寿命相对微压电较短（从佳能保修政策猜测是30000张寿命）。</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>解决MSI微星主板开启WOL远程唤醒无效</title>
		<link>https://www.luisimon.com/2024/07/09/860/</link>
		
		<dc:creator><![CDATA[Simon]]></dc:creator>
		<pubDate>Tue, 09 Jul 2024 04:31:11 +0000</pubDate>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[BIOS]]></category>
		<category><![CDATA[MSI]]></category>
		<category><![CDATA[Wake On Lan]]></category>
		<category><![CDATA[WOL]]></category>
		<category><![CDATA[主板]]></category>
		<category><![CDATA[微星]]></category>
		<category><![CDATA[远程开机]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=860</guid>

					<description><![CDATA[今天升级了电脑的微星主板BIOS后发现在[唤醒事件设置]里启用了[PCIe设备唤醒]依然无效。 我找到原因了， ... <a title="解决MSI微星主板开启WOL远程唤醒无效" class="read-more" href="https://www.luisimon.com/2024/07/09/860/" aria-label="继续阅读解决MSI微星主板开启WOL远程唤醒无效">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p>今天升级了电脑的微星主板BIOS后发现在<strong>[唤醒事件设置]</strong>里启用了<strong>[PCIe设备唤醒]</strong>依然无效。</p>



<p>我找到原因了，下面来讲一下。</p>



<p><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">关键是在于<strong>开启【PCIE设备唤醒】</strong>和<strong>关闭【ErP Ready】</strong></mark></p>



<ul class="wp-block-list">
<li>开机后一直按<strong>[Del]</strong>键进入BIOS，如下图，找到 <strong>[SETTINGS]</strong> -> <strong>[高级]</strong></li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_00.jpg" alt="" class="wp-image-867" srcset="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_00.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_00-300x225.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_00-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>进入 <strong>[唤醒事件设置]</strong></li>
</ul>



<ol class="wp-block-list"></ol>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" data-id="868" src="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_01.jpg" alt="" class="wp-image-868" srcset="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_01.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_01-300x225.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_01-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
</figure>



<ul class="wp-block-list">
<li>选择<strong> [PCIE设备唤醒]</strong> -> <strong>[允许]</strong></li>
</ul>



<p><strong>为什么是PCIE设备呢？</strong>因为WOL远程唤醒是通过板载<strong>以太网卡</strong>来实现的，网卡虽然不是直接插在PCIE插槽上，但实际上线路使用的是PCIE的通道。所以<strong>网卡属于PCIE设备</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_03.jpg" alt="" class="wp-image-869" srcset="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_03.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_03-300x225.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_03-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>返回 <strong>[高级]</strong> 菜单，选择 <strong>[电源管理设置]</strong></li>
</ul>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_04.jpg" alt="" class="wp-image-870" srcset="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_04.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_04-300x225.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_04-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>选择 <strong>[ErP Ready] </strong>-> <strong>[禁止]</strong></li>
</ul>



<p>我猜测是禁止了节能模式，网卡在关机后才能正常供电。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1024" height="768" src="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_06.jpg" alt="" class="wp-image-871" srcset="https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_06.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_06-300x225.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/07/MSI_SnapShot_06-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>最后 <strong>[保存并退出]</strong> 设置，或者直接按 <strong>[F10]</strong> 保存</li>
</ul>



<p><strong>测试远程开机成功！</strong></p>



<p><em>后记</em></p>



<p><em>你的主板界面上有所区别，不过基本就是按照这个菜单模式，可以自己找一找。</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>使用Shadowsocks+v2aryPlug+CDN搭建代理服务器，Cloudflare复活梯子</title>
		<link>https://www.luisimon.com/2024/06/30/835/</link>
		
		<dc:creator><![CDATA[Alan]]></dc:creator>
		<pubDate>Sun, 30 Jun 2024 08:34:35 +0000</pubDate>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[cdn]]></category>
		<category><![CDATA[cloudflare]]></category>
		<category><![CDATA[ss]]></category>
		<category><![CDATA[v2ary]]></category>
		<category><![CDATA[VPS]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=835</guid>

					<description><![CDATA[前言：翻墙（梯子）VPS被墙复活，隐藏自己的VPS，优化速度慢便宜VPS的线路速度。 前期准备工作： 1、域名 ... <a title="使用Shadowsocks+v2aryPlug+CDN搭建代理服务器，Cloudflare复活梯子" class="read-more" href="https://www.luisimon.com/2024/06/30/835/" aria-label="继续阅读使用Shadowsocks+v2aryPlug+CDN搭建代理服务器，Cloudflare复活梯子">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p>前言：翻墙（梯子）VPS被墙复活，隐藏自己的VPS，优化速度慢便宜VPS的线路速度。</p>



<p><strong>前期准备工作：</strong></p>



<p>1、域名、海外虚拟主机（VPS 云主机）<em>注意：两者均需要花钱</em></p>



<p>2、准备账号：Cloudflare+海外vps销售商网站账号(用于购买)+godaddy(个人推荐)</p>



<p><strong>注意事项：</strong></p>



<p>域名：选购域名原则有三个。①不要在境内购买 ②不要选购cn这类需要备案的顶级域名 ③挑顶级域名购买即可。</p>



<p>VPS：对于主机，这里只提供选购建议。首先主要需要是海外的，这些地区访问互联网不受限制，通常建议购买机房在美国（美国对东半球光纤出口主要在洛杉矶），如果其他地区有线路优化，也可以选港、台、日以及新加坡等地区。这里要注意，别购买国内商家（例如：阿里云 腾讯云）的海外机房，相信不言自知。<em><strong>这里直接选美国机房即可。</strong></em></p>



<p><strong>看到这里，如果你有预算，想好了，就可以去把上面的所有东西准备好，再回来部署你的机器了</strong></p>



<p class="has-text-align-center"><strong>回见</strong></p>



<h2 class="wp-block-heading"><strong>域名配置与证书获取</strong></h2>



<p>流程简述：①我们先要登录CloudFlare，添加域名并获取CloudFlare的域名服务器地址 ②到购买的域名服务商那里把你的域名服务器地址改为刚刚从CloudFlare获得的地址 ③到CloudFlare获取SSL证书</p>



<p><strong>添加域名并获取CloudFlare域名服务器地址</strong></p>



<p>我们先登录你的CloudFlare账号，然后添加你刚刚购买的域名。添加成功后，单击你的域名，点选下方图①的“DNS”功能，这时你可以看到你的域名所有解析记录的一个列表，在列表的下方，找到图②的Cloudflare nameservers，把红框中的两个地址复制下来。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" width="1024" height="121" src="https://www.luisimon.com/wp-content/uploads/2020/04/cficon-1024x121.jpg" alt="" class="wp-image-277" style="width:715px;height:84px" srcset="https://www.luisimon.com/wp-content/uploads/2020/04/cficon-1024x121.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2020/04/cficon-300x35.jpg 300w, https://www.luisimon.com/wp-content/uploads/2020/04/cficon-768x91.jpg 768w, https://www.luisimon.com/wp-content/uploads/2020/04/cficon.jpg 1041w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">图① CloudFlare功能列表</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="285" src="https://www.luisimon.com/wp-content/uploads/2020/04/ns-1024x285.jpg" alt="" class="wp-image-279" srcset="https://www.luisimon.com/wp-content/uploads/2020/04/ns-1024x285.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2020/04/ns-300x84.jpg 300w, https://www.luisimon.com/wp-content/uploads/2020/04/ns-768x214.jpg 768w, https://www.luisimon.com/wp-content/uploads/2020/04/ns.jpg 1031w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption">图② CloudFlare域名服务器地址</figcaption></figure>



<p><strong>设置新域名服务器地址</strong></p>



<p>到刚刚购买域名的域名商的网站上，找到“DNS管理”，并且设置成上面CloudFlare的域名服务器地址，以使CloudFlare接管域名解析的权限。下面以godaddy为例：单击我们的账户名，点击“我的产品（My Product）”，这时会列出你账户下所有的域名，在你对应域名的后面，如图③，单击“DNS”，这是会看到这个域名的所有解析记录，在其下方即是“ 域名服务器 ”，单击更改，并填入CloudFlare的域名服务器地址保存即可。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="360" height="425" src="https://www.luisimon.com/wp-content/uploads/2020/04/微信截图_20200406222310.jpg" alt="" class="wp-image-280" srcset="https://www.luisimon.com/wp-content/uploads/2020/04/微信截图_20200406222310.jpg 360w, https://www.luisimon.com/wp-content/uploads/2020/04/微信截图_20200406222310-254x300.jpg 254w" sizes="auto, (max-width: 360px) 100vw, 360px" /><figcaption class="wp-element-caption">图③ 设置域名服务器</figcaption></figure></div>


<p><strong>获取CloudFlare的免费证书</strong></p>



<p>在获取证书之前，我们先来完成一下其他设置。先在“DNS”下，把图标点亮，启用对应记录的CDN加速，以及在“SSL/TLS”下设置加密模式为“Full”，如下两张图片</p>


<div class="wp-block-image is-resized">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="302" height="43" src="https://www.luisimon.com/wp-content/uploads/2020/04/无标题.jpg" alt="" class="wp-image-281" srcset="https://www.luisimon.com/wp-content/uploads/2020/04/无标题.jpg 302w, https://www.luisimon.com/wp-content/uploads/2020/04/无标题-300x43.jpg 300w" sizes="auto, (max-width: 302px) 100vw, 302px" /><figcaption class="wp-element-caption">图④ 启用CDN</figcaption></figure></div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="669" src="https://www.luisimon.com/wp-content/uploads/2020/04/20200406222956-1024x669.jpg" alt="" class="wp-image-282" srcset="https://www.luisimon.com/wp-content/uploads/2020/04/20200406222956-1024x669.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2020/04/20200406222956-300x196.jpg 300w, https://www.luisimon.com/wp-content/uploads/2020/04/20200406222956-768x502.jpg 768w, https://www.luisimon.com/wp-content/uploads/2020/04/20200406222956.jpg 1049w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption class="wp-element-caption"> 图⑤ SSL/TLS模式 </figcaption></figure></div>


<p>完成以上，我们正式进行证书的生成，还是在“SSL/TLS”下，点击“Origin Server”，单击蓝色按钮进行证书的生成，在第一步我们只需把底部的有效期改为“1 year”即可（更改是为安全起见，不改亦可），下一步，这时我们可以看到CloudFlare给我生成证书的公钥和私钥了，我们把这“Origin Certificate（公钥）”和“Private Key（私钥）”两个文本框中的文本复制下来，并分别保存成“公钥.txt”和“私钥.txt”两个文件。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1022" height="434" src="https://www.luisimon.com/wp-content/uploads/2020/04/20200406223031.png" alt="" class="wp-image-287" srcset="https://www.luisimon.com/wp-content/uploads/2020/04/20200406223031.png 1022w, https://www.luisimon.com/wp-content/uploads/2020/04/20200406223031-300x127.png 300w, https://www.luisimon.com/wp-content/uploads/2020/04/20200406223031-768x326.png 768w" sizes="auto, (max-width: 1022px) 100vw, 1022px" /><figcaption class="wp-element-caption">图⑥ 证书生成</figcaption></figure>



<h2 class="wp-block-heading"><strong>VPS部署：</strong></h2>



<pre class="wp-block-verse"><em><strong>首先声明，以下所有创建和下载的文件我们都将存放在 “/root”目录下<br>查看当前所处目录命令：pwd<br>转到root目录命令：cd /root</strong></em></pre>



<p>机器最低硬件要求</p>



<ul class="wp-block-list">
<li>CPU：单核</li>



<li>内存：512 MB</li>



<li>硬盘：20GB</li>



<li>流量：300GB</li>
</ul>



<p>内存是必须保证的，否则你的代理服务容易被系统结束，导致频繁登录主机启动代理服务。</p>



<p>购买VPS时，在选好对应配置后，一般还会让你选择主机将要安装的操作系统以及机房位置（根据不同商家，有些可能在套餐中就指定了机房位置）。这里推荐安装CentOS7及以上版本的Linux，机房则是选择美国即可，优选洛杉矶。</p>



<p>在选购完成后，需要一小段时间等待系统初始化VPS。请在初始化完成后，在VPS管理界面获取root密码以及ip地址。具体如何获取，每个VPS商家的管理界面设计不同，请你细心寻找。</p>



<p><strong>登录VPS</strong></p>



<p>在拿到这些资料后，你需要准备一个SSH远程连接工具（<a rel="noreferrer noopener" aria-label="PuTTY（在新窗口打开）" href="https://www.luisimon.com/goto/1ei1" rel="nofollow" target="_blank">PuTTY</a>），当然如果你是Windows10用户，那你可以使用快捷键（Win+X）单击“Windows PowerShell”，打开后输入命令（注意需要英文字符）：ssh root@[你VPS的IP地址]，然后键入回车，接下来你需要输入“yes”，确认使用来自VPS的公钥。再然后输入刚才从管理界面获得root密码即可， 在Windows PowerShell中，鼠标右键为粘贴文本，注意这里输入密码是不会在显示任何东西出来，但是确实是输入了，输入完成后，键入回车即可，如果你的密码正确，此时就已经登录远程VPS了。<a rel="noreferrer noopener" aria-label="通过PuTTY登录VPS教程（在新窗口打开）" href="https://www.luisimon.com/goto/fi1p" rel="nofollow" target="_blank">通过PuTTY登录VPS教程</a></p>



<pre class="wp-block-code"><code>ssh root@192.168.1.111</code></pre>



<p><strong>检查VPS</strong></p>



<p>登录vps后，分别输入 “wget”，“ vim”，“tar”并回车，如果均没有出现类似“-bash: wget: command not found ”即可直接跳到<strong>服务程序安装</strong>。否则我们就要安装对应的功能。</p>



<p>wget 用于下载web上的文件，安装命令如下：</p>



<pre class="wp-block-code"><code>yum install wget -y</code></pre>



<p>vim 用于编辑文本 ，安装命令如下： </p>



<pre class="wp-block-code"><code>yum install vim -y</code></pre>



<p> tar 用于解压压缩包 ，安装命令如下： </p>



<pre class="wp-block-code"><code>yum install tar -y</code></pre>



<p><strong>下载代理服务程序</strong></p>



<p>shadowsocks：我们通过在GitHub上提供的<a rel="noreferrer noopener" aria-label="（在新窗口打开）" href="https://www.luisimon.com/goto/nf3e" rel="nofollow" target="_blank">一</a><a rel="noreferrer noopener" aria-label="键安装脚本（在新窗口打开）" href="https://www.luisimon.com/goto/85xd" rel="nofollow" target="_blank">键安装脚本</a>进行安装。 <a rel="noreferrer noopener" aria-label="项目地址（在新窗口打开）" href="https://www.luisimon.com/goto/nf3e" rel="nofollow" target="_blank">项目地址</a></p>



<p>v2aryPlug插件：<a rel="noreferrer noopener" aria-label=" 服务端插件（在新窗口打开）" href="https://www.luisimon.com/goto/s4x7" rel="nofollow" target="_blank">服务端插件</a>。 <a rel="noreferrer noopener" href="https://www.luisimon.com/goto/uc6z" rel="nofollow" target="_blank">项目地址</a>  </p>



<p>首先我们在命令行输入<strong><em>pwd</em></strong>命令，查看是否在root目录下。如果是，那在下一行应该显示 /root，否则我们应该输入以下命令：</p>



<pre class="wp-block-code"><code>cd /root/</code></pre>



<p>我们通过<em><strong>wget</strong></em>命令把上面的“一件安装脚本”和“服务端插件”下载到VPS。</p>



<p>下载命令格式：wget [文件网络地址]  </p>



<p>执行权限设置命令格式：chmod a+x [文件路径]</p>



<p>解压文件命令格式：tar -zxvf [文件路径]</p>



<p>直接复制下面两行命令到命令行窗口执行（如果下面地址失效，请到上面项目地址找对应文件）</p>



<pre class="wp-block-code"><code>wget -O shadowsocks-all.sh https://raw.githubusercontent.com/teddysun/shadowsocks_install/master/shadowsocks-all.sh &amp;&amp; chmod a+x shadowsocks-all.sh</code></pre>



<pre class="wp-block-code"><code>wget https://github.com/shadowsocks/v2ray-plugin/releases/download/v1.3.0/v2ray-plugin-linux-amd64-v1.3.0.tar.gz &amp;&amp; tar -zxvf v2ray-plugin-linux-amd64-v1.3.0.tar.gz</code></pre>



<p><strong>安装代理服务</strong></p>



<p>执行一下命令进行安装，在安装过程中我们全程敲击回车键即可。（因为在安装前的所有配置都不是我们需要的）</p>



<pre class="wp-block-code"><code>./shadowsocks-all.sh</code></pre>



<p><strong>代理服务运行与维护</strong></p>



<p>前面，我们已经在CloudFlare上生成了证书并且保存了下来。把生成的证书分别复制到VPS中，如果会使用FTP工具，可以直接在本地重命名，再使用FTP工具传到VPS中，但由于每个人电脑环境不同，保存的文件格式不一定能在Linux上正确识别，所以下面我们通过复制文本，并在VPS上创建公私钥文件，请不要担心这会很复杂，下面是文件名称：</p>



<pre class="wp-block-verse">公钥文件名称：full_chain.pem<br>私钥文件名称：private.key</pre>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<p>公钥文件创建：先在本地全选复制“公钥.txt”里面的所有文本数据，执行一下命令后，按键盘上的“i”键，在命令行底部会出现“&#8211; INSERT &#8211;”字样，表示当前是插入模式，此时我们把复制好的公钥文本数据粘贴到这里，在按键盘上的“Esc”退出编辑模式，此时命令行下方出现一个“:”，在冒号后面输入“wq”并回车，我们就完成公钥文件的创建了。</p>



<p> 私钥文件创建： 依此，用同样办法创建私钥文件。</p>



<pre class="wp-block-code"><code>vim full_chain.pem
vim private.key</code></pre>
</div></div>



<p>为了方便使用，接下来我们创建启动脚本“runSs.sh”，以及添加脚本到开机执行。</p>



<pre class="wp-block-code"><code>vim runSs.sh</code></pre>



<p>添加下方命令到“runSs.sh”中</p>



<pre class="wp-block-code"><code>#!/bin/bash
nohup ss-server -k &#91;替换为你的密码] -p 443 -m aes-256-gcm --plugin /root/v2ray-plugin_linux_amd64 --plugin-opts "server;tls;host=&#91;替换为你的域名];cert=/root/full_chain.pem;key=/root/private.key;loglevel=none" &gt; /dev/null 2&gt;&amp;1 &amp;</code></pre>



<p>执行下面命令（设置运行脚本权限，添加开机启动，开启防火墙端口(CentOS7)）</p>



<pre class="wp-block-code"><code>chmod a+x runSs.sh
echo ./root/runSs.sh &gt;&gt; /etc/rc.d/rc.local
chmod a+x /etc/rc.d/rc.local
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload</code></pre>



<p>至此服务器已经配置完成！</p>



<h2 class="wp-block-heading"><strong>客户端配置</strong></h2>



<p><strong>客户端程序下载</strong></p>



<p>shadowsocks地址：<a rel="noreferrer noopener" aria-label="客户端程序（在新窗口打开）" href="https://www.luisimon.com/goto/nodo" rel="nofollow" target="_blank">客户端程序</a>。<a rel="noreferrer noopener" aria-label="项目地址（在新窗口打开）" href="https://www.luisimon.com/goto/owlu" rel="nofollow" target="_blank">项目地址</a></p>



<p>v2ray插件地址：<a rel="noreferrer noopener" aria-label="插件（在新窗口打开）" href="https://www.luisimon.com/goto/j5it" rel="nofollow" target="_blank">插件</a>。<a href="https://www.luisimon.com/goto/tsog" target="_blank" rel="nofollow noreferrer noopener" aria-label="项目地址（在新窗口打开）">项目地址</a></p>



<p><strong>客户端配置</strong></p>



<p>把v2ray插件解压到Shadowsocks目录下 。</p>



<p>如图⑦，根据在VPS中的“runSs.sh”启动文件配置，填写好客户端的配置。</p>



<ul class="wp-block-list">
<li>服务器地址：填写在CloudFlare开启了CDN的那个完整域名</li>



<li>服务器端口：默认443，使用CDN时候必须是443</li>



<li>密码：查看“runSs.sh”-k 后面的即是需要填写的密码</li>



<li>加密：查看“runSs.sh”-m后面的 即是需要选择的密加密算法</li>



<li>插件程序：复制插件文件名（不包含后缀名）粘贴到这里</li>



<li>插件选项：tls;host=[替换为你的域名]，注意这里的host必须和服务器配置的一致，否则无法通讯</li>
</ul>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="257" height="329" src="https://www.luisimon.com/wp-content/uploads/2020/04/20200407061359.jpg" alt="" class="wp-image-303" srcset="https://www.luisimon.com/wp-content/uploads/2020/04/20200407061359.jpg 257w, https://www.luisimon.com/wp-content/uploads/2020/04/20200407061359-234x300.jpg 234w" sizes="auto, (max-width: 257px) 100vw, 257px" /><figcaption class="wp-element-caption">图⑦ 客户端配置</figcaption></figure></div>


<p>至此客户端也配置完成，最后在任务栏中找到shadowsocks图标，查看是否为灰色，如果是灰色，则右键在“系统代理”一栏中选择“PAC模式”。</p>



<p><strong>火狐浏览器配置</strong></p>



<p>在点击浏览器右上角菜单按钮打开“选项”，在“常规”的最底部的“网络设置”中单击“设置”，选择“使用系统代理设置”。</p>



<p><strong>完成</strong></p>



<p>至此所有工作完成，现在可以自由地连接互联网了。Flower</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>將電風扇改造為支持紅外遙控的思路</title>
		<link>https://www.luisimon.com/2024/06/12/814/</link>
		
		<dc:creator><![CDATA[Simon]]></dc:creator>
		<pubDate>Wed, 12 Jun 2024 04:34:08 +0000</pubDate>
				<category><![CDATA[单片机]]></category>
		<category><![CDATA[日常]]></category>
		<category><![CDATA[C語言]]></category>
		<category><![CDATA[嘉立創]]></category>
		<category><![CDATA[紅外遙控]]></category>
		<category><![CDATA[遙控]]></category>
		<category><![CDATA[風扇]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=814</guid>

					<description><![CDATA[最近天氣好熱，到了開風扇的時候了。突然發現家中老舊的電風扇經過30多年的使用後，風速檔按鍵出現了一些小故障。雖 ... <a title="將電風扇改造為支持紅外遙控的思路" class="read-more" href="https://www.luisimon.com/2024/06/12/814/" aria-label="继续阅读將電風扇改造為支持紅外遙控的思路">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p>最近天氣好熱，到了開風扇的時候了。突然發現家中老舊的電風扇經過30多年的使用後，風速檔按鍵出現了一些小故障。雖然不影響使用，修理一下也可以回復青春。但是在我看來，這個每次調速換檔都要走過去的操作的老古董已經與這個【智能】的時代和懶惰的我顯得格格不入。於是我萌生了要將它改成遙控的想法。</p>



<p>故事的開始，我先是想到了萬能的淘寶。於是用【風扇】【遙控】【改裝】這些關鍵詞進行搜索。我發現出來的結果基本都是下圖這樣的需要整個“身體”換掉。對於那個鑄鐵的老古董老，這樣的塑料件恐怕是不堪重負。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="698" height="721" src="https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-11-192136.jpg" alt="" class="wp-image-815" srcset="https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-11-192136.jpg 698w, https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-11-192136-290x300.jpg 290w" sizes="auto, (max-width: 698px) 100vw, 698px" /></figure>



<p>另外，也有直接是一套控制板的類型（如下圖），這種大概率是可以進行改裝的。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="674" height="689" src="https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-11-195819.jpg" alt="" class="wp-image-816" srcset="https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-11-195819.jpg 674w, https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-11-195819-293x300.jpg 293w" sizes="auto, (max-width: 674px) 100vw, 674px" /></figure>



<p>不過强迫症轉念一想，這豈不是很不美觀，另外也沒有狀態顯示，這顯然不合我意。</p>



<p>通過觀察和思考，我發現風扇的調速其實原來很簡單。傳統的交流電(AC)風扇實現調速其實是電機中有多組綫圈（受限于體積和成本以及實用性基本都是3組綫），給不同的綫圈進行通電會使電機輸出不同的功率，體現在風扇中就是不同的轉速。那麽我想，如果能自己設計一個電路使用（傳説中）單片機進行控制給綫圈通電，不就可能可以實現遙控了嗎。</p>



<p>於是我馬上從0開始學習單片機的控制開發。由於我本來有計算機變成的基礎，所以學習起來也是相對容易的。</p>



<p>電路設計</p>



<p>單片機允許通過編程的方式改變功能引脚的輸出狀態。OK，那麽就可以用來控制電風扇的開關狀態。不過顯然單片機使用的是低壓電直流電，不能夠直接驅動帶你風扇的電機，所以我們需要神奇的半導體【開關管】來幫我們在電路中充當開關。</p>



<p>思路</p>



<p>風扇有3個檔，那麽對應三個開關。所以我們在電路設計中需要有三個半導體開關，因爲這裏控制的是交流電，不能直接用三極管或者MOS管這種單向導通的元件。爲了減輕設計的複雜都，我這裏使用【雙向可控硅】（晶閘管）來做交流電的開關，另外配合一個【光耦】（光電耦合器）來做電氣隔離。單片機通過控制【光耦】間接控制雙向可控硅。</p>



<p>控制控制電機的開關就是這麽簡單的思路了，至於其他的還有RC（阻容）尖峰吸收的設計（主要是用來吸收電機啓停是產生的尖峰電壓）保護開關管不被擊穿。</p>



<p>聽起來好像有點複雜，確實。一開始我是想直接選用繼電器來做開關，不過想起繼電器有“噠噠噠”的聲音所以又放棄了。</p>



<p>那麽一個風扇怎麽能沒有狀態顯示呢？我是用了兩個數碼管來做狀態顯示，另外還配合了4顆LED燈珠，以及一個蜂鳴器做聲音的反饋。數碼管主要用來顯示當前的風速檔位和定時信息。</p>



<p>紅外遙控</p>



<p>電路中還需要集成一個紅外脈衝信號接收元件。由於紅外遙控的信號屬於載波信號，爲了方便單片機處理信號，我選用了直接輸出調製后信號的紅外接收傳感器，單片機可以直接處理輸出的信號。</p>



<p>至於遙控器，可以直接選用一個品牌電風扇的遙控器，使用【邏輯分析儀】分析遙控器發送的信號，自己編程做對應的處理。家中沒有遙控器，當然也可以直接在網上購買一個（如下圖）</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="686" height="680" src="https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-12-113456.jpg" alt="" class="wp-image-818" srcset="https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-12-113456.jpg 686w, https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-12-113456-300x297.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/06/Screenshot-2024-06-12-113456-150x150.jpg 150w" sizes="auto, (max-width: 686px) 100vw, 686px" /></figure>



<p><strong>這是我是在【嘉立創】打樣製作的測試驗證板</strong></p>



<figure class="wp-block-video"><video controls src="https://html.luisimon.com/RDfan.mp4"></video></figure>



<p>製作這個紅外遙控板需要學習單片機編程和使用單片機資源</p>



<p>定時器</p>



<p>PWM功能</p>



<p>系統中斷</p>



<p>數碼管的控制（38譯碼器）</p>



<p>PWM方波驅動蜂鳴器</p>
]]></content:encoded>
					
		
		<enclosure url="https://html.luisimon.com/RDfan.mp4" length="3104120" type="video/mp4" />

			</item>
		<item>
		<title>士兰微SC7A20加速度传感（陀螺仪）器技术文档</title>
		<link>https://www.luisimon.com/2024/05/26/770/</link>
		
		<dc:creator><![CDATA[Simon]]></dc:creator>
		<pubDate>Sun, 26 May 2024 07:07:48 +0000</pubDate>
				<category><![CDATA[单片机]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=770</guid>

					<description><![CDATA[早前在制作一个T12电烙铁时，由于手柄的上架休眠功能需要用到加速度传感器，于是购买了最便宜的传感器【士兰微SC ... <a title="士兰微SC7A20加速度传感（陀螺仪）器技术文档" class="read-more" href="https://www.luisimon.com/2024/05/26/770/" aria-label="继续阅读士兰微SC7A20加速度传感（陀螺仪）器技术文档">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="132" src="https://www.luisimon.com/wp-content/uploads/2024/05/1716706056899-2-1024x132.jpg" alt="" class="wp-image-771" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/1716706056899-2-1024x132.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/05/1716706056899-2-300x39.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/05/1716706056899-2-768x99.jpg 768w, https://www.luisimon.com/wp-content/uploads/2024/05/1716706056899-2.jpg 1209w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>早前在制作一个T12电烙铁时，由于手柄的上架休眠功能需要用到加速度传感器，于是购买了最便宜的传感器【士兰微SC7A20】。由于立创商城和官网所提供的这份颗芯片的文档没有给出数据的处理示例，导致走了一些弯路。下面提供一个更详细的士兰微的文档。</p>



<p class="has-medium-font-size"><strong>下载：</strong><a href="https://www.luisimon.com/goto/v57h" rel="nofollow"><strong>SC7660-SC7A30E-SC7A20内部功能应用说明书_0.2</strong></a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Arduino使用ISP烧写程序不擦除（保留）EEPROM（教程）</title>
		<link>https://www.luisimon.com/2024/05/01/736/</link>
		
		<dc:creator><![CDATA[Simon]]></dc:creator>
		<pubDate>Wed, 01 May 2024 09:14:20 +0000</pubDate>
				<category><![CDATA[单片机]]></category>
		<category><![CDATA[編程三兩事]]></category>
		<guid isPermaLink="false">https://www.luisimon.com/?p=736</guid>

					<description><![CDATA[复刻GitHub开源的基于Arduino的T12恒温电烙铁时，每次修改控制程序或者修复bug使用ISP重新升级 ... <a title="Arduino使用ISP烧写程序不擦除（保留）EEPROM（教程）" class="read-more" href="https://www.luisimon.com/2024/05/01/736/" aria-label="继续阅读Arduino使用ISP烧写程序不擦除（保留）EEPROM（教程）">阅读更多</a>]]></description>
										<content:encoded><![CDATA[
<p>复刻GitHub开源的基于Arduino的T12恒温电烙铁时，每次修改控制程序或者修复bug使用ISP重新升级程序时EEPROM的数据都会清空。导致每次都要重新录入烙铁的校准信息和配置烙铁，这样显得很麻烦。</p>



<p>其实，Arduino中有一个保险丝可以配置不擦除EEPROM。可以参考<a href="https://www.luisimon.com/goto/59lm" rel="nofollow">AVR® Fuse Calculator</a>对bootloder进行配置</p>



<p>我使用的是<strong>ATmega328P</strong>主控(MUC)</p>



<p>我们来分析一下配置</p>



<p><strong>修改前</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="788" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-1024x788.png" alt="" class="wp-image-737" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-1024x788.png 1024w, https://www.luisimon.com/wp-content/uploads/2024/05/image-300x231.png 300w, https://www.luisimon.com/wp-content/uploads/2024/05/image-768x591.png 768w, https://www.luisimon.com/wp-content/uploads/2024/05/image.png 1108w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>修改后</strong></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="721" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-1-1024x721.png" alt="" class="wp-image-738" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-1-1024x721.png 1024w, https://www.luisimon.com/wp-content/uploads/2024/05/image-1-300x211.png 300w, https://www.luisimon.com/wp-content/uploads/2024/05/image-1-768x541.png 768w, https://www.luisimon.com/wp-content/uploads/2024/05/image-1.png 1129w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>由上面的两个图片红框的信息可以看出来，当勾选<strong>EESAVE</strong>（保留EEPROM数据）<strong>AVRDUDE<em> arguments</em></strong> 中<strong>hfuse</strong>的值由<strong>d9</strong>变成了<strong>d1</strong></p>



<p>我们来对比这两个值</p>



<p><strong>D9</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="455" height="110" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-2.png" alt="" class="wp-image-739" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-2.png 455w, https://www.luisimon.com/wp-content/uploads/2024/05/image-2-300x73.png 300w" sizes="auto, (max-width: 455px) 100vw, 455px" /></figure>



<p><strong>D1</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="442" height="107" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-4.png" alt="" class="wp-image-741" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-4.png 442w, https://www.luisimon.com/wp-content/uploads/2024/05/image-4-300x73.png 300w" sizes="auto, (max-width: 442px) 100vw, 442px" /></figure>



<p>可以看出，<strong>这个寄存器hfuse的第四位由1变成了0，可以确定第四位是用来配置是否保留EEPROM数据的</strong></p>



<p>那么我们在烧写bootloader的时候就可以配置这个寄存器的第四位为0则可实现烧写程序时保留EEPROM的数据。下面我们来看看怎么操作。</p>



<p>我使用Arduino UNO做ISP，按下图进行接线，但是需要<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">注意RESET的接线</mark></strong>（请看下面的说明）不能使用Arduino UNO上的RESET，需要根据ISP程序的定义来接线。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="684" src="https://www.luisimon.com/wp-content/uploads/2024/05/1714551572660-2-1024x684.jpg" alt="" class="wp-image-742" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/1714551572660-2-1024x684.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/05/1714551572660-2-300x201.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/05/1714551572660-2-768x513.jpg 768w, https://www.luisimon.com/wp-content/uploads/2024/05/1714551572660-2.jpg 1384w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>烧写ISP程序</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="496" height="511" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-5.png" alt="" class="wp-image-744" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-5.png 496w, https://www.luisimon.com/wp-content/uploads/2024/05/image-5-291x300.png 291w" sizes="auto, (max-width: 496px) 100vw, 496px" /></figure>



<p>按上图在Arduino IDE的【文件】->【示例】->【ArduinoISP】->【ArduinoISP】打开ISP程序的代码</p>



<p>准备烧录ISP之前来说一下RESET的接线问题</p>



<p><strong>RSET的接线</strong></p>



<p>从ISP程序的代码注释可以看出来RESET控制被定义为Pin 10</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="810" height="305" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-7.png" alt="" class="wp-image-746" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-7.png 810w, https://www.luisimon.com/wp-content/uploads/2024/05/image-7-300x113.png 300w, https://www.luisimon.com/wp-content/uploads/2024/05/image-7-768x289.png 768w" sizes="auto, (max-width: 810px) 100vw, 810px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="632" height="113" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-8.png" alt="" class="wp-image-747" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-8.png 632w, https://www.luisimon.com/wp-content/uploads/2024/05/image-8-300x54.png 300w" sizes="auto, (max-width: 632px) 100vw, 632px" /></figure>



<p>也就是<strong>被烧写的芯片的RESET引脚要接到UNO的10号引脚</strong>，如下图</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="684" src="https://www.luisimon.com/wp-content/uploads/2024/05/1714552792151-2-1024x684.jpg" alt="" class="wp-image-748" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/1714552792151-2-1024x684.jpg 1024w, https://www.luisimon.com/wp-content/uploads/2024/05/1714552792151-2-300x201.jpg 300w, https://www.luisimon.com/wp-content/uploads/2024/05/1714552792151-2-768x513.jpg 768w, https://www.luisimon.com/wp-content/uploads/2024/05/1714552792151-2.jpg 1384w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>接好先之后我们直接点击【上传】即可将ISP程序烧录到UNO中。</p>



<p><strong>烧写Bootloader(引导程序)</strong></p>



<p><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">重新烧写Bootloader会导致EEPROM数据丢失</mark></strong></p>



<p><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">重新烧写Bootloader会导致EEPROM数据丢失</mark></strong></p>



<p><strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">重新烧写Bootloader会导致EEPROM数据丢失</mark></strong></p>



<p>点击烧录Bootloader(引导程序)可以在输出窗口看到一下命令代码</p>



<p><strong>烧写bootloader命令</strong></p>



<pre class="wp-block-code"><code>"C:\Users\XXXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude" "-CC:\Users\XXXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" -v -patmega328p -cstk500v1 -PCOM6 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xDE:m -Ulfuse:w:0xFF:m</code></pre>



<p>我们需要关注<strong>-Uhfuse:w:0xDE:m</strong>这个参数</p>



<p>前面说到<strong>hfuse</strong>的第四位需要改成0，我们可以直接用电脑计算器的程序员模式修改</p>



<p>如下图，先在计算器的16进制模式下输入DE，<strong>点击箭头所指的第四位数字将其改为0</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="475" height="535" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-11.png" alt="" class="wp-image-751" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-11.png 475w, https://www.luisimon.com/wp-content/uploads/2024/05/image-11-266x300.png 266w" sizes="auto, (max-width: 475px) 100vw, 475px" /></figure>



<p>如下图，我们得到了配置值为16进制的<strong>D6</strong></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="467" height="530" src="https://www.luisimon.com/wp-content/uploads/2024/05/image-12.png" alt="" class="wp-image-752" srcset="https://www.luisimon.com/wp-content/uploads/2024/05/image-12.png 467w, https://www.luisimon.com/wp-content/uploads/2024/05/image-12-264x300.png 264w" sizes="auto, (max-width: 467px) 100vw, 467px" /></figure>



<p>熟悉的位运算的小伙伴可以直接使用位运算亦可</p>



<p><strong>DE &amp; F7 = D6</strong></p>



<p>将<strong>烧写bootloader命令</strong>的<strong><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-vivid-red-color">-Uhfuse:w:0xDE:m</mark></strong>的<strong>DE</strong>改为<strong>D6</strong></p>



<pre class="wp-block-code"><code>
"C:\Users\XXXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/bin/avrdude" "-CC:\Users\XXXX\AppData\Local\Arduino15\packages\arduino\tools\avrdude\6.3.0-arduino17/etc/avrdude.conf" -v -patmega328p -cstk500v1 -PCOM6 -b19200 -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD6:m -Ulfuse:w:0xFF:m</code></pre>



<p>执行上面的新的命令重新烧写bootloader即可。<strong>(可能会报错，需要先关闭Arduino IDE)</strong></p>



<p><strong>重要提示</strong>：<strong>烧写bootloader亦会擦除EEPROM的数据</strong></p>



<p>完结，下次使用ISP升级程序就不会清除EEPROM的数据了</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
