สารบัญ:

นำทางซอฟต์แวร์ของ Raspberry Pi: ตอนที่ 2: 10 ขั้นตอน
นำทางซอฟต์แวร์ของ Raspberry Pi: ตอนที่ 2: 10 ขั้นตอน

วีดีโอ: นำทางซอฟต์แวร์ของ Raspberry Pi: ตอนที่ 2: 10 ขั้นตอน

วีดีโอ: นำทางซอฟต์แวร์ของ Raspberry Pi: ตอนที่ 2: 10 ขั้นตอน
วีดีโอ: Setting Up a Raspberry Pi 4 | Vilros 2024, กรกฎาคม
Anonim

โดย push_resetFollow เพิ่มเติมโดยผู้เขียน:

คลาสอิเล็กทรอนิกส์สวมใส่ได้
คลาสอิเล็กทรอนิกส์สวมใส่ได้
คลาสอิเล็กทรอนิกส์สวมใส่ได้
คลาสอิเล็กทรอนิกส์สวมใส่ได้
คลาส Raspberry Pi
คลาส Raspberry Pi
คลาส Raspberry Pi
คลาส Raspberry Pi
วิธีเชื่อมต่อ Werkstatt-01 กับโมดูล Eurorack
วิธีเชื่อมต่อ Werkstatt-01 กับโมดูล Eurorack
วิธีเชื่อมต่อ Werkstatt-01 กับโมดูล Eurorack
วิธีเชื่อมต่อ Werkstatt-01 กับโมดูล Eurorack

เกี่ยวกับ: เชี่ยวชาญในการตัดเย็บ บัดกรี และอาหารว่าง สิ่งอื่น ๆ ที่ฉันทำ… ฉันสอนวิชาแฟชั่นและสิ่งทอแบบอินเทอร์แอคทีฟที่ชื่อว่า Wearable and Soft Interactions ที่ California College of the Arts www.wearablesoftin… ข้อมูลเพิ่มเติมเกี่ยวกับ push_reset »

บทเรียนนี้เป็นความต่อเนื่องของการศึกษาตามบรรทัดคำสั่งของคุณ เมื่อคุณทำงานกับ Raspberry Pi คุณจะต้องติดตั้งซอฟต์แวร์ใหม่อย่างไม่ต้องสงสัยเพื่อเรียนรู้ ทดลองใช้งาน และสร้างด้วย ในบทเรียนนี้ คุณจะได้เรียนรู้วิธีติดตั้งแพ็คเกจซอฟต์แวร์และวิธีค้นหาและอัปเกรดแพ็คเกจ คุณจะเขียนและรันโปรแกรมแรกของคุณโดยใช้ CLI!

ขั้นตอนที่ 1: การติดตั้งแพ็คเกจ

มีแพ็คเกจซอฟต์แวร์ที่สนุกและมีประโยชน์มากมาย (แพ็คเกจสั้น ๆ) พร้อมใช้งานบน Raspberry Pi ในการดาวน์โหลดและติดตั้งแพ็คเกจบน Raspberry Pi คุณจะต้องใช้คำสั่ง apt-get เป็นหลัก คำสั่งนี้ใช้เพื่อติดตั้ง ลบ และอัพเดตแพ็คเกจ APT (Advanced Packaging Tool) เป็นเครื่องมือที่สืบทอดมาจาก OS Debian ที่ Raspbian สร้างขึ้น ซึ่งหมายความว่าหากคุณพบแพ็คเกจที่ใช้งานได้กับสถาปัตยกรรม Debian และ ARM6 ของ Raspberry Pi ก็น่าจะใช้ได้กับ Raspbian

ตลอดการผจญภัยของ Raspberry Pi คุณจะดาวน์โหลดแพ็คเกจมากมาย ImageMagick เป็นชุดซอฟต์แวร์ที่จะใช้ในภายหลังในชั้นเรียน ดังนั้นจึงเป็นชุดที่สมบูรณ์แบบสำหรับการเริ่มต้น

ก่อนติดตั้งแพ็คเกจซอฟต์แวร์ คุณต้องอัปเดตรายการแพ็คเกจปัจจุบันของ Raspberry Pi ก่อน apt-get พร้อม apt-get update ชอบดังนั้น:

apt-get update

ภาพ
ภาพ

