国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python機器人編程語言:簡潔、強大的創(chuàng)造力之道

這篇具有很好參考價值的文章主要介紹了Python機器人編程語言:簡潔、強大的創(chuàng)造力之道。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

導言:

近年來,隨著機器人技術的迅猛發(fā)展,Python作為一種簡潔、易讀的編程語言,在機器人編程領域的應用越來越廣泛。本文將介紹Python在機器人編程中的五個關鍵應用領域,并通過案例展示其強大的創(chuàng)造力。

第一節(jié):機器人控制

Python提供了豐富的庫和框架,使得機器人控制變得相對簡單。通過串口、藍牙或Wi-Fi等方式,我們可以使用Python編寫代碼來控制機器人的運動、傳感器讀取和執(zhí)行任務。例如,我們可以使用Python和Raspberry Pi來控制一個小型機器人,實現(xiàn)遙控和自主導航功能。

案例:
我們可以使用Python的GPIO庫和藍牙模塊,將Raspberry Pi與機器人控制器連接起來。通過編寫Python代碼,我們可以發(fā)送指令給機器人,控制它前進、后退、左轉(zhuǎn)、右轉(zhuǎn)等動作。此外,我們還可以通過傳感器讀取機器人周圍的環(huán)境信息,并根據(jù)所獲取的數(shù)據(jù)做出決策,使機器人能夠自主導航。

案例代碼:

import RPi.GPIO as GPIO
import time

# 定義GPIO引腳
left_motor_pin = 17
right_motor_pin = 18

# 設置GPIO模式為BCM
GPIO.setmode(GPIO.BCM)

# 初始化GPIO引腳
GPIO.setup(left_motor_pin, GPIO.OUT)
GPIO.setup(right_motor_pin, GPIO.OUT)

# 定義機器人控制函數(shù)
def control_robot(left_speed, right_speed):
    # 控制左電機轉(zhuǎn)速
    if left_speed > 0:
        GPIO.output(left_motor_pin, GPIO.HIGH)
    else:
        GPIO.output(left_motor_pin, GPIO.LOW)
    # 控制右電機轉(zhuǎn)速
    if right_speed > 0:
        GPIO.output(right_motor_pin, GPIO.HIGH)
    else:
        GPIO.output(right_motor_pin, GPIO.LOW)
    # 設置電機速度
    left_motor_pwm.ChangeDutyCycle(abs(left_speed))
    right_motor_pwm.ChangeDutyCycle(abs(right_speed))

# 主程序
if __name__ == "__main__":
    # 初始化PWM引腳
    left_motor_pwm = GPIO.PWM(left_motor_pin, 100)
    right_motor_pwm = GPIO.PWM(right_motor_pin, 100)
    left_motor_pwm.start(0)
    right_motor_pwm.start(0)
    
    # 控制機器人前進
    control_robot(50, 50)
    time.sleep(1)
    
    # 控制機器人后退
    control_robot(-50, -50)
    time.sleep(1)
    
    # 控制機器人左轉(zhuǎn)
    control_robot(-50, 50)
    time.sleep(1)
    
    # 控制機器人右轉(zhuǎn)
    control_robot(50, -50)
    time.sleep(1)
    
    # 停止機器人運動
    control_robot(0, 0)
    
    # 清理GPIO引腳
    GPIO.cleanup()

以上代碼演示了如何使用Python的GPIO庫和藍牙模塊,將Raspberry Pi與機器人控制器連接,并通過編寫Python代碼來控制機器人的動作。在主程序中,我們定義了機器人控制函數(shù)control_robot(),通過控制左右電機的轉(zhuǎn)速來控制機器人的運動方向。通過調(diào)用control_robot()函數(shù),我們可以控制機器人前進、后退、左轉(zhuǎn)和右轉(zhuǎn)等動作。最后,我們使用GPIO.cleanup()函數(shù)清理GPIO引腳,以保證代碼的可靠性。

第二節(jié):機器人視覺

