<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>树莓派 on Axqora 博客</title>
    <link>https://blog.axqora.com/tags/%E6%A0%91%E8%8E%93%E6%B4%BE/</link>
    <description>Recent content in 树莓派 on Axqora 博客</description>
    <image>
      <title>Axqora 博客</title>
      <url>https://blog.axqora.com/icon.png</url>
      <link>https://blog.axqora.com/icon.png</link>
    </image>
    <generator>Hugo</generator>
    <language>zh</language>
    <lastBuildDate>Sun, 11 Oct 2020 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://blog.axqora.com/tags/%E6%A0%91%E8%8E%93%E6%B4%BE/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>在树莓派上搭建 Homebridge，实现 HomeKit 控制智能家居</title>
      <link>https://blog.axqora.com/posts/raspberry-homebridge/</link>
      <pubDate>Sun, 11 Oct 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.axqora.com/posts/raspberry-homebridge/</guid>
      <description>&lt;h2 id=&#34;一什么是homebridge&#34;&gt;一、什么是Homebridge&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Homebridge is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of &amp;ldquo;smart home&amp;rdquo; devices.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;HomeKit是苹果的智能家居平台，是iOS系统层面支持的平台，拥有其它平台无法比拟用户体验。可惜大部分米家设备及其它平台的设备都不支持HomeKit，但是可以通过Homebridge作为桥接，实现HomeKit控制其它平台的设备。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;387d405333a0546f694749cbffedc354&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-Homebridge/13008FF4-40EC-42EE-9666-BD1226CC70E5.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;二如何在树莓派上搭建homebridge&#34;&gt;二、如何在树莓派上搭建Homebridge&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian&#34;&gt;https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;562e7f425d01d86f52f15567c363b282&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-Homebridge/iShot2020-08-02AM01.36.52.png&#34;&gt;