คุณจะได้รับข้อผิดพลาดว่า "การอนุญาตถูกปฏิเสธ" และถามว่าคุณรูทหรือไม่ ทำไมถึงเป็นอย่างนั้น? เพื่อทำการเปลี่ยนแปลงประเภทนี้กับซอฟต์แวร์ของ Raspberry Pi เราต้องการการอนุญาตที่มอบให้เฉพาะรูทผู้ใช้ระดับสูงเท่านั้น โชคดีที่คุณรู้วิธีทำหน้าที่เป็นรูทในขณะที่เข้าสู่ระบบในฐานะผู้ใช้ pi โดยใช้ sudo บัญชีผู้ใช้ที่ไม่มีสิทธิ์รูทจะต้องป้อนรหัสผ่านรูทเพื่อดำเนินการคำสั่ง sudo

sudo apt-get update

คราวนี้ การอัปเดตจะดำเนินการสำเร็จ

ภาพ
ภาพ

ใช้ sudo ก่อนคำสั่ง

ภาพ
ภาพ

อัพเดทเสร็จแล้ว

หลังจากอัปเดต คุณก็พร้อมที่จะติดตั้งแพ็คเกจแล้ว ในการดาวน์โหลด ImageMagick ให้ใช้ apt-get ด้วยคำสั่ง install บวกกับชื่อของแพ็คเกจ (อย่าลืม sudo!):

sudo apt-get ติดตั้ง imagemagick

ภาพ
ภาพ

ก่อนที่กระบวนการจะเสร็จสมบูรณ์ คุณจะได้รับแจ้งว่าแอปพลิเคชันจะใช้พื้นที่เก็บข้อมูลเท่าใด และหากคุณต้องการดำเนินการต่อ พิมพ์ "y" เพื่อใช่แล้ว "ป้อน"

ภาพ
ภาพ

พิมพ์ "y" เพื่อดำเนินการติดตั้งต่อ

ภาพ
ภาพ

ติดตั้งเสร็จเรียบร้อย

หลังจากใช้คำสั่งติดตั้ง คุณมักจะถูกถามว่าต้องการติดตั้งต่อหรือไม่ มีเคล็ดลับในการหลีกเลี่ยงที่ต้องพิมพ์ "y" ทุกครั้งเพื่อดำเนินการต่อ ใช้แฟล็ก -y สิ่งนี้จะเรียกใช้ตัวเลือก apt-get ที่ให้ "ใช่" โดยอัตโนมัติสำหรับข้อความแจ้งใช่/ไม่ใช่ใดๆ ที่ทำตามคำสั่งติดตั้ง คุณจำวิธีการดูตัวเลือกของเครื่องมือบรรทัดคำสั่งที่มีให้ใช้งานได้อย่างไร

การพึ่งพา

บางครั้งเมื่อคุณติดตั้งแพ็คเกจ พวกเขาจำเป็นต้องติดตั้งแพ็คเกจอื่นเพื่อใช้งาน ไฟล์และแพ็คเกจที่จำเป็นเหล่านี้เรียกว่าการพึ่งพา ต่อมา คุณจะได้เรียนรู้วิธีค้นหาการขึ้นต่อกันของแพ็คเกจ

ขั้นตอนที่ 2: การถอนการติดตั้งแพ็คเกจ

ในการถอนการติดตั้งและลบแพ็คเกจทั้งหมด ให้ใช้คำสั่ง purge ด้วย apt-get การดำเนินการนี้จะถอนการติดตั้งแพ็คเกจและไฟล์การกำหนดค่าทั้งหมดที่มาพร้อมกับการติดตั้ง

sudo apt-get purge packageName

หลังจากใช้ purge ให้ใช้คำสั่ง autoremove เพื่อลบแพ็คเกจใด ๆ บน Raspberry Pi ที่ไม่จำเป็น สิ่งนี้ทำได้เพราะจะลบการพึ่งพาที่มาพร้อมกับการติดตั้งแพ็คเกจที่คุณกำลังล้าง ตัวอย่างเช่น หากคุณติดตั้งแพ็คเกจ Z อาจติดตั้งแพ็คเกจ X และ Y เพื่อให้ Z ทำงานได้อย่างถูกต้อง เมื่อคุณใช้การล้างเพื่อถอนการติดตั้งแพ็คเกจ Z จะไม่ลบแพ็คเกจ X และ Y Autoremove ทำเช่นนั้น:

