नियंत्रण#
परिचय#
पायथन में कंट्रोल आपको रोबोट को यह बताने की सुविधा देता है कि कब प्रतीक्षा करनी है, कब क्रियाओं को दोहराना है, निर्णय कैसे लेने हैं और कब प्रोजेक्ट को समाप्त करना है।
नीचे उपलब्ध नियंत्रणों की सूची दी गई है, जिसमें विधियाँ और मुख्य पायथन कीवर्ड शामिल हैं:
wait– दिए गए समय के लिए प्रोजेक्ट को रोक देता है।for– अनुक्रम में प्रत्येक आइटम के लिए कोड दोहराता है।if– यदि कोई शर्त सही है तो कोड चलाता है।if/else– एक शर्त के आधार पर अलग-अलग कोड चलाता है।if/elif/else– क्रम में कई शर्तों की जाँच करता है।while– जब तक कोई शर्त सही है तब तक कोड दोहराता है।break– लूप से तुरंत बाहर निकलता है।quit– चल रहे प्रोजेक्ट को समाप्त करता है।pass– प्लेसहोल्डर का उपयोग तब किया जाता है जब किसी कार्रवाई की आवश्यकता नहीं होती है।
wait#
wait कोड की अगली पंक्ति पर जाने से पहले एक निश्चित समय के लिए रुकता है।
Usage:
wait(time, units)
पैरामीटर |
विवरण |
|---|---|
|
प्रतीक्षा करने का समय, धनात्मक पूर्ण संख्या या दशमलव के रूप में। |
|
प्रतीक्षा समय को दर्शाने वाली इकाई: |
# Fly for 1 second.
drone.take_off(climb_to=500)
wait(1, SECONDS)
drone.land()
for#
for क्रियाओं के एक सेट को एक विशिष्ट संख्या में दोहराता है। for का उपयोग सूचियों, टुपल्स, शब्दकोशों, सेटों, स्ट्रिंग्स में आइटम के माध्यम से लूप करने के लिए या range के साथ लूप की एक निर्दिष्ट मात्रा के लिए किया जा सकता है।
उपयोग:
for value in expression_list:
pass
अवयव |
विवरण |
|---|---|
|
एक अस्थायी चर जो पुनरावृति में वर्तमान तत्व को संग्रहीत करता है। |
|
लूप में शामिल किए जा रहे तत्वों का संग्रह (जैसे, सूची, स्ट्रिंग, रेंज)। |
# Move back and forth four times then land.
drone.take_off(climb_to=500)
for i in range(4):
drone.move_for(direction=0, distance=500, velocity=50, units=MM)
wait(1, SECONDS)
drone.move_for(direction=180, distance=500, velocity=50, units=MM)
wait(1, SECONDS)
drone.land()
# Print each item in a list.
colors = ["Red", "Green", "Blue"]
for color in colors:
controller.screen.print(color)
controller.screen.next_row()
if#
if इंडेंटेड कोड ब्लॉक चलाता है यदि शर्त True.
उपयोग:
if condition:
pass
अवयव |
विवरण |
|---|---|
|
एक एक्सप्रेशन या वेरिएबल जिसकी जाँच स्टेटमेंट चलने पर की जाती है। यदि यह |
# Take a picture when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
if controller.button5.pressing():
drone.camera.capture_image(FORWARD_CAMERA)
wait(5, MSEC)
if/else#
if और else यह निर्धारित करें कि कोड का कौन सा इंडेंटेड ब्लॉक चलता है, इस आधार पर कि शर्त True है या False।
उपयोग:
if condition:
pass
else:
pass
अवयव |
विवरण |
|---|---|
|
एक एक्सप्रेशन या वेरिएबल जिसकी जाँच स्टेटमेंट चलने पर की जाती है। यदि यह |
# Climb when the left joystick is moved up.
drone.take_off(climb_to=500)
while True:
if controller.axis1.position() > 0:
drone.climb(direction=UP, velocity=50)
else:
drone.hover()
wait(5, MSEC)
if/elif/else#
if/elif/else संरचना शर्तों के आधार पर यह चयन करती है कि कोड का कौन सा इंडेंटेड ब्लॉक चलेगा:
ifअपने ब्लॉक को चलाता है यदि शर्तTrue.elifअतिरिक्त शर्तों की जाँच केवल तभी करता है जब पिछली सभी शर्तेंFalse. एकाधिकelifकथनों का उपयोग किया जा सकता है।elseअपने ब्लॉक को तभी चलाता है जब पिछली कोई भी शर्त सही न होTrue.
उपयोग:
if condition:
pass
elif condition:
pass
else:
pass
अवयव |
विवरण |
|---|---|
|
An expression or variable that is checked when the statement runs. The first condition that is |
# Move the drone up or down based on the position of the joystick.
drone.take_off(climb_to=500)
while True:
position = controller.axis1.position()
if position > 0:
drone.climb(direction=UP, velocity=50)
elif position < 0:
drone.climb(direction=DOWN, velocity=50)
else:
drone.hover()
wait(5, MSEC)
while#
while तब तक कोड को बार-बार चलाता है जब तक कि शर्त Trueबनी रहती है। इसे True शर्त के रूप में उपयोग करके “हमेशा” के रूप में भी इस्तेमाल किया जा सकता है, या not शर्त में जोड़कर “तब तक प्रतीक्षा करें” के रूप में भी इस्तेमाल किया जा सकता है, जैसा कि नीचे दिए गए उदाहरणों में दिखाया गया है।
उपयोग:
while condition:
pass
अवयव |
विवरण |
|---|---|
|
एक एक्सप्रेशन या वेरिएबल जिसकी जाँच प्रत्येक पुनरावृति से पहले की जाती है। यदि यह |
# Hover at 200 mm.
drone.take_off(climb_to=500)
while drone.range.get_distance(DOWNWARD_RANGE, MM) > 200:
drone.climb(direction=DOWN, velocity=10)
drone.hover()
wait(3, SECONDS)
drone.land()
break#
break लूप से तुरंत बाहर निकल जाता है। break का उपयोग उन लूपों को छोड़ने के लिए किया जा सकता है जो अन्यथा हमेशा चलते रहते।
# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
if controller.button5.pressing():
break
wait(5, MSEC)
drone.land()
quit#
quit चल रहे प्रोजेक्ट को समाप्त करता है।
Usage:
quit()
पैरामीटर |
विवरण |
|---|---|
इस विधि के कोई मानदंड नहीं हैं। |
# Land when button 5 is pressed.
drone.take_off(climb_to=500)
while True:
# Move with controller
drone.move_with_vectors(
forward=controller.axis4.position(),
rightward=controller.axis3.position(),
upward=controller.axis1.position(),
rotation=controller.axis2.position()
)
if controller.button5.pressing():
quit()
wait(5, MSEC)
drone.land()
pass#
pass भविष्य के कोड के लिए एक प्लेसहोल्डर है और इसका उपयोग खाली लूप, सशर्त कथनों और फ़ंक्शन में त्रुटियों से बचने के लिए किया जा सकता है।
if condition:
pass
def function():
pass