&lt;img alt=&#34;0048c88f9c0ba43c8235a20d386fcbaa&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-Homebridge/iShot2020-08-02AM01.35.53.png&#34;&gt;
&lt;img alt=&#34;0638eebebe1e467b00cb548ac3b73dab&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-Homebridge/iShot2020-08-02AM01.37.25.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;三安装插件&#34;&gt;三、安装插件&lt;/h2&gt;
&lt;p&gt;在这个网址&lt;code&gt;https://www.npmjs.com/search?q=keywords%3Ahomebridge-plugin&lt;/code&gt;上可以通过关键字搜索插件，&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;92672193b785e2e16ffe5d4d79179357&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-Homebridge/F9814B10-3D40-4E81-9080-5C9096E674BE.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;常用插件：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1.Aqara套装：homebridge-mi-aqara
2.米家空调伴侣：homebridge-mi-acpartner
3.米家yeelight台灯：homebridge_yeelight
4.小米风扇：homebridge-mi-fan
5.米家智能摄像机：homebridge-mi-camera
6.米家智能排插：homebridge-mi-outlet
7.米家空气净化器：homebridge-mi-airpurifier
8.飞利浦灯泡：homebridge-mi-philips-light
9.智能插座：homebridge-mi-outlet
...
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;四配置设备&#34;&gt;四、配置设备&lt;/h2&gt;
&lt;p&gt;在Homebridge上，插件利用设备的IP地址及设备的token即可以实现控制某个设备，IP地址我们可以登录路由器查看已连接的设备获取，获取token有以下几种方法：&lt;/p&gt;
&lt;p&gt;1、使用安卓手机下载旧版本的米家app，导出里面的数据库找到设备token
2、使用miio discover命令获取（米家新的设备基本都隐藏了token，这种方法基本失效）
3、利用Charles抓包&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;059c08db26f43e551a0dce918b752f4f&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-Homebridge/1CF17D8B-E6BC-4FF8-B969-44B033F79F79.png&#34;&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="一什么是homebridge">一、什么是Homebridge</h2>
<blockquote>
<p>Homebridge is a lightweight NodeJS server you can run on your home network that emulates the iOS HomeKit API. It supports Plugins, which are community-contributed modules that provide a basic bridge from HomeKit to various 3rd-party APIs provided by manufacturers of &ldquo;smart home&rdquo; devices.</p>
</blockquote>
<p>HomeKit是苹果的智能家居平台，是iOS系统层面支持的平台，拥有其它平台无法比拟用户体验。可惜大部分米家设备及其它平台的设备都不支持HomeKit，但是可以通过Homebridge作为桥接，实现HomeKit控制其它平台的设备。</p>
<p><img alt="387d405333a0546f694749cbffedc354" loading="lazy" src="/image/Raspberry-Homebridge/13008FF4-40EC-42EE-9666-BD1226CC70E5.png"></p>
<h2 id="二如何在树莓派上搭建homebridge">二、如何在树莓派上搭建Homebridge</h2>
<p><a href="https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian">https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian</a></p>
<p><img alt="562e7f425d01d86f52f15567c363b282" loading="lazy" src="/image/Raspberry-Homebridge/iShot2020-08-02AM01.36.52.png">
<img alt="0048c88f9c0ba43c8235a20d386fcbaa" loading="lazy" src="/image/Raspberry-Homebridge/iShot2020-08-02AM01.35.53.png">
<img alt="0638eebebe1e467b00cb548ac3b73dab" loading="lazy" src="/image/Raspberry-Homebridge/iShot2020-08-02AM01.37.25.png"></p>
<h2 id="三安装插件">三、安装插件</h2>
<p>在这个网址<code>https://www.npmjs.com/search?q=keywords%3Ahomebridge-plugin</code>上可以通过关键字搜索插件，</p>
<p><img alt="92672193b785e2e16ffe5d4d79179357" loading="lazy" src="/image/Raspberry-Homebridge/F9814B10-3D40-4E81-9080-5C9096E674BE.png"></p>
<p>常用插件：</p>
<pre tabindex="0"><code>1.Aqara套装：homebridge-mi-aqara
2.米家空调伴侣：homebridge-mi-acpartner
3.米家yeelight台灯：homebridge_yeelight
4.小米风扇：homebridge-mi-fan
5.米家智能摄像机：homebridge-mi-camera
6.米家智能排插：homebridge-mi-outlet
7.米家空气净化器：homebridge-mi-airpurifier
8.飞利浦灯泡：homebridge-mi-philips-light
9.智能插座：homebridge-mi-outlet
...
</code></pre><h2 id="四配置设备">四、配置设备</h2>
<p>在Homebridge上，插件利用设备的IP地址及设备的token即可以实现控制某个设备，IP地址我们可以登录路由器查看已连接的设备获取，获取token有以下几种方法：</p>
<p>1、使用安卓手机下载旧版本的米家app，导出里面的数据库找到设备token
2、使用miio discover命令获取（米家新的设备基本都隐藏了token，这种方法基本失效）
3、利用Charles抓包</p>
<p><img alt="059c08db26f43e551a0dce918b752f4f" loading="lazy" src="/image/Raspberry-Homebridge/1CF17D8B-E6BC-4FF8-B969-44B033F79F79.png"></p>
<p>Homebridge具体配置如下：</p>
<pre tabindex="0"><code>{
    &#34;bridge&#34;: {
        &#34;name&#34;: &#34;Homebridge D535&#34;,
        &#34;username&#34;: &#34;0E:E2:26:BC:D5:35&#34;,
        &#34;port&#34;: 51762,
        &#34;pin&#34;: &#34;720-92-067&#34;
    },
    &#34;accessories&#34;: [],
    &#34;platforms&#34;: [
        {
            &#34;name&#34;: &#34;Config&#34;,
            &#34;port&#34;: 8581,
            &#34;platform&#34;: &#34;config&#34;
        },
        {
            &#34;deviceCfgs&#34;: [
                {
                    &#34;type&#34;: &#34;MiPhilipsSmartBulb&#34;,
                    &#34;ip&#34;: &#34;192.168.31.183&#34;,
                    &#34;token&#34;: &#34;3f94f9fd80bcef65478ca59464522c93&#34;,
                    &#34;lightName&#34;: &#34;灯泡&#34;,
                    &#34;lightDisable&#34;: false
                }
            ],
            &#34;platform&#34;: &#34;MiPhilipsLightPlatform&#34;
        },
        {
            &#34;platform&#34;: &#34;MiOutletPlatform&#34;,
            &#34;deviceCfgs&#34;: [
                {
                    &#34;type&#34;: &#34;MiPlugBase&#34;,
                    &#34;ip&#34;: &#34;192.168.31.29&#34;,
                    &#34;token&#34;: &#34;83a7c8f83f44f2adefac68ce828aa084&#34;,
                    &#34;outletName&#34;: &#34;客厅插座&#34;,
                    &#34;outletDisable&#34;: false,
                    &#34;temperatureName&#34;: &#34;客厅插座温度&#34;,
                    &#34;temperatureDisable&#34;: false,
                    &#34;switchLEDName&#34;: &#34;客厅插座指示灯&#34;,
                    &#34;switchLEDDisable&#34;: false
                }
            ]
        }
    ]
}
</code></pre><p><strong>注意：每次修改完配置都需要重启Homebridge服务</strong></p>
<h2 id="五效果">五、效果</h2>
<p><img alt="5c0d4c5dc3c5b42ba868916051435539" loading="lazy" src="/image/Raspberry-Homebridge/98F16600-45A5-4E81-8B81-B7DEF33D2EAA.png">
<img alt="71973f9f9944eac3cda598a4d06158e9" loading="lazy" src="/image/Raspberry-Homebridge/2C261A1B-5C31-45CF-9258-2FC215F3E0BB.png"></p>
]]></content:encoded>
    </item>
    <item>
      <title>树莓派简介</title>
      <link>https://blog.axqora.com/posts/raspberry-introduce/</link>
      <pubDate>Fri, 20 Mar 2020 00:00:00 +0000</pubDate>
      <guid>https://blog.axqora.com/posts/raspberry-introduce/</guid>
      <description>&lt;h2 id=&#34;一树莓派是什么&#34;&gt;一、树莓派是什么&lt;/h2&gt;