sudo apt-get autoremove

ขั้นตอนที่ 3: วิธีสร้างไฟล์ข้อความ

การสร้างและแก้ไขเอกสารข้อความมีประโยชน์หรือกำหนดค่า Raspberry Pi และเขียนโปรแกรม มีโปรแกรมแก้ไขข้อความบรรทัดคำสั่งเช่นเดียวกับโปรแกรมแก้ไขสำหรับใช้ผ่านสภาพแวดล้อมเดสก์ท็อปเช่น Leaf บน Raspberry Pi และ Microsoft Word บน Windows คุณสามารถเขียน แก้ไข และบันทึกไฟล์ข้อความโดยใช้ตัวแก้ไขบรรทัดคำสั่ง Nano Nano เป็นโปรแกรมแก้ไขข้อความอย่างง่ายที่ติดตั้งบน Linux distros จำนวนมากรวมถึง Raspbian ใช้งานง่ายและเป็นมิตรกับผู้เริ่มต้นมาก

เริ่มต้นด้วยการเปิดไฟล์ใหม่:

นาโน

ซึ่งจะเปิดบัฟเฟอร์ใหม่ซึ่งเหมือนกับไฟล์ข้อความเปล่าที่ไม่มีชื่อ ที่มุมซ้ายบน คุณจะพบชื่อแอปพลิเคชันและหมายเลขเวอร์ชัน ชื่อของไฟล์อยู่ที่กึ่งกลางด้านบนซึ่งโดยค่าเริ่มต้นจะเรียกว่า "บัฟเฟอร์ใหม่" ที่ด้านล่างของหน้าต่าง มีสามบรรทัด บรรทัดบนสุดระบุสถานะของไฟล์ที่คุณกำลังแก้ไข ตอนนี้มันบอกเราว่าไฟล์ที่เรากำลังแก้ไขคือ "ไฟล์ใหม่" สองบรรทัดด้านล่างนั้นเป็นชุดของแป้นพิมพ์ลัด ทางลัดที่คุณเห็นเป็นทางลัดที่ใช้บ่อยที่สุด แต่ก็มีอีกมากมาย หากต้องการดูทางลัดทั้งหมดที่มีพร้อมคำอธิบายวิธีใช้งาน ให้กด Ctrl + G ทางลัดนี้จะแสดงหน้าความช่วยเหลือ หากต้องการออกจากหน้าช่วยเหลือ ให้กด Ctrl + X

ภาพ
ภาพ
ภาพ
ภาพ

ตามที่ระบุไว้ในหน้าวิธีใช้ หากต้องการบันทึกไฟล์ ให้กด Ctrl + O หรือหากคุณออกจาก Nano โดยใช้ Ctrl + X ระบบจะขอให้คุณบันทึกไฟล์ก่อนออก

ขั้นตอนที่ 4: สร้างเชลล์สคริปต์

จนถึงตอนนี้เราได้ดำเนินการคำสั่งบรรทัดเดียว สามารถรวมคำสั่งต่างๆ เข้าด้วยกันเป็นไฟล์เดียว บันทึกแล้วเรียกใช้โดย Raspberry Pi ดำเนินการทั้งหมดจากบนลงล่าง สิ่งนี้เรียกว่าเชลล์สคริปต์ สคริปต์เป็นเพียงไฟล์ข้อความที่มีหลายคำสั่งและบันทึกด้วยส่วนต่อท้าย.sh คุณสามารถสร้างสคริปต์โดยใช้โปรแกรมแก้ไขข้อความใดก็ได้ แต่เนื่องจากคุณเพิ่งค้นพบ Nano ให้ยึดติดกับมัน

สร้างไฟล์ข้อความใหม่ใน Nano ชื่อ helloMe โดยพิมพ์:

นาโน helloMe.sh

สำหรับบรรทัดแรกของประเภทโปรแกรมของคุณ:

#!/bin/sh

บรรทัดนี้เรียกว่า shebang มันระบุไฟล์ข้อความของคุณเป็นสคริปต์ที่ Bash จำเป็นต้องดำเนินการ หากอักขระที่ไม่ถูกต้องปรากฏขึ้นเมื่อคุณพยายามพิมพ์ # ให้กลับไปที่การกำหนดค่ารูปแบบแป้นพิมพ์ของคุณ