機器人視覺是實現(xiàn)機器人自主感知和導航的重要組成部分。Python提供了強大的圖像處理庫,如OpenCV,可以用于圖像識別、目標跟蹤和視覺導航等任務。我們可以使用Python編寫圖像處理算法,將機器人與周圍的環(huán)境進行關聯(lián)。

案例:

假設我們有一個具備攝像頭的機器人,我們可以使用Python和OpenCV來識別和追蹤特定的目標物體。通過圖像處理算法,我們可以對圖像進行特征提取和匹配,從而實現(xiàn)機器人對目標物體的識別和跟蹤。例如,我們可以編寫Python代碼,讓機器人自動追蹤一個移動的球體。

案例代碼:

import cv2

# 創(chuàng)建攝像頭對象
cap = cv2.VideoCapture(0)

# 設置圖像窗口
cv2.namedWindow("Object Tracking")

# 定義顏色范圍
lower_range = (29, 86, 6)
upper_range = (64, 255, 255)

# 主程序
while True:
    # 讀取圖像幀
    ret, frame = cap.read()
    
    # 將圖像從BGR轉(zhuǎn)換為HSV顏色空間
    hsv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
    
    # 根據(jù)顏色范圍創(chuàng)建掩碼
    mask = cv2.inRange(hsv_frame, lower_range, upper_range)
    
    # 對掩碼進行形態(tài)學處理,去除噪點
    kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5, 5))
    mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
    mask = cv2.dilate(mask, kernel, iterations=2)
    
    # 尋找目標物體的輪廓
    contours, _ = cv2.findContours(mask.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
    
    # 初始化目標物體的中心坐標
    center = None
    
    # 如果存在輪廓
    if len(contours) > 0:
        # 求解目標物體的最大輪廓
        max_contour = max(contours, key=cv2.contourArea)
        
        # 獲取目標物體的外接圓
        ((x, y), radius) = cv2.minEnclosingCircle(max_contour)
        
        # 計算目標物體的中心坐標
        M = cv2.moments(max_contour)
        center = (int(M["m10"] / M["m00"]), int(M["m01"] / M["m00"]))
        
        # 如果半徑大于10,則認為目標物體存在
        if radius > 10:
            # 在圖像上繪制目標物體的外接圓和中心坐標
            cv2.circle(frame, (int(x), int(y)), int(radius), (0, 255, 255), 2)
            cv2.circle(frame, center, 5, (0, 0, 255), -1)
    
    # 顯示圖像
    cv2.imshow("Object Tracking", frame)
    
    # 如果按下Esc鍵,則退出程序
    if cv2.waitKey(1) == 27:
        break

# 釋放攝像頭對象
cap.release()

# 關閉圖像窗口
cv2.destroyAllWindows()

以上代碼演示了如何使用Python和OpenCV來識別和追蹤特定的目標物體。在主程序中,我們首先創(chuàng)建攝像頭對象,并設置圖像窗口。然后,通過定義顏色范圍,我們可以確定要追蹤的目標物體的顏色。接著,我們使用攝像頭讀取圖像幀,并將圖像從BGR顏色空間轉(zhuǎn)換為HSV顏色空間。然后,根據(jù)顏色范圍創(chuàng)建掩碼,并對掩碼進行形態(tài)學處理,以去除噪點。接下來,我們尋找目標物體的輪廓,并計算目標物體的外接圓和中心坐標。最后,我們在圖像上繪制目標物體的外接圓和中心坐標,并顯示圖像。通過按下Esc鍵,可以退出程序。

第三節(jié):語音識別和合成

與人類交互是機器人應用中的重要一環(huán)。Python提供了語音處理庫,如SpeechRecognition和pyttsx3,可以用于語音識別和合成。我們可以使用Python編寫代碼,實現(xiàn)機器人的語音交互功能。

案例:

我們可以使用Python的SpeechRecognition庫和Google的語音識別API,實現(xiàn)機器人對聲音的識別。例如,我們可以編寫一個Python程序,讓機器人能夠聽懂我們的指令,并根據(jù)指令做出相應的動作。此外,通過使用pyttsx3庫,我們還可以讓機器人具備語音合成功能,使其能夠用語音回答我們的問題。

案例代碼:

import speech_recognition as sr
import pyttsx3

# 創(chuàng)建語音識別器對象
r = sr.Recognizer()

# 創(chuàng)建語音合成器對象
engine = pyttsx3.init()

# 設置語音合成器的屬性
engine.setProperty('rate', 150)

# 定義語音識別函數(shù)
def recognize_speech():
    with sr.Microphone() as source:
        print("請說話...")
        audio = r.listen(source)
        
        try:
            # 使用Google的語音識別API識別音頻
            text = r.recognize_google(audio, language='zh-CN')
            print("識別結果:" + text)
            return text
        except sr.UnknownValueError:
            print("抱歉,無法識別您的語音")
            return ''
        except sr.RequestError:
            print("抱歉,無法連接到Google的語音識別服務")
            return ''

# 定義語音合成函數(shù)
def text_to_speech(text):
    engine.say(text)
    engine.runAndWait()

# 主程序
while True:
    # 識別語音指令
    command = recognize_speech()
    
    if command == '退出':
        break
    
    # 根據(jù)指令做出相應的動作
    if command == '打開燈':
        print("執(zhí)行:打開燈")
        # 執(zhí)行打開燈的動作
        text_to_speech("燈已打開")
    elif command == '關閉燈':
        print("執(zhí)行:關閉燈")
        # 執(zhí)行關閉燈的動作
        text_to_speech("燈已關閉")
    else:
        print("無法識別的指令")
        text_to_speech("抱歉,無法識別您的指令")

以上代碼演示了如何使用Python的SpeechRecognition庫和Google的語音識別API,實現(xiàn)機器人對聲音的識別。在主程序中,我們首先創(chuàng)建語音識別器對象和語音合成器對象。然后,定義了一個語音識別函數(shù),使用語音識別器對象監(jiān)聽麥克風的聲音,并通過Google的語音識別API識別音頻。接著,定義了一個語音合成函數(shù),使用語音合成器對象將文本轉(zhuǎn)換為語音,并播放出來。在主程序的循環(huán)中,我們不斷識別語音指令,并根據(jù)指令做出相應的動作。如果指令是"退出",則退出程序。如果指令是"打開燈",則執(zhí)行打開燈的動作,并回答"燈已打開"。如果指令是"關閉燈",則執(zhí)行關閉燈的動作,并回答"燈已關閉"。如果指令無法識別,則回答"抱歉,無法識別您的指令"。通過這樣的方式,我們可以讓機器人聽懂我們的指令,并根據(jù)指令做出相應的動作。

第四節(jié):機器學習和人工智能

機器學習和人工智能是現(xiàn)代機器人應用的關鍵技術。Python提供了豐富的機器學習庫,如TensorFlow和scikit-learn,可以為機器人添加智能決策能力。我們可以使用Python編寫機器學習算法,使機器人能夠從數(shù)據(jù)中學習和預測。

案例:
假設我們有一個機器人需要學習如何識別水果。我們可以使用Python和TensorFlow庫,構建一個卷積神經(jīng)網(wǎng)絡(CNN)模型,將機器人與攝像頭連接起來。通過訓練模型,并將其加載到機器人中,我們可以使機器人通過攝像頭捕捉到的圖像,準確地識別出不同的水果。

案例代碼:

import cv2
import numpy as np
import tensorflow as tf

# 加載訓練好的模型
model = tf.keras.models.load_model('fruit_model.h5')

# 構建水果類別列表
fruit_classes = ['apple', 'banana', 'orange']

# 打開攝像頭
cap = cv2.VideoCapture(0)

while True:
    # 讀取攝像頭捕捉到的圖像
    ret, frame = cap.read()
    
    # 調(diào)整圖像大小為模型所需的輸入尺寸
    input_image = cv2.resize(frame, (100, 100))
    
    # 將圖像轉(zhuǎn)換為模型所需的格式
    input_image = np.expand_dims(input_image, axis=0)
    input_image = input_image / 255.0
    
    # 使用模型進行預測
    predictions = model.predict(input_image)
    
    # 獲取預測結果
    prediction_index = np.argmax(predictions)
    fruit = fruit_classes[prediction_index]
    
    # 在圖像上顯示預測結果
    cv2.putText(frame, fruit, (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
    
    # 顯示圖像
    cv2.imshow('Fruit Recognition', frame)
    
    # 按下'q'鍵退出程序
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# 釋放攝像頭和窗口
cap.release()
cv2.destroyAllWindows()

以上代碼演示了如何使用Python和TensorFlow庫,構建一個卷積神經(jīng)網(wǎng)絡(CNN)模型,將機器人與攝像頭連接起來,實現(xiàn)水果識別。在主程序中,我們首先加載訓練好的模型,并構建了一個水果類別列表。然后,通過打開攝像頭,不斷讀取攝像頭捕捉到的圖像。我們將圖像調(diào)整為模型所需的輸入尺寸,并將其轉(zhuǎn)換為模型所需的格式。接著,使用加載好的模型進行預測,并獲取預測結果。將預測結果在圖像上進行顯示。最后,通過按下’q’鍵退出程序。通過這樣的方式,我們可以通過攝像頭捕捉到的圖像,準確地識別出不同的水果。

第五節(jié):機器人仿真

在機器人開發(fā)的早期階段,進行實際物理機器人的測試和開發(fā)可能會比較困難。Python提供了機器人仿真平臺,如Robot Operating System(ROS)和Gazebo,可以用于機器人行為和環(huán)境的模擬。我們可以使用Python編寫仿真代碼,在虛擬環(huán)境中測試和優(yōu)化機器人的行為。

案例:
我們可以使用Python和ROS,創(chuàng)建一個虛擬機器人,并在Gazebo仿真環(huán)境中模擬機器人的行為。通過編寫Python代碼,我們可以控制機器人的運動、傳感器讀取和任務執(zhí)行,以及與其他虛擬機器人的交互。這樣,我們可以在虛擬環(huán)境中進行機器人的開發(fā)和測試,以減少實際機器人開發(fā)中的成本和風險。

案例代碼:

import rospy
from geometry_msgs.msg import Twist

# 初始化ROS節(jié)點
rospy.init_node('virtual_robot')

# 創(chuàng)建一個Publisher來發(fā)布機器人的運動命令
cmd_vel_pub = rospy.Publisher('/cmd_vel', Twist, queue_size=1)

# 創(chuàng)建一個Twist對象,用于控制機器人的運動
cmd_vel = Twist()

# 控制機器人向前運動
cmd_vel.linear.x = 0.5  # 設置線速度為0.5 m/s

# 發(fā)布運動命令
cmd_vel_pub.publish(cmd_vel)

# 暫停3秒鐘
rospy.sleep(3)

# 停止機器人的運動
cmd_vel.linear.x = 0.0  # 設置線速度為0 m/s
cmd_vel.angular.z = 0.0  # 設置角速度為0 rad/s

# 發(fā)布停止命令
cmd_vel_pub.publish(cmd_vel)

# 讀取機器人的傳感器數(shù)據(jù)
def sensor_callback(data):
    # 處理傳感器數(shù)據(jù)
    pass

# 創(chuàng)建一個Subscriber來訂閱機器人的傳感器數(shù)據(jù)
rospy.Subscriber('/sensor_data', SensorData, sensor_callback)

# 執(zhí)行任務
def execute_task():
    # 執(zhí)行任務的邏輯
    pass

# 在主循環(huán)中執(zhí)行任務
while not rospy.is_shutdown():
    execute_task()

# 關閉ROS節(jié)點
rospy.shutdown()

以上代碼演示了如何使用Python和ROS(Robot Operating System),創(chuàng)建一個虛擬機器人,并在Gazebo仿真環(huán)境中模擬機器人的行為。在主程序中,我們首先初始化ROS節(jié)點,并創(chuàng)建一個Publisher來發(fā)布機器人的運動命令。然后,我們創(chuàng)建一個Twist對象,用于控制機器人的運動,并設置機器人向前運動的線速度為0.5 m/s。接著,我們發(fā)布運動命令,使機器人開始向前運動。通過rospy.sleep(3)暫停3秒鐘后,我們停止機器人的運動,將線速度和角速度設置為0,并發(fā)布停止命令。接下來,我們創(chuàng)建一個Subscriber來訂閱機器人的傳感器數(shù)據(jù),并定義一個回調(diào)函數(shù)來處理傳感器數(shù)據(jù)。最后,在主循環(huán)中執(zhí)行任務,并在任務執(zhí)行過程中持續(xù)讀取傳感器數(shù)據(jù)和控制機器人的運動。通過這樣的方式,我們可以在虛擬環(huán)境中進行機器人的開發(fā)和測試,以減少實際機器人開發(fā)中的成本和風險。

結論:

Python作為一種簡潔、易讀的編程語言,為機器人編程提供了強大的創(chuàng)造力。通過機器人控制、機器人視覺、語音識別和合成、機器學習和人工智能以及機器人仿真等五個關鍵應用領域的案例展示,我們可以看到Python在機器人編程中的廣泛應用。無論是初學者還是有經(jīng)驗的開發(fā)者,使用Python編寫機器人程序都是一種不錯的選擇,讓我們一起探索Python機器人編程的無限可能性。文章來源地址http://www.zghlxwxcb.cn/news/detail-679534.html

到了這里,關于Python機器人編程語言:簡潔、強大的創(chuàng)造力之道的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • ROS 2機器人編程實戰(zhàn):基于現(xiàn)代C++和Python 3實現(xiàn)簡單機器人項目

    ROS 2機器人編程實戰(zhàn):基于現(xiàn)代C++和Python 3實現(xiàn)簡單機器人項目

    ?? 個人網(wǎng)站:【海擁】【摸魚游戲】【神級源碼資源網(wǎng)】 ?? 前端學習課程:??【28個案例趣學前端】【400個JS面試題】 ?? 想尋找共同學習交流、摸魚劃水的小伙伴,請點擊【摸魚學習交流群】 ROS 2是機器人開發(fā)領域中廣泛使用的一個框架,ROS 2提供了很多功能強大的工具和

    2024年02月02日
    瀏覽(35)
  • 用代碼玩轉(zhuǎn)迷你圖:手把手教你用編程語言打造簡潔易讀的數(shù)據(jù)圖表!

    用代碼玩轉(zhuǎn)迷你圖:手把手教你用編程語言打造簡潔易讀的數(shù)據(jù)圖表!

    摘要:本文由葡萄城技術團隊于博客園原創(chuàng)并首發(fā)。轉(zhuǎn)載請注明出處:葡萄城官網(wǎng),葡萄城為開發(fā)者提供專業(yè)的開發(fā)工具、解決方案和服務,賦能開發(fā)者。 迷你圖(Mini Chart)最早起源于流程圖和組織架構圖中的一種簡化圖形,用于表示一個大型數(shù)據(jù)集合中的趨勢和變化。隨

    2024年02月08日
    瀏覽(20)
  • 遨博協(xié)作機器人高級編程 -AUBOPE SDK Python接口介紹與使用

    目錄 一、簡介 二、環(huán)境版本 三、Python SDK接口簡介 1.Python SDK接口數(shù)據(jù) 2. Python SDK接口函數(shù)示例 四、任務實施 五、任務拓展 大家好,本篇文章主要針對AUBOPE系統(tǒng)基于Python編程語言的SDK開發(fā)方面進行講解。掌握Windows系統(tǒng)下Python環(huán)境的搭建,掌握機器人Python編程接口的開發(fā)流程

    2024年02月12日
    瀏覽(63)
  • 機器人編程教程1機器人簡介

    機器人編程教程1機器人簡介

    我們將制作一個機器人,并為其創(chuàng)建程序,賦予機器人行為,使其看起來具有智能并能夠做出決策。我們將編寫代碼,使用傳感器觀察機器人周圍的環(huán)境,并構建高級主題的實際示例,包括視覺、語音識別和說話。 您將看到簡單的構建技術如何與少量代碼相結合,使機器感覺

    2024年02月13日
    瀏覽(28)
  • 工業(yè)機器人編程與操作-搬運機器人碼垛系統(tǒng)編程與仿真

    工業(yè)機器人編程與操作-搬運機器人碼垛系統(tǒng)編程與仿真

    目錄 一、設計背景? 二、課程設計任務要求 三、設備導入并布局 四、傳送帶的smart組件 五、傳送帶整體思路 六、夾爪的smart組件6.1 LineSensor被測是否有任何對象與兩點之間 七、夾爪整體思路 八、程序配置 九、各程序 參考文獻 在科技和經(jīng)濟飛速發(fā)展的背景下,人力成本不斷

    2024年02月07日
    瀏覽(29)
  • 醫(yī)療機器人軟件中的機器人機器人編程技術:機器人技術的創(chuàng)新應用

    作者:禪與計算機程序設計藝術 隨著科技的發(fā)展,醫(yī)療機器人逐漸成為人們關注的熱門話題。醫(yī)療機器人可以在醫(yī)院、康復中心等各種場合為病人提供幫助,不僅可以提高工作效率,還能降低醫(yī)護人員的工作強度。而機器人編程技術則是實現(xiàn)醫(yī)療機器人功能的關鍵,本文將圍

    2024年02月07日
    瀏覽(35)
  • 使用go-cqhttp搭建本地qq機器人 并實現(xiàn)發(fā)送信息案例(使用python)語言實現(xiàn)

    使用go-cqhttp搭建本地qq機器人 并實現(xiàn)發(fā)送信息案例(使用python)語言實現(xiàn)

    目錄 1.go-cqhttp簡介 2.案例介紹 3.下載go-cqhttp 4.配置安裝 ①:下載之后我們可以將執(zhí)行程序放在一個新建的文件夾中,然后雙擊執(zhí)行該程序 直接點擊確定執(zhí)行 ?②:然后雙擊執(zhí)行該程序,會看到讓我們選擇一種通信方式,我們直接輸入0 選擇HTTP通信?,然后回車 ?③:然后他會

    2024年02月14日
    瀏覽(28)
  • 機器人尋路算法雙向A*(Bidirectional A*)算法的實現(xiàn)C++、Python、Matlab語言

    機器人尋路算法雙向A*(Bidirectional A*)算法的實現(xiàn)C++、Python、Matlab語言

    最近好久沒更新,在搞華為的軟件挑戰(zhàn)賽(軟挑),好卷只能說。去年還能混進32強,今年就比較迷糊了,這東西對我來說主要還是看運氣,畢竟沒有實力哈哈哈。 但是,好歹自己吭哧吭哧搞了兩周,也和大家分享一下自己的收獲吧,希望能為后來有需要的同學提供一些幫助

    2024年04月13日
    瀏覽(21)
  • 機器人倉庫搬磚(100%用例)C卷 (Java&&Python&&C++&&Node.js&&C語言)

    機器人搬磚,一共有N堆磚存放在N個不同的倉庫中,第i堆磚中有brick[i]塊磚頭,要求在8小時內(nèi)搬完。 機器人每小時能搬磚的數(shù)量取決于有多少能量格,機器人一個小時中只能在一個倉庫中搬磚,機器人的能量格每小時補充一次且能量格只在這個小時有效, 為使得機人損耗最小

    2024年01月21日
    瀏覽(13)
  • 機器人編程教程2探索機器人-代碼和電子設備

    機器人編程教程2探索機器人-代碼和電子設備

    我們將拆開一個機器人,看看它的部件和系統(tǒng)。我們將探索機器人的各個組成部分,包括軟件(代碼、命令和程序庫)和硬件,以及它們是如何組合在一起的。在開始制作機器人時,考慮你想要的部件以及它們之間的關系是很有價值的。我建議您繪制機器人的草圖--框圖,作

    2024年02月13日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包