&lt;p&gt;树莓派是一款基于ARM的微型电脑主板，系统基于Linux，以MicroSD卡为磁盘，树莓派主板有4个USB接口，一个以太网接口，一个3.5mm音频口，一个HDMI视频接口，40-pin的GPIO连接端口
&lt;img alt=&#34;9f6168dd4970d875a1943d309e803227&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-introduce/55F6100B-118A-4D51-A4B6-F06859D02BEF.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://www.raspberrypi.org/products/&#34;&gt;https://www.raspberrypi.org/products/&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&#34;二树莓派可以干什么&#34;&gt;二、树莓派可以干什么&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;可以当做一个微型服务器，作为FTP文件服务器、网站服务器、代码托管等&lt;/li&gt;
&lt;li&gt;游戏机（刷入游戏模拟器系统，可玩大部分复古游戏）&lt;a href=&#34;https://www.jianshu.com/p/feffa629084a&#34;&gt;https://www.jianshu.com/p/feffa629084a&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;遥控车（手机通过socket连接控制小车，且小车装有红外线传感器，可以自动避障），&lt;/li&gt;
&lt;li&gt;可以结合其他传感器搭建智能家居&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;img alt=&#34;9a9839f9b765d28f5df2d7a760cb1fac&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-introduce/11C75768-9048-4D23-A2A2-2254CB8E0B9B.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;a52ee48448e97a690a17bdf3c1a55334&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-introduce/3006C5C3-0148-40FA-9D9F-90460E934C99.png&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;三dht11温湿度传感器&#34;&gt;三、DHT11温湿度传感器&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://d1.amobbs.com/bbs_upload782111/files_46/ourdev_683249AKFTJF.pdf&#34;&gt;传感器文档&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;2dc11330550baa9f61098b5424b6138c&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-introduce/1E58A027-E495-42C0-9697-DC911117AA16.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;价格便宜，体积小，功耗低，缺点是精度不高&lt;/p&gt;
&lt;p&gt;有四个针脚：正极、负极、串行数据总线、空脚&lt;/p&gt;
&lt;p&gt;DHT11温湿度传感器数据读取原理&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;e5b13279dbc6a9bcdc79646b4de445db&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-introduce/F1E0616F-BEEC-4A03-9B86-EE40330FA404.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;f61c334aa069792bf1721a3398ac241c&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-introduce/728062C2-1091-477E-9C84-88915CAC426A.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;代码：&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;__author__ = &amp;#39;DuShu&amp;#39;
import time
import RPi.GPIO as GPIO

def getIntVal(binayList):
    idx = 0 
    binaryStr = &amp;#39;&amp;#39; 
    while idx &amp;lt; len(binayList):
        binaryStr += str(binayList[idx]) 
        idx += 1 
    return int(binaryStr ,2) 

def getHumidity():
    GPIO_DATA = 18
    GPIO_HIGH = GPIO.HIGH 
    GPIO_LOW = GPIO.LOW 
    GPIO.setmode(GPIO.BCM) 
    
    #一秒后开始工作
    time.sleep(1)

    #设置GPIO接口为输出数据模式
    GPIO.setup(GPIO_DATA,GPIO.OUT) 
    #输出一个低电平信号
    GPIO.output(GPIO_DATA, GPIO.LOW) 
    time.sleep(0.02) #0.018

    #0.02秒后输出一个高电平信号，启动模块测量
    GPIO.output(GPIO_DATA, GPIO.HIGH)

    #设置GPIO接口为读取读取数据模式
    GPIO.setup(GPIO_DATA,GPIO.IN) 

    #等待，获取到高电平信号
    while GPIO.input(GPIO_DATA) == GPIO_HIGH:
        pass 

    #等待，获取到低电平信号
    while GPIO.input(GPIO_DATA) == GPIO_LOW:
        pass 

    #获取到高底电平信号后，开始读取模块获取数据
    data = [] 
    cnt = 40 
    dataArr = []
    while cnt &amp;gt; 0:
        cnt = cnt - 1 

        while GPIO.input(GPIO_DATA) == GPIO_LOW:
            pass 

        k = 0 
        while GPIO.input(GPIO_DATA) == GPIO_HIGH:
            k += 1 
            if k &amp;gt; 100:
                break 

        dataArr.append(k)

        if k &amp;lt; 10:
            data.append(0) 
        else:
            data.append(1) 

    print(dataArr)

    #根据公式定义，解析温湿度数据
    val1 = getIntVal(data[0:8]) 
    val2 = getIntVal(data[8:16]) 
    val3 = getIntVal(data[16:24]) 
    val4 = getIntVal(data[24:32]) 
    val5 = getIntVal(data[32:40]) 

    if (val5 == val1 + val2 + val3 + val4):
        return [val1, val3] 
    else:
        return [-1, -1] 

    GPIO.cleanup() 