สำหรับเชลล์สคริปต์แรกของคุณ คุณจะต้องเขียนสคริปต์ไทม์แลปส์สำหรับโมดูลกล้อง มันจะถ่ายภาพหนึ่งภาพโดยอัตโนมัติจากนั้นอีกภาพหนึ่งทุกๆ 2 วินาทีในช่วงเวลาทั้งหมด 10 วินาที

เขียนสองบรรทัดนี้ในไฟล์ข้อความเปิดของคุณ:

raspistill -w 800 -h 600 -t 10000 -tl 2000 -o image%02d.jpg

แปลง -delay 10 -loop 0 image*.jpg animateMe.gif

มาดูกันว่าเกิดอะไรขึ้นในสองบรรทัดนี้

ตามค่าเริ่มต้น กล้องจะถ่ายภาพที่มีความละเอียด 3280 × 2464 พิกเซลที่ 72 ppi (พิกเซลต่อนิ้ว) ซึ่งมีขนาดค่อนข้างใหญ่และส่งผลให้ภาพใช้เวลาในการประมวลผลนานขึ้น ในรูปภาพ Raspistill สามารถปรับขนาดได้โดยระบุความกว้างและความสูง

  • -w และ -h ใช้เพื่อปรับขนาดภาพเป็น 800 x 600 พิกเซล
  • -t ระบุระยะเวลาทั้งหมดที่กระบวนการทั้งหมดใช้หน่วยมิลลิวินาที
  • -tl บ่อยแค่ไหนที่จะถ่ายรูป
  • -o ชื่อไฟล์เอาต์พุต
  • image%02d.jpg ตั้งชื่อรูปภาพโดยอัตโนมัติด้วยรูปภาพพร้อมเว้นวรรคสองช่องทางด้านขวาสำหรับตัวนับที่สร้างขึ้น ตัวอย่างเช่น:

    • image00.jpg
    • image01.jpg
    • image02.jpg

หากคุณรู้สึกว่าคุณอาจถ่ายภาพมากกว่า 99 ภาพ คุณสามารถสร้างช่องว่างได้ 3 หรือ 4 ภาพ เพื่อให้คุณสามารถบันทึกภาพได้หลายพันภาพโดยใช้ image%03d-j.webp

convert เป็นคำสั่งจาก ImageMagick บรรทัดนี้นำ jpegs ที่บันทึกไว้ทั้งหมดที่มีคำนำหน้าของรูปภาพและแปลงเป็น-g.webp

-loop 0 หมายความว่า-g.webp

กด Ctrl + X เพื่อออกจาก Nano แล้วกด "y" เพื่อบันทึกสองบรรทัดนี้เป็น helloMe.sh

ขั้นตอนที่ 5: เรียกใช้เชลล์สคริปต์

เรียกใช้เชลล์สคริปต์
เรียกใช้เชลล์สคริปต์

คุณมีสคริปต์แรกแต่ยังไม่พร้อมที่จะเรียกใช้ การเรียกใช้สคริปต์นั้นหมายถึงการเริ่มต้น ก่อนรันเชลล์สคริปต์ จะต้องทำให้สามารถเรียกใช้งานได้ก่อน ทำได้โดยใช้ chmod +x หน้าชื่อสคริปต์

chmod +x สวัสดีMe.sh

เมื่อทำให้ปฏิบัติการได้แล้ว สคริปต์ก็พร้อมที่จะรันแล้ว หาตัวแบบที่จะเล็งกล้องไปที่ (ตัวคุณเอง!) และเตรียมตัวให้พร้อม โปรดจำไว้ว่าโดยค่าเริ่มต้น กล้องจะแสดงตัวอย่างเป็นเวลา 5 วินาทีก่อนถ่ายภาพ นี่คือเวลาที่คุณต้องเตรียมก่อนที่จะเริ่มถ่ายภาพ

เรียกใช้สคริปต์นี้โดยใช้คำสั่ง sh ก่อนชื่อสคริปต์:

sh สวัสดีMe.sh

หรือคุณสามารถใส่ bash ก่อนชื่อที่บอกให้ Raspberry Pi รันโดยใช้ Bash:

ทุบตี helloMe.sh

