資料介紹
描述
為什么需要保持社交距離?這個(gè)項(xiàng)目的動(dòng)機(jī)是什么?
COVID-19(也稱(chēng)為新型冠狀病毒)是一種致命疾病,已感染超過(guò) 2400 萬(wàn)人并導(dǎo)致超過(guò) 80 萬(wàn)人死亡。
僅在美國(guó),就有600 萬(wàn)例病例。據(jù)Worldometers.info 稱(chēng),最近 COVID-19 病例一直在增加。
疾病預(yù)防控制中心建議保持社交距離,這是一種人們分開(kāi) 6 英尺的程序,除非他們是同一個(gè)家庭的成員。那么,作為一個(gè)社區(qū),我們?nèi)绾问褂眉夹g(shù)來(lái)執(zhí)行這個(gè)程序呢?這就是這個(gè)項(xiàng)目的動(dòng)機(jī)。
成本
為了讓每個(gè)人都可以使用這個(gè)項(xiàng)目,我們希望確保成本盡可能低。
一臺(tái)設(shè)備的成本:
- Arduino Nano--10 售價(jià) 36.49 美元,因此每個(gè)售價(jià) 3.65 美元
- HC-05--2 為 12.5 美元,因此每個(gè)為6.25 美元
- LCD--2 售價(jià) 6.49 美元,因此每個(gè)售價(jià) 3.25 美元
- 有源蜂鳴器——20 個(gè),9.59 美元,所以每個(gè)是0.48 美元
- 10K 歐姆電位器——20 個(gè),6.39 美元,所以每個(gè)0.32 美元
- 220 歐姆電阻器 - 100 個(gè) 5.69 美元,因此每個(gè)0.06 美元
- 9V 電池——8 塊10.99 美元,所以每塊 1.37 美元
- 9V 電池連接器面包板--40 個(gè),售價(jià) 6.48 美元,因此每個(gè)售價(jià) 0.16 美元
總計(jì)高達(dá)15.54 美元。這是非常令人印象深刻的,因?yàn)檫@可以挽救無(wú)數(shù)生命。
準(zhǔn)備步驟:安裝庫(kù)
第一步是安裝 LCD 庫(kù),您將需要這兩個(gè)庫(kù)。這可能預(yù)裝在 Arduino IDE 上,但可能不在某些版本上。
轉(zhuǎn)到工具>管理庫(kù)。在這里,搜索“液晶”。
我們要查找的庫(kù)是列表中的第一個(gè)。如果您還沒(méi)有安裝它。
還使用了 SoftwareSerial 庫(kù),但它已經(jīng)預(yù)先安裝。
第 1 步:將 HC-05 配置為 AT 模式
第一步是將 HC-05 配置為 AT 模式。在這里,我們可以執(zhí)行 AT+INQ 命令來(lái)掃描其他設(shè)備。
需要兩個(gè)或更多設(shè)備才能相互掃描。在所需的部分中描述了一種“設(shè)備”。
對(duì)于此步驟,設(shè)備應(yīng)按如下方式接線(xiàn):
有兩種 HC-05 設(shè)備:一種帶有“KEY”引腳不帶按鈕,一種帶有“EN”引腳帶按鈕
AT模式HC-05無(wú)按鍵:
如果 KEY 引腳連接到 +5V DC,它應(yīng)該自動(dòng)處于 AT 模式。
AT 模式 HC-05 帶按鈕
在這種情況下,EN 引腳應(yīng)連接到 +5V DC。插入 Arduino Nano 時(shí),按下按鈕,插入設(shè)備,然后松開(kāi)。這應(yīng)該激活 AT 模式。
將此代碼復(fù)制并粘貼到 Arduino IDE 中。
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10,11);
void setup()
{
Serial.begin(9600);
mySerial.begin(38400);
Serial.println("Enter AT commands:");
delay(2000);
}
void loop()
{
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (mySerial.available()){
Serial.write(mySerial.read());}
// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available()){
mySerial.write(Serial.read());}
}
從本質(zhì)上講,這會(huì)將您在串行監(jiān)視器中鍵入的任何內(nèi)容打印到 HC05,等待消息并打印該消息。
運(yùn)行代碼。
運(yùn)行代碼:
打開(kāi)串行監(jiān)視器。
當(dāng)“Enter AT commands:”出現(xiàn)時(shí),輸入“AT”并按下回車(chē)鍵。您應(yīng)該會(huì)收到一條消息說(shuō)“OK”
鍵入“AT+NAME”并顯示名稱(chēng)。
值
為了獲得設(shè)備之間的距離,我們需要 rssi 值。要獲取 rssi 值,我們需要執(zhí)行 AT+INQ 命令。但是,在此之前還有一些命令要執(zhí)行,一一執(zhí)行:
- AT+復(fù)位
- AT+初始化
- AT+IAC=9e8b33
- AT+CLASS=0
- AT+INQM=1, 9, 48
- AT+INQ
這是執(zhí)行完所有 6 個(gè)命令后串行監(jiān)視器的外觀。(一步步)
請(qǐng)注意,當(dāng)我們執(zhí)行 AT+INQ 命令時(shí),它會(huì)顯示 +INQ,后跟地址、類(lèi)別,然后是 RSSI 值。RSSI 值是最后 4 個(gè)字符。請(qǐng)注意,這是十六進(jìn)制;要將其轉(zhuǎn)換為十進(jìn)制,我們需要使用帶符號(hào)的二進(jìn)制補(bǔ)碼格式。
如果得到的 RSSI 值為 7FFF,請(qǐng)嘗試再次執(zhí)行上述命令。
如果 rssi 值以 F 開(kāi)頭,那么你很好。
第 2 步:轉(zhuǎn)換 Rssi 值
要轉(zhuǎn)換 rssi 值,我們需要?jiǎng)?chuàng)建一個(gè)新函數(shù)來(lái)執(zhí)行此操作。
將此代碼復(fù)制并粘貼到 Arduino IDE
#include
SoftwareSerial mySerial(10,11);
void setup()
{
Serial.begin(9600);
mySerial.begin(38400);
Serial.println("Enter AT commands:");
delay(2000);
}
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
for (int i = 0; i < hexString.length(); i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}
void loop()
{
// Keep reading from HC-05 and send to Arduino Serial Monitor
if (mySerial.available()){
String x = String(mySerial.readString());
int slashn = x.indexOf("\n");
Serial.println(slashn);
int xlen = x.length()/(slashn+1);
if (x.endsWith("OK\r\n")) {
x = x.substring(0, x.length() - 4);
}
for (int i = 0; i < xlen; i++) {
if (i != 0) {
x = x.substring(slashn+1);
}
slashn = x.indexOf("\n");
String rssi = x.substring(slashn-5, slashn-1);
int decNO = hexToDec(rssi);
Serial.println(decNO);
}
// Keep reading from Arduino Serial Monitor and send to HC-05
if (Serial.available()){
mySerial.write(Serial.read());
}
}}
這個(gè)程序是如何工作的
首先,它檢測(cè)數(shù)據(jù)是否可用。然后,它將數(shù)據(jù)復(fù)制到一個(gè)字符串 (X) 并檢測(cè) INQ 行的結(jié)尾(注意所有 INQ 數(shù)據(jù)都是一個(gè)字符串,這需要為單行 INQ 數(shù)據(jù)分成不同的字符串)。
請(qǐng)注意一行是 +INQ:ADDR, CLASS, RSSI\r\n
通過(guò) for 循環(huán),它正在檢測(cè)單獨(dú)的行并刪除已經(jīng)檢測(cè)到的行。RSSI 值是倒數(shù)第六到第三個(gè)(包括 \r\n),因此是 substring(slashn-5, slashn-1); 我們稱(chēng)結(jié)尾為“斜線(xiàn) n”,因?yàn)槟鞘墙Y(jié)尾,斜線(xiàn) n。
當(dāng)你運(yùn)行這個(gè)程序時(shí),你應(yīng)該在+INQ....之后得到一個(gè)十進(jìn)制的RSSI值。這應(yīng)該是一個(gè)負(fù)數(shù)。數(shù)字越大,兩個(gè)設(shè)備越接近。
在下一步中,我們將向您展示如何將此數(shù)據(jù)報(bào)告給 LCD。我們還將了解如何檢測(cè)家庭成員
第三步:檢測(cè)家庭成員
通過(guò)設(shè)備的地址可以檢測(cè)到家庭成員。地址從第 5 個(gè)索引開(kāi)始,到第 13 個(gè)結(jié)束,即 substring(5, slashn-11)。
有了這個(gè),我們還可以統(tǒng)計(jì)局外人和家庭成員的數(shù)量。
對(duì)于外人,可以測(cè)量距離,看是否為 6 英尺。通過(guò)將設(shè)備放在 6 英尺處進(jìn)行一系列試驗(yàn)后,我們確定為 76.91。
這是代碼。
#include
SoftwareSerial mySerial(10, 11); // RX, TX
void setup() {
Serial.begin(9600);
Serial.println("Enter AT commands:");
mySerial.begin(38400);
}
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
for (int i = 0; i < hexString.length(); i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}
void loop()
{
while (!mySerial.available()) {}
while (mySerial.available()) {
String x = String(mySerial.readString());
int slashn = x.indexOf("\n");
Serial.println(slashn);
int nod = 0;
int countf = 0;
int counto = 0;
int countd = 0;
int xlen = x.length()/(slashn+1);
if (x.endsWith("OK\r\n")) {
x = x.substring(0, x.length() - 4);
}
for (int i = 0; i < xlen; i++) {
if (i != 0) {
x = x.substring(slashn+1);
}
slashn = x.indexOf("\n");
String rssi = x.substring(slashn-5, slashn-1);
int decNO = hexToDec(rssi);
Serial.println(x.substring(5,slashn-11));
if (x.substring(5, slashn-11) == "FAMILYADDR") {
countf++;
}
else {
counto++;
if (decNO > -76.91) {
countd++;
}
}
if (decNO > -76.91) {
Serial.println("near");
}
else {
Serial.println("far");
}
Serial.println(decNO);
}
Serial.println("Family: " + String(countf) + " Outsider: " + String(counto) + " Danger: " + String(countd));
}
delay(100);
}
countf 是家庭成員的數(shù)量,counto 是外來(lái)者的數(shù)量,countd 是小于 6 英尺的危險(xiǎn)外來(lái)者的數(shù)量。
將 FAMILYADDR 替換為您嘗試掃描的“家庭”設(shè)備。任何外部設(shè)備都將自動(dòng)計(jì)為外部設(shè)備。對(duì)于多個(gè)設(shè)備,使用 || 列出多個(gè)設(shè)備的操作。
運(yùn)行此程序時(shí),您將看到列出的設(shè)備地址以及轉(zhuǎn)換后的 RSSI。掃描完所有內(nèi)容后,它將顯示家庭、局外人和危險(xiǎn)計(jì)數(shù)。
第 4 步:向 LCD 報(bào)告
當(dāng)該設(shè)備在現(xiàn)實(shí)世界中實(shí)施時(shí),設(shè)備持有者必須有辦法知道 rssi 值以及他們是否有感染 COVID-19 的危險(xiǎn)。
如圖所示為 LCD 接線(xiàn):
接下來(lái),將此代碼復(fù)制并粘貼到 Arduino IDE 中。運(yùn)行。
#include
SoftwareSerial mySerial(10, 11); // RX, TX
#include
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int buttonstate = 0;
void setup() {
lcd.begin(16, 2);
Serial.begin(9600);
Serial.println("Enter AT commands:");
}
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
for (int i = 0; i < hexString.length(); i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}
void loop()
{
while (!mySerial.available()) {}
while (mySerial.available()) {
String x = String(mySerial.readString());
int slashn = x.indexOf("\n");
Serial.println(slashn);
int nod = 0;
int countf = 0;
int counto = 0;
int countd = 0;
int xlen = x.length()/(slashn+1);
if (x.endsWith("OK\r\n")) {
x = x.substring(0, x.length() - 4);
}
for (int i = 0; i < xlen; i++) {
if (i != 0) {
x = x.substring(slashn+1);
}
slashn = x.indexOf("\n");
String rssi = x.substring(slashn-5, slashn-1);
int decNO = hexToDec(rssi);
lcd.setCursor(0, 1);
lcd.print("RSSI:" + String(decNO));
Serial.println(x.substring(5,slashn-11));
if (x.substring(5, slashn-11) == "20:2:2011FB") {
countf++;
}
else {
counto++;
if (decNO > -76.91) {
countd++;
}
}
if (decNO > -76.91) {
Serial.println("near");
}
else {
Serial.println("far");
}
Serial.println(decNO);
}
Serial.println("Family: " + String(countf) + " Outsider: " + String(counto) + " Danger: " + String(countd));
if (counto/2 lcd.setCursor(10, 1);
lcd.print("DANGER");
Serial.println("DANGER");
}
else {
lcd.setCursor(10, 1);
lcd.print(" ");
Serial.println("Fine");
}
}
delay(100);
})>
我們覺(jué)得我們需要解釋背后的邏輯counto/2。請(qǐng)注意,76.91 是平均 rssi 值,這意味著一半的值超過(guò),一半低于。這確保了不超過(guò) 5 個(gè)值低于 76.91;否則它會(huì)說(shuō)“危險(xiǎn)”。<>
第 5 步:蜂鳴器
在過(guò)馬路等場(chǎng)景中看設(shè)備是很危險(xiǎn)的。如果距離小于 6 英尺,我們使用有源蜂鳴器發(fā)出警報(bào)。只有當(dāng)任何一個(gè)人與另一個(gè)人的距離超過(guò) 6 英尺時(shí)才會(huì)關(guān)閉。將蜂鳴器連接到 D13,如圖所示:
1 / 2
復(fù)制并粘貼代碼,如圖
#include
SoftwareSerial mySerial(10, 11); // RX, TX
#include
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int buttonstate = 0;
void setup() {
pinMode(13,OUTPUT);
lcd.begin(16, 2);
Serial.begin(9600);
Serial.println("Enter AT commands:");
mySerial.begin(38400);
}
unsigned int hexToDec(String hexString) {
unsigned int decValue = 0;
int nextInt;
for (int i = 0; i < hexString.length(); i++) {
nextInt = int(hexString.charAt(i));
if (nextInt >= 48 && nextInt <= 57) nextInt = map(nextInt, 48, 57, 0, 9);
if (nextInt >= 65 && nextInt <= 70) nextInt = map(nextInt, 65, 70, 10, 15);
if (nextInt >= 97 && nextInt <= 102) nextInt = map(nextInt, 97, 102, 10, 15);
nextInt = constrain(nextInt, 0, 15);
decValue = (decValue * 16) + nextInt;
}
return decValue;
}
void loop()
{
while (!mySerial.available()) {}
while (mySerial.available()) {
String x = String(mySerial.readString());
int slashn = x.indexOf("\n");
Serial.println(slashn);
int nod = 0;
int countf = 0;
int counto = 0;
int countd = 0;
int xlen = x.length()/(slashn+1);
if (x.endsWith("OK\r\n")) {
x = x.substring(0, x.length() - 4);
OK = 1;
}
for (int i = 0; i < xlen; i++) {
if (i != 0) {
x = x.substring(slashn+1);
}
slashn = x.indexOf("\n");
String rssi = x.substring(slashn-5, slashn-1);
int decNO = hexToDec(rssi);
lcd.setCursor(0, 1);
lcd.print("RSSI:" + String(decNO));
Serial.println(x.substring(5,slashn-11));
if (x.substring(5, slashn-11) == "20:2:2011FB") {
countf++;
}
else {
counto++;
if (decNO > -76.91) {
countd++;
}
}
if (decNO > -76.91) {
Serial.println("near");
}
else {
Serial.println("far");
}
Serial.println(decNO);
}
Serial.println("Family: " + String(countf) + " Outsider: " + String(counto) + " Danger: " + String(countd));
if (counto/2 lcd.setCursor(10, 1);
lcd.print("DANGER");
Serial.println("DANGER");
digitalWrite(13,HIGH);
}
else {
lcd.setCursor(10, 1);
lcd.print(" ");
Serial.println("Fine");
digitalWrite(13,LOW);
}
}
delay(100);
})>
運(yùn)行代碼時(shí),如果距離小于 6 英尺,設(shè)備會(huì)發(fā)出嗡嗡聲,超過(guò) 6 英尺時(shí)設(shè)備會(huì)正常運(yùn)行。
第 6 步:設(shè)備獨(dú)立性(無(wú)計(jì)算機(jī))
如果在現(xiàn)實(shí)世界中實(shí)現(xiàn),該設(shè)備必須在沒(méi)有計(jì)算機(jī)的情況下運(yùn)行并發(fā)送命令。
話(huà)雖如此,9V 電池必須提供必要的電壓。
請(qǐng)注意,可能需要一點(diǎn)透明膠帶將電池粘貼到面包板的背面。這使設(shè)備更易于握持。
1 / 2
。
?
- PLC程序執(zhí)行過(guò)程
- 自動(dòng)社交距離執(zhí)行器開(kāi)源案例
- 單片機(jī)C程序編譯、執(zhí)行過(guò)程資料下載
- Visual C++和MFC創(chuàng)建的應(yīng)用程序基礎(chǔ)知識(shí) 0次下載
- 在Linux系統(tǒng)下執(zhí)行MySQL的SQL文件程序免費(fèi)下載 4次下載
- 單片機(jī)的程序在內(nèi)存和FLASH中應(yīng)該如何進(jìn)行空間分配
- 使用51單片機(jī)設(shè)計(jì)超聲波測(cè)速然后通過(guò)串口發(fā)送距離的程序免費(fèi)下載
- 51單片機(jī)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器的詳細(xì)資料說(shuō)明
- 使用51單片機(jī)設(shè)計(jì)警報(bào)裝置的程序免費(fèi)下載
- 如何使用MM7150-PICtail和Explorer 16開(kāi)發(fā)板執(zhí)行演示程序詳細(xì)概述
- 基于符號(hào)執(zhí)行技術(shù)實(shí)現(xiàn)的驅(qū)動(dòng)程序的漏洞檢測(cè) 0次下載
- ARM應(yīng)用程序構(gòu)架_順序執(zhí)行模板 6次下載
- 基于程序執(zhí)行軌跡的SoC硬件加速模塊提取方法
- 新型智能閥門(mén)電動(dòng)執(zhí)行裝置的硬件設(shè)計(jì)和實(shí)現(xiàn)
- 15路遠(yuǎn)距離遙控報(bào)警裝置電路圖
- 淺談PLC程序執(zhí)行的過(guò)程 3047次閱讀
- 使用STM32定時(shí)器測(cè)量程序執(zhí)行時(shí)間的方法詳解 8518次閱讀
- 執(zhí)行的單片機(jī)程序怎么寫(xiě)? 1832次閱讀
- 淺談RAM 執(zhí)行應(yīng)用程序 3264次閱讀
- PLC的用戶(hù)程序執(zhí)行過(guò)程 4399次閱讀
- 單片機(jī)的主程序是如何執(zhí)行的 1w次閱讀
- 51單片機(jī)是如何執(zhí)行程序運(yùn)行的 8349次閱讀
- 電熱執(zhí)行器是什么_電熱執(zhí)行器工作原理 1.9w次閱讀
- 單片機(jī)執(zhí)行編制程序的全過(guò)程解析 2342次閱讀
- 單片機(jī)執(zhí)行程序的全過(guò)程介紹 1.4w次閱讀
- 淺析MCU的內(nèi)存分配與代碼執(zhí)行 4517次閱讀
- 一文看懂python程序的執(zhí)行過(guò)程 1.7w次閱讀
- ARM程序的執(zhí)行過(guò)程詳解 7241次閱讀
- java程序的執(zhí)行過(guò)程詳解 1.7w次閱讀
- mfc程序執(zhí)行流程小結(jié),MFC程序的執(zhí)行順序 9579次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
- 1.06 MB | 532次下載 | 免費(fèi)
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費(fèi)
- 3TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費(fèi)
- 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費(fèi)
- 6迪文DGUS開(kāi)發(fā)指南
- 31.67 MB | 194次下載 | 免費(fèi)
- 7元宇宙底層硬件系列報(bào)告
- 13.42 MB | 182次下載 | 免費(fèi)
- 8FP5207XR-G1中文應(yīng)用手冊(cè)
- 1.09 MB | 178次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191187次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論
查看更多