if __name__ == &amp;#39;__main__&amp;#39;:
    hum = getHumidity() 
    print(&amp;#34;hum:&amp;#34;, hum[0], &amp;#34; temp:&amp;#34;, hum[1]) 
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;四参考&#34;&gt;四、参考&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://blog.csdn.net/guyang1995/article/details/54692810&#34;&gt;https://blog.csdn.net/guyang1995/article/details/54692810&lt;/a&gt;
&lt;a href=&#34;https://zhuanlan.zhihu.com/p/74440206&#34;&gt;https://zhuanlan.zhihu.com/p/74440206&lt;/a&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="一树莓派是什么">一、树莓派是什么</h2>
<p>树莓派是一款基于ARM的微型电脑主板，系统基于Linux，以MicroSD卡为磁盘，树莓派主板有4个USB接口，一个以太网接口，一个3.5mm音频口，一个HDMI视频接口，40-pin的GPIO连接端口
<img alt="9f6168dd4970d875a1943d309e803227" loading="lazy" src="/image/Raspberry-introduce/55F6100B-118A-4D51-A4B6-F06859D02BEF.png"></p>
<p><a href="https://www.raspberrypi.org/products/">https://www.raspberrypi.org/products/</a></p>
<h2 id="二树莓派可以干什么">二、树莓派可以干什么</h2>
<ol>
<li>可以当做一个微型服务器，作为FTP文件服务器、网站服务器、代码托管等</li>
<li>游戏机（刷入游戏模拟器系统，可玩大部分复古游戏）<a href="https://www.jianshu.com/p/feffa629084a">https://www.jianshu.com/p/feffa629084a</a></li>
<li>遥控车（手机通过socket连接控制小车，且小车装有红外线传感器，可以自动避障），</li>
<li>可以结合其他传感器搭建智能家居</li>
</ol>
<p><img alt="9a9839f9b765d28f5df2d7a760cb1fac" loading="lazy" src="/image/Raspberry-introduce/11C75768-9048-4D23-A2A2-2254CB8E0B9B.png"></p>
<p><img alt="a52ee48448e97a690a17bdf3c1a55334" loading="lazy" src="/image/Raspberry-introduce/3006C5C3-0148-40FA-9D9F-90460E934C99.png"></p>
<h2 id="三dht11温湿度传感器">三、DHT11温湿度传感器</h2>
<p><a href="https://d1.amobbs.com/bbs_upload782111/files_46/ourdev_683249AKFTJF.pdf">传感器文档</a></p>
<p><img alt="2dc11330550baa9f61098b5424b6138c" loading="lazy" src="/image/Raspberry-introduce/1E58A027-E495-42C0-9697-DC911117AA16.png"></p>
<p>价格便宜，体积小，功耗低，缺点是精度不高</p>
<p>有四个针脚：正极、负极、串行数据总线、空脚</p>
<p>DHT11温湿度传感器数据读取原理</p>
<p><img alt="e5b13279dbc6a9bcdc79646b4de445db" loading="lazy" src="/image/Raspberry-introduce/F1E0616F-BEEC-4A03-9B86-EE40330FA404.png"></p>
<p><img alt="f61c334aa069792bf1721a3398ac241c" loading="lazy" src="/image/Raspberry-introduce/728062C2-1091-477E-9C84-88915CAC426A.png"></p>
<p>代码：</p>
<pre tabindex="0"><code>__author__ = &#39;DuShu&#39;
import time
import RPi.GPIO as GPIO

def getIntVal(binayList):
    idx = 0 
    binaryStr = &#39;&#39; 
    while idx &lt; len(binayList):
        binaryStr += str(binayList[idx]) 
        idx += 1 
    return int(binaryStr ,2) 

def getHumidity():
    GPIO_DATA = 18
    GPIO_HIGH = GPIO.HIGH 
    GPIO_LOW = GPIO.LOW 
    GPIO.setmode(GPIO.BCM) 
    
    #一秒后开始工作
    time.sleep(1)

    #设置GPIO接口为输出数据模式
    GPIO.setup(GPIO_DATA,GPIO.OUT) 
    #输出一个低电平信号
    GPIO.output(GPIO_DATA, GPIO.LOW) 
    time.sleep(0.02) #0.018

    #0.02秒后输出一个高电平信号，启动模块测量
    GPIO.output(GPIO_DATA, GPIO.HIGH)

    #设置GPIO接口为读取读取数据模式
    GPIO.setup(GPIO_DATA,GPIO.IN) 

    #等待，获取到高电平信号
    while GPIO.input(GPIO_DATA) == GPIO_HIGH:
        pass 

    #等待，获取到低电平信号
    while GPIO.input(GPIO_DATA) == GPIO_LOW:
        pass 

    #获取到高底电平信号后，开始读取模块获取数据
    data = [] 
    cnt = 40 
    dataArr = []
    while cnt &gt; 0:
        cnt = cnt - 1 

        while GPIO.input(GPIO_DATA) == GPIO_LOW:
            pass 

        k = 0 
        while GPIO.input(GPIO_DATA) == GPIO_HIGH:
            k += 1 
            if k &gt; 100:
                break 

        dataArr.append(k)

        if k &lt; 10:
            data.append(0) 
        else:
            data.append(1) 

    print(dataArr)

    #根据公式定义，解析温湿度数据
    val1 = getIntVal(data[0:8]) 
    val2 = getIntVal(data[8:16]) 
    val3 = getIntVal(data[16:24]) 
    val4 = getIntVal(data[24:32]) 
    val5 = getIntVal(data[32:40]) 

    if (val5 == val1 + val2 + val3 + val4):
        return [val1, val3] 
    else:
        return [-1, -1] 

    GPIO.cleanup() 

if __name__ == &#39;__main__&#39;:
    hum = getHumidity() 
    print(&#34;hum:&#34;, hum[0], &#34; temp:&#34;, hum[1]) 
</code></pre><h2 id="四参考">四、参考</h2>
<p><a href="https://blog.csdn.net/guyang1995/article/details/54692810">https://blog.csdn.net/guyang1995/article/details/54692810</a>
<a href="https://zhuanlan.zhihu.com/p/74440206">https://zhuanlan.zhihu.com/p/74440206</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>在树莓派上部署 ATC 网络模拟工具（Augmented Traffic Control）</title>
      <link>https://blog.axqora.com/posts/raspberry-atc/</link>
      <pubDate>Tue, 11 Apr 2017 00:00:00 +0000</pubDate>
      <guid>https://blog.axqora.com/posts/raspberry-atc/</guid>
      <description>&lt;h2 id=&#34;一前言&#34;&gt;一、前言&lt;/h2&gt;
&lt;p&gt;作为移动开发者的我们，为了良好的用户体验，经常需要模拟手机应用在比较差的网络环境下的表现，模拟网络环境的方式有很多，比如使用Charles，或者在手机的开发者模式下模拟网络环境等等，但是这些都有一定的门槛。&lt;/p&gt;
&lt;p&gt;使用Charles，首先你得连接WiFi，然后设置代理，接着开启网络模拟模式，最后测试完了如果忘了关闭代理，可能手机就上不了网了。而且都连上你电脑的代理的话就一次只能模拟一种网络环境。&lt;/p&gt;
&lt;p&gt;使用手机的开发者模式，首先你的手机能进入开发者模式。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;如果你需要随便抓一位不懂技术同事帮你测试，这些方式都不太友好，有没有一种方式可以连上WiFi就可以使用的测试方式呢？有！接下来就介绍Facebook出品的一款网络模拟工具ATC。&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;二简介&#34;&gt;二、简介&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;Augmented Traffic Control (ATC) is a tool to simulate network conditions. It allows controlling the connection that a device has to the internet. Developers can use ATC to test their application across varying network conditions, easily emulating high speed, mobile, and even severely impaired networks.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;ATC全名叫Augmented Traffic Control，是Facebook出品的一款网络模拟工具，移动开发者可以通过这款工具模拟不同条件下的网络环境，可以通过网页自由地模拟网络带宽（bandwidth）、延迟（latency）、丢包率（packet loss）、错包率（corrupted packets）和乱序率（packets ordering）。&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;而且！！！更牛逼的是：不同的设备连接到同一WiFi还可以模拟不同的网络环境互不影响。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://camo.githubusercontent.com/99a779517d18a605046dec36d2beb02166f4e77b/68747470733a2f2f66616365626f6f6b2e6769746875622e696f2f6175676d656e7465642d747261666669632d636f6e74726f6c2f696d616765732f6174635f6f766572766965772e706e67&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/facebook/augmented-traffic-control&#34;&gt;github地址&lt;/a&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;三准备&#34;&gt;三、准备&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;1、树莓派3（已内置有无线网卡）&lt;br&gt;
2、已刷入最新RASPBIAN系统的SD卡&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2 id=&#34;四安装&#34;&gt;四、安装&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&lt;strong&gt;安装主要有两步：&lt;br&gt;
1、让树莓派有发射AP热点的能力；&lt;br&gt;
2、安装ATC。&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h3 id=&#34;1让树莓派有发射ap热点的能力&#34;&gt;1、让树莓派有发射AP热点的能力&lt;/h3&gt;
&lt;p&gt;1.安装hostapd虚拟热点程序和dnsmasq配置DHCP、DNS服务程序：&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get install dnsmasq hostapd&lt;/code&gt;&lt;/p&gt;</description>
      <content:encoded><![CDATA[<h2 id="一前言">一、前言</h2>
<p>作为移动开发者的我们，为了良好的用户体验，经常需要模拟手机应用在比较差的网络环境下的表现，模拟网络环境的方式有很多，比如使用Charles，或者在手机的开发者模式下模拟网络环境等等，但是这些都有一定的门槛。</p>
<p>使用Charles，首先你得连接WiFi，然后设置代理，接着开启网络模拟模式，最后测试完了如果忘了关闭代理，可能手机就上不了网了。而且都连上你电脑的代理的话就一次只能模拟一种网络环境。</p>
<p>使用手机的开发者模式，首先你的手机能进入开发者模式。</p>
<p><em>如果你需要随便抓一位不懂技术同事帮你测试，这些方式都不太友好，有没有一种方式可以连上WiFi就可以使用的测试方式呢？有！接下来就介绍Facebook出品的一款网络模拟工具ATC。</em></p>
<h2 id="二简介">二、简介</h2>
<blockquote>
<p>Augmented Traffic Control (ATC) is a tool to simulate network conditions. It allows controlling the connection that a device has to the internet. Developers can use ATC to test their application across varying network conditions, easily emulating high speed, mobile, and even severely impaired networks.</p>
</blockquote>
<p>ATC全名叫Augmented Traffic Control，是Facebook出品的一款网络模拟工具，移动开发者可以通过这款工具模拟不同条件下的网络环境，可以通过网页自由地模拟网络带宽（bandwidth）、延迟（latency）、丢包率（packet loss）、错包率（corrupted packets）和乱序率（packets ordering）。</p>
<p><em><strong>而且！！！更牛逼的是：不同的设备连接到同一WiFi还可以模拟不同的网络环境互不影响。</strong></em></p>
<p><img loading="lazy" src="https://camo.githubusercontent.com/99a779517d18a605046dec36d2beb02166f4e77b/68747470733a2f2f66616365626f6f6b2e6769746875622e696f2f6175676d656e7465642d747261666669632d636f6e74726f6c2f696d616765732f6174635f6f766572766965772e706e67"></p>
<p><em><strong><a href="https://github.com/facebook/augmented-traffic-control">github地址</a></strong></em></p>
<h2 id="三准备">三、准备</h2>
<p><em><strong>1、树莓派3（已内置有无线网卡）<br>
2、已刷入最新RASPBIAN系统的SD卡</strong></em></p>
<h2 id="四安装">四、安装</h2>
<p><em><strong>安装主要有两步：<br>
1、让树莓派有发射AP热点的能力；<br>
2、安装ATC。</strong></em></p>
<h3 id="1让树莓派有发射ap热点的能力">1、让树莓派有发射AP热点的能力</h3>
<p>1.安装hostapd虚拟热点程序和dnsmasq配置DHCP、DNS服务程序：</p>
<p><code>sudo apt-get install dnsmasq hostapd</code></p>
<p>2.编辑<code>sudo vim /etc/dhcpcd.conf</code>文件，在该文件的最后加入下面的命令，用来为wlan0固定一个内网IP。</p>
<pre tabindex="0"><code>interface wlan0
static ip_address=10.0.0.1/24
</code></pre><p>3.编辑<code>sudo vim /etc/dnsmasq.conf</code>dnsmasq配置文件，有600+行的内容，我们可以<code>shift+g</code>滚动到最下面，然后加入下面的命令，用来控制IP地址的取值范围</p>
<pre tabindex="0"><code>interface=wlan0
dhcp-range=10.0.0.2,10.0.0.50,255.255.255.0,12h
</code></pre><p>4.添加hostapd.conf配置文件<code>sudo vim /etc/hostapd/hostapd.conf</code>并添加下面内容，用于配置热点的账号密码等信息。</p>
<pre tabindex="0"><code>ssid=PI3                 #账号
wpa_passphrase=12345678  #密码
interface=wlan0
driver=nl80211
hw_mode=g
channel=10
macaddr_acl=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
</code></pre><p>5.编辑sysctl.conf文件，设置路由转发<code>sudo vim /etc/sysctl.conf</code>，打开下面的注释</p>
<pre tabindex="0"><code># Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
</code></pre><p>6.更新iptables规则，依次执行下面命令</p>
<pre tabindex="0"><code>sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
sudo sh -c &#34;iptables-save &gt; /etc/iptables.ipv4.nat&#34;
</code></pre><p>7.编辑<code>sudo vim /etc/network/interfaces</code>，在最后加入下面的命令</p>
<pre tabindex="0"><code>up iptables-restore &lt; /etc/iptables.ipv4.nat
</code></pre><p>8.重启树莓派后执行下面命令，如无意外就可以发射热点了</p>
<pre tabindex="0"><code>sudo service hostapd start 
sudo service dnsmasq start 
</code></pre><h3 id="2安装atc">2、安装ATC</h3>
<p>ATC需要依赖Python环境，RASPBIAN系统默认已经支持Python，所以不用再安装，如果你的是Ubuntu或者其他Linux系统，你需要输入下面命令先安装Python的依赖，并安装pip包管理工具。</p>
<pre tabindex="0"><code>sudo apt-get install python-pip python-dev build-essential）
sudo pip install --upgrade pip 
</code></pre><p>1.安装ATC依赖库</p>
<pre tabindex="0"><code>sudo pip install atc_thrift atcd django-atc-api django-atc-demo-ui django-atc-profile-storage
</code></pre><p><em><strong>注意这里要加上<code>sudo</code>，不然会因没有权限而安装失败。</strong></em></p>
<p>2.创建新的Django项目</p>
<pre tabindex="0"><code>django-admin startproject atcui
cd atcui
</code></pre><p>3.编辑settings.py文件<code>sudo vim atcui/settings.py</code>，并在INSTALLED_APPS的后面加入下面参数</p>
<pre tabindex="0"><code>INSTALLED_APPS = (
    ...
    # Django ATC API
    &#39;rest_framework&#39;,
    &#39;atc_api&#39;,
    # Django ATC Demo UI
    &#39;bootstrap_themes&#39;,
    &#39;django_static_jquery&#39;,
    &#39;atc_demo_ui&#39;,
    # Django ATC Profile Storage
    &#39;atc_profile_storage&#39;,
)
</code></pre><p>4.编辑urls.py文件，并加入下面内容</p>
<pre tabindex="0"><code>cd atcui
sudo vim urls.py
</code></pre><pre tabindex="0"><code>...
...
from django.views.generic.base import RedirectView
from django.conf.urls import include

urlpatterns = [
    ...
    # Django ATC API
    url(r&#39;^api/v1/&#39;, include(&#39;atc_api.urls&#39;)),
    # Django ATC Demo UI
    url(r&#39;^atc_demo_ui/&#39;, include(&#39;atc_demo_ui.urls&#39;)),
    # Django ATC profile storage
    url(r&#39;^api/v1/profiles/&#39;, include(&#39;atc_profile_storage.urls&#39;)),
    url(r&#39;^$&#39;, RedirectView.as_view(url=&#39;https://blog.axqora.com/atc_demo_ui/&#39;, permanent=False)),
]
</code></pre><p>5.更新Django数据库</p>
<pre tabindex="0"><code>python manage.py migrate
</code></pre><p>到这里，我们已经完成整个环境的部署，步骤有点多，只要一步一步做，应该不会出问题。</p>
<h2 id="五使用">五、使用</h2>
<p>1、启动核心组件atcd</p>
<p><code>sudo atcd --atcd-lan wlan0</code></p>
<p>出现<code>Awaiting graceful shutdown.</code>后按<code>Ctrl+c</code>退出。</p>
<p>2、启动Django工程</p>
<pre tabindex="0"><code>cd ..
sudo python manage.py runserver 0.0.0.0:8000
</code></pre><p>3、移动设备连接WiFi，使用浏览器输入<code>10.0.0.1:8000/atc_demo_ui/</code>即可进入控制中心，添加网络配置</p>
<p><img alt="控制中心" loading="lazy" src="/image/Raspberry-ATC/raspberry_atc_1.png"></p>
<p>ALLOWED_HOSTS = [&lsquo;10.0.0.1&rsquo;]</p>
<h2 id="六坑">六、坑</h2>
<p>在部署ATC工具的过程中，我遇到过三个坑，还好解决起来不太难，希望大家再遇到的时候可以快速解决。</p>
<h3 id="1权限问题">1、权限问题</h3>
<p>安装ATC依赖库时没有权限，在命令签名加上<code>sudo</code>即可。</p>
<h3 id="2invalid-http_host-header-xxx-you-may-need-to-add-uxxx-to-allowed_hosts">2、Invalid HTTP_HOST header :&lsquo;xxx&rsquo;. You may need to add u&rsquo;xxx&rsquo; to ALLOWED_HOSTS.</h3>
<p><img alt="raspberry_atc_2" loading="lazy" src="/image/Raspberry-ATC/raspberry_atc_2.png"></p>
<p>这个时候只需要编辑<code>atcui</code>目录下的<code>settings.py</code>文件，在ALLOWED_HOSTS后加上本机ip即可：</p>
<pre tabindex="0"><code>ALLOWED_HOSTS = [&#39;10.0.0.1&#39;]
</code></pre><h3 id="3成功进入控制中心但是中间提示atc-is-not-running">3、成功进入控制中心，但是中间提示<em>ATC is not running</em></h3>
<p>Google了一下，发现还蛮多人遇到同样的问题，下面是作者的回复：
<img alt="ATC is not running" loading="lazy" src="/image/Raspberry-ATC/raspberry_atc_3.png"></p>
<p><a href="https://github.com/facebook/augmented-traffic-control/issues/153">Issues地址</a></p>
<p>根据作者的提示，我重新安装了<code>django-rest-framework</code></p>
<pre tabindex="0"><code>sudo apt-get install django-rest-framework
</code></pre><p>然后重启服务即可。</p>
]]></content:encoded>
    </item>
    <item>
      <title>利用树莓派 &#43; RetroPie 做一个怀旧游戏机</title>
      <link>https://blog.axqora.com/posts/raspberry-restropie/</link>
      <pubDate>Sun, 12 Mar 2017 00:00:00 +0000</pubDate>
      <guid>https://blog.axqora.com/posts/raspberry-restropie/</guid>
      <description>&lt;p&gt;&lt;img alt=&#34;RetroPie&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_1.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;一前言&#34;&gt;一、前言&lt;/h1&gt;
&lt;p&gt;偶尔会好怀念小时候跟朋友一起玩小霸王的日子，那时候很少家里有游戏机的人，一台游戏机有好几个朋友在等着玩，那时候能玩的东西不多，但日子过得简单而开心。虽说现在万能的淘宝还可以买到小霸王游戏机，但是远远不如自己做一个出来的成就感来的强。下面就一步一步把小时候的游戏机做出来。&lt;/p&gt;
&lt;h1 id=&#34;二准备&#34;&gt;二、准备&lt;/h1&gt;
&lt;p&gt;1、树莓派+SD卡&lt;/p&gt;
&lt;p&gt;2、显示器、游戏手柄、键盘等外设&lt;/p&gt;
&lt;h1 id=&#34;三下载retropie镜像&#34;&gt;三、下载RetroPie镜像&lt;/h1&gt;
&lt;p&gt;RetroPie是一个开源的游戏模拟器，可以让你的树莓派或者PC变成一个复古游戏机，它集成了任天堂红白机、GameBoy、SNES等著名游戏系统，具有很高的可玩性。&lt;/p&gt;
&lt;p&gt;你可以在Raspbian直接安装RetroPie，但是会耗费很长的时间，所以我在这里选择直接下载RetroPie镜像。&lt;/p&gt;
&lt;p&gt;下载地址：https://retropie.org.uk/download/&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_2.png&#34;&gt;&lt;/p&gt;
&lt;h1 id=&#34;四往sd卡写入retropie镜像&#34;&gt;四、往SD卡写入RetroPie镜像&lt;/h1&gt;
&lt;p&gt;PC上可以使用 Win32DiskImager 工具写入镜像；&lt;/p&gt;
&lt;p&gt;Mac系统下可以用 ApplePi-Baker 工具；&lt;/p&gt;
&lt;p&gt;具体写入方法及下载地址网上都很容易找到，在这里就不再赘述。&lt;/p&gt;
&lt;p&gt;把已经写入RetroPie镜像的SD卡插入树莓派并连接电源。&lt;/p&gt;
&lt;h1 id=&#34;五配置&#34;&gt;五、配置&lt;/h1&gt;
&lt;h2 id=&#34;1设置输入设备&#34;&gt;1.设置输入设备&lt;/h2&gt;
&lt;p&gt;我们的游戏手柄有时候并没有那么多个键位，我们在设置的时候怎么跳过一个键位的设置呢？这里有个小技巧：长按“下”键即可跳过。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_3.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;设置游戏手柄键位&lt;/p&gt;
&lt;h2 id=&#34;2连接wifi&#34;&gt;2.连接WiFi&lt;/h2&gt;
&lt;p&gt;设置好键位后，我们就可以进入主界面，上面有“13 GAMES AVAILABLE”字样，这并不是意味着里面就有13个游戏可以马上玩的，应该理解为内置了13个游戏模拟器，这时候我们怎么样才能开始玩呢？&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_4.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;初始主界面&lt;/p&gt;
&lt;p&gt;按“A”键，进入设置界面，点击WIFI，连接你电脑同一个的局域网。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_5.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;连接局域网&lt;/p&gt;
&lt;h2 id=&#34;3传输roms&#34;&gt;3.传输roms&lt;/h2&gt;
&lt;p&gt;打开PC，点击“计算机”上面的地址栏，输入“\retropie\roms”，即可进入游戏roms文件夹，把下载好的游戏rom拉到对应的模拟器文件夹，如.nes后缀的游戏rom拉进对应的nes文件夹。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_6.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;模拟器文件夹&lt;/p&gt;
&lt;h2 id=&#34;4重启模拟器&#34;&gt;4.重启模拟器&lt;/h2&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_7.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;重启模拟器&lt;/p&gt;
&lt;p&gt;重启模拟器后就可以看到主界面多了一个选项，选择游戏就可以开始你的怀旧之旅了！&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_8.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;多了一个选项&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_9.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;超级马里奥&lt;/p&gt;
&lt;h1 id=&#34;六其他配置&#34;&gt;六、其他配置&lt;/h1&gt;
&lt;p&gt;有人会发现自己的SD卡的内存明明很大，但是没有塞多少个游戏内存就满了，可以进行下面的配置“扩展”内存：&lt;/p&gt;
&lt;p&gt;进入RetroPie的设置界面，进入RASPI-CONFIG&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_10.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;RASPI-CONFIG&lt;/p&gt;
&lt;p&gt;选择第一项Expand Filesystem，重启树莓派即可扩展内存了。&lt;/p&gt;
&lt;p&gt;另外，你还可以在这里进行修改登录密码、国际化选项、设置超频等操作。&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;img&#34; loading=&#34;lazy&#34; src=&#34;https://blog.axqora.com/image/Raspberry-RetroPie/raspberry_retropie_11.jpeg&#34;&gt;&lt;/p&gt;
&lt;p&gt;树莓派设置界面&lt;/p&gt;
&lt;h1 id=&#34;七祝你玩得开心&#34;&gt;七、祝你玩得开心😊&lt;/h1&gt;</description>
      <content:encoded><![CDATA[<p><img alt="RetroPie" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_1.png"></p>
<h1 id="一前言">一、前言</h1>
<p>偶尔会好怀念小时候跟朋友一起玩小霸王的日子，那时候很少家里有游戏机的人，一台游戏机有好几个朋友在等着玩，那时候能玩的东西不多，但日子过得简单而开心。虽说现在万能的淘宝还可以买到小霸王游戏机，但是远远不如自己做一个出来的成就感来的强。下面就一步一步把小时候的游戏机做出来。</p>
<h1 id="二准备">二、准备</h1>
<p>1、树莓派+SD卡</p>
<p>2、显示器、游戏手柄、键盘等外设</p>
<h1 id="三下载retropie镜像">三、下载RetroPie镜像</h1>
<p>RetroPie是一个开源的游戏模拟器，可以让你的树莓派或者PC变成一个复古游戏机，它集成了任天堂红白机、GameBoy、SNES等著名游戏系统，具有很高的可玩性。</p>
<p>你可以在Raspbian直接安装RetroPie，但是会耗费很长的时间，所以我在这里选择直接下载RetroPie镜像。</p>
<p>下载地址：https://retropie.org.uk/download/</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_2.png"></p>
<h1 id="四往sd卡写入retropie镜像">四、往SD卡写入RetroPie镜像</h1>
<p>PC上可以使用 Win32DiskImager 工具写入镜像；</p>
<p>Mac系统下可以用 ApplePi-Baker 工具；</p>
<p>具体写入方法及下载地址网上都很容易找到，在这里就不再赘述。</p>
<p>把已经写入RetroPie镜像的SD卡插入树莓派并连接电源。</p>
<h1 id="五配置">五、配置</h1>
<h2 id="1设置输入设备">1.设置输入设备</h2>
<p>我们的游戏手柄有时候并没有那么多个键位，我们在设置的时候怎么跳过一个键位的设置呢？这里有个小技巧：长按“下”键即可跳过。</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_3.jpeg"></p>
<p>设置游戏手柄键位</p>
<h2 id="2连接wifi">2.连接WiFi</h2>
<p>设置好键位后，我们就可以进入主界面，上面有“13 GAMES AVAILABLE”字样，这并不是意味着里面就有13个游戏可以马上玩的，应该理解为内置了13个游戏模拟器，这时候我们怎么样才能开始玩呢？</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_4.jpeg"></p>
<p>初始主界面</p>
<p>按“A”键，进入设置界面，点击WIFI，连接你电脑同一个的局域网。</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_5.jpeg"></p>
<p>连接局域网</p>
<h2 id="3传输roms">3.传输roms</h2>
<p>打开PC，点击“计算机”上面的地址栏，输入“\retropie\roms”，即可进入游戏roms文件夹，把下载好的游戏rom拉到对应的模拟器文件夹，如.nes后缀的游戏rom拉进对应的nes文件夹。</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_6.png"></p>
<p>模拟器文件夹</p>
<h2 id="4重启模拟器">4.重启模拟器</h2>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_7.jpeg"></p>
<p>重启模拟器</p>
<p>重启模拟器后就可以看到主界面多了一个选项，选择游戏就可以开始你的怀旧之旅了！</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_8.jpeg"></p>
<p>多了一个选项</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_9.jpeg"></p>
<p>超级马里奥</p>
<h1 id="六其他配置">六、其他配置</h1>
<p>有人会发现自己的SD卡的内存明明很大，但是没有塞多少个游戏内存就满了，可以进行下面的配置“扩展”内存：</p>
<p>进入RetroPie的设置界面，进入RASPI-CONFIG</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_10.jpeg"></p>
<p>RASPI-CONFIG</p>
<p>选择第一项Expand Filesystem，重启树莓派即可扩展内存了。</p>
<p>另外，你还可以在这里进行修改登录密码、国际化选项、设置超频等操作。</p>
<p><img alt="img" loading="lazy" src="/image/Raspberry-RetroPie/raspberry_retropie_11.jpeg"></p>
<p>树莓派设置界面</p>
<h1 id="七祝你玩得开心">七、祝你玩得开心😊</h1>
]]></content:encoded>
    </item>
  </channel>
</rss>