ในการรันสคริปต์ คุณต้องอยู่ในไดเร็กทอรีเดียวกันกับที่บันทึกไว้ หากคุณพบว่าคุณไม่ได้อยู่ในไดเร็กทอรีเดียวกัน ให้ใช้ cd เพื่อนำทางไปที่นั่น

ตรวจสอบเพื่อดูรูปภาพและ-g.webp

ลส

เปิด animateMe-g.webp

xdg-open animateMe.gif

ขั้นตอนที่ 6: การอัพเกรดแพ็คเกจ

การอัปเกรดแพ็คเกจหมายถึงการอัปเดตเป็นเวอร์ชันล่าสุด ในการอัพเกรดแพ็คเกจทั้งหมดบน Raspberry Pi จะใช้คำสั่งอัพเกรด ก่อนที่คุณจะเรียกใช้ upgrade คุณต้องเรียกใช้ apt-get update ก่อน:

sudo apt-get update

sudo apt-get อัพเกรด

เพื่อให้แน่ใจว่าการขึ้นต่อกันที่อาจเกิดขึ้นสำหรับซอฟต์แวร์ที่ติดตั้งใหม่นั้นเป็นข้อมูลล่าสุดและอาจแก้ไขจุดบกพร่องได้ คำสั่งอัปเกรดจะใช้เวลาหลายนาทีจึงจะเสร็จสิ้น และอาจต้องมีการตรวจสอบ/การโต้ตอบระหว่างกระบวนการ ขึ้นอยู่กับว่าแพ็คเกจใดกำลังอัพเกรด การใช้การอัปเดตและอัปเกรดเป็นประจำจะทำให้อิมเมจ OS ของ Raspberry Pi อัปเดตอยู่เสมอ โดยพื้นฐานแล้วจะเหมือนกับการดาวน์โหลดรูปภาพล่าสุดของ Raspbian ที่มี

หากคุณต้องการอัปเกรดแพ็คเกจเฉพาะ ให้ดาวน์โหลดอีกครั้ง:

sudo apt-get install packageNameUWant2Update

หากคุณมีแพ็คเกจเวอร์ชันใหม่ล่าสุด APT อยู่แล้วจะแจ้งให้คุณทราบในหน้าต่างเทอร์มินัลว่า "…กำลังเรียกใช้เวอร์ชันล่าสุดแล้ว.."

ขั้นตอนที่ 7: ค้นหาและค้นหาแพ็คเกจ

มีแพ็คเกจมากมายให้ดาวน์โหลดสำหรับ Raspbian หากต้องการดูรายการแพ็คเกจที่มีให้ไปที่นี่ ในการค้นหาแคชของซอฟต์แวร์นี้ คุณต้องใช้เครื่องมือ apt-cache คุณสามารถใช้ apt-cache ร่วมกับคำสั่งต่างๆ เพื่อค้นหาข้อมูลอื่นๆ เกี่ยวกับแพ็คเกจเฉพาะ หรือเพื่อดูว่ามีอยู่จริงหรือไม่ และต้องใช้การพึ่งพาใดในการทำงาน รายการด้านล่างเป็นคำสั่ง apt-cache ที่มีประโยชน์ สำหรับรายการทั้งหมด โปรดไปที่ linux.die.net

หากต้องการค้นหาแพ็กเกจที่มีสำหรับคำหลัก ให้ใช้การค้นหาร่วมกับคำหลักที่คุณต้องการค้นหา:

เพลงค้นหา apt-cache

ซึ่งจะส่งผลให้รายการแพ็คเกจที่มีคำว่า "เพลง"

ภาพ
ภาพ

นอกจากนี้ยังให้คำอธิบายสั้น ๆ ถัดจากผลลัพธ์แต่ละรายการ ซึ่งเป็นวิธีที่ดีในการเรียนรู้เพิ่มเติมเกี่ยวกับแพ็คเกจเฉพาะ หากคุณทราบชื่อแล้ว ตัวอย่างเช่น ฉันเห็นแพ็คเกจที่กล่าวถึงในบทความชื่อ amsynth หากต้องการคำอธิบายสั้น ๆ ว่ามันคืออะไร ฉันสามารถพิมพ์:

apt-cache ค้นหา amsynth

ภาพ
ภาพ

สำหรับคำอธิบายที่ยาวขึ้นพร้อมกับหมายเลขเวอร์ชัน ขนาด หน้าแรก และอื่นๆ ให้ใช้ show:

apt-cache แสดง amsynth

ภาพ
ภาพ

หากต้องการค้นหาชื่อเฉพาะของแพ็คเกจ ให้ใช้คำสั่ง pkgnames หากมีก็จะเปิดเผยตัวเอง:

apt-cache pkgnames amsynth

ภาพ
ภาพ

หากแพ็คเกจมีการขึ้นต่อกันจะต้องดาวน์โหลดด้วย ในการค้นหาการขึ้นต่อกันของแพ็คเกจ ให้ใช้คำสั่ง ขึ้นอยู่กับ บวกกับชื่อแพ็คเกจ

apt-cache ขึ้นอยู่กับ amsynth

ภาพ
ภาพ

ขั้นตอนที่ 8: ปิดเครื่อง + รีบูตจาก CLI

การปิดระบบและรีบูตเครื่องใน LXTerminal เป็นวิธีที่แนะนำสำหรับคลาสนี้เมื่อคุณใช้บรรทัดคำสั่งต่อไป แต่คุณอาจใช้ฟังก์ชันเดียวกันนี้ได้โดยใช้เมาส์และแถบงาน

ดังที่ได้กล่าวไว้ก่อนหน้านี้ OS ของ Raspberry Pi ต้องปิดตัวลงอย่างถูกต้องเพื่อหลีกเลี่ยงความเสียหายที่อาจเกิดขึ้น การปิดระบบเกี่ยวข้องกับการยกเลิกกระบวนการทั้งหมดในระบบอย่างเป็นระเบียบ ตลอดจนงานดูแลทำความสะอาดที่สำคัญบางอย่าง มีสี่คำสั่งที่สามารถทำหน้าที่นี้ได้: halt, poweroff, reboot และ shutdown

ด้วยคำสั่งปิดเครื่อง คุณสามารถระบุได้ว่าจะดำเนินการใด (หยุด ปิดเครื่อง หรือรีบูต) และให้การหน่วงเวลาสำหรับเหตุการณ์การปิดระบบ การระบุ "ตอนนี้" จะดำเนินกิจกรรมทันที หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่แต่ละคำสั่งในสี่คำสั่งทำ ให้ดูที่หน้าคู่มือของพวกเขา

ปิดตัวลง

sudo หยุด

sudo ปิด -h ตอนนี้

เมื่อคุณปิดระบบ ไฟ LED ACT บน Raspberry Pi จะกะพริบและคงที่ เมื่อคงที่แล้วให้ถอดแหล่งจ่ายไฟออก

รีบูต

sudo รีบูต

sudo ปิด -r ตอนนี้

ขั้นตอนที่ 9: การกำหนดค่า Raspberry Pi จาก CLI

จำได้ไหมว่าเมื่อเราผ่านและกำหนดค่า Raspberry Pi ผ่าน GUI บนเดสก์ท็อป? Raspberry Pi สามารถกำหนดค่าผ่าน CLI โดยใช้คำสั่ง raspi-config:

sudo raspi-config

ที่เมนู ใช้ปุ่มลูกศรขึ้นและลงเพื่อเลื่อนไปตามตัวเลือกต่างๆ ใช้ลูกศรขวาเพื่อเลือก เสร็จสิ้น เมื่อคุณทำเสร็จแล้วและพร้อมที่จะออก คุณไม่จำเป็นต้องตั้งค่าอย่างอื่นสำหรับคลาสนี้ แต่ตอนนี้คุณกลายเป็นมือโปรใน LXTerminal อย่างรวดเร็วแล้ว คุณสามารถใส่สิ่งนี้ไว้ในกระเป๋าของคุณเพื่อใช้เป็นวิธีกำหนดค่า Raspberry Pi

นี่คือตัวอย่างวิธีเปิดใช้งานกล้องด้วย raspi-config (ไม่จำเป็นต้องเปิดใช้งาน คุณได้ดำเนินการไปแล้วในบทเรียน Get Set Up)

ภาพ
ภาพ
ภาพ
ภาพ
ภาพ
ภาพ
ภาพ
ภาพ

ขั้นตอนที่ 10: อัปโหลดรูปภาพ

อัปโหลดรูปภาพหนึ่งภาพที่ถ่ายโดยเรียกใช้เชลล์สคริปต์แรกของคุณ (ขออภัยไม่รองรับ-g.webp

แนะนำ: