Python_Junior_4A_Random隨機
Step 1:
隨機函數
在 CoDrone Mini 的程式中使用返回函數的方法之一是隨機數。這幾乎就是它聽起來的樣子:在匯入隨機庫之後,您可以建立一個將儲存隨機數的變數。以下是它會長成的樣子: random_number = randint(1, 10) 在這種情況下,變數將稱為 random_number 並且它們將在程式稍後呼叫(call)或使用 1 到 10 之間的數字。 from random import randint random_number = randint(1, 10) print(random_number) 請您嘗試看吧! 請使在隨機庫中打印出一個從 1 到 10 的隨機整數。當您看到後,請調整括號內的範圍以獲得不同的隨機數。 |
Step 2:
隨機LED
能讓 CoDrone Mini 查看返回值的方法之一是通過其 LED 和數字隨機化。 LED 課程的快速回顧:LED 可產生紅、綠和藍組合的顏色。 所有這些值的範圍都從 0 到 255,對應於顏色的強度,其中 255 是最高的。 對於該程式,請匯入 CoDrone Mini資料庫、時間庫和隨機庫,然後再建立無人機對象並與 CoDrone Mini 配對。 接著,請建立一個將運行 3 次的迴圈。 在迴圈中,請建立變數,當獲取 0 到 255 之間的隨機數時,會呈現紅、藍和綠。這三個數字組合在一起可改變 LED 的顏色。舉例來說,如果您的程式返回 RGB 值 13,246 和 197,則CoDrone Mini的LED會變成淺綠色。 接著,請讓CoDrone 起飛,再稍等片刻,然後請返回亮度為 100 的紅、綠和藍的隨機數。這應該會改變無人機 LED 的顏色。 之後,請讓無人機降落。 請試試這個程式吧,一旦您看到變化,您就可以在起飛和降落之間添加更多的飛行動作! import CoDrone_mini import time from random import randint drone = CoDrone_mini.CoDrone() drone.pair() for i in range(3): red = randint(0,255) blue = randint(0,255) green = randint(0,255) drone.takeoff() time.sleep(0.05) drone.LED_color(red,blue,green, 100) drone.land() |
Step 3:
猜數程式
您知道那個“我在想一個數字……”為開頭的遊戲嗎?您必須猜測這個人在想哪個數字的遊戲。你之後將會與無人機玩這個遊戲! 在匯入資料庫(CoDrone、方向、時間和隨機)後,請建立無人機對象並配對後,讓您的無人機起飛。 接著,請建立一個名為 throttle 的變數並將其值設置為 20。 請建立一個名為 number 的變數,它將儲存並返回 1 到 10 之間的數字。 請建立一個名為 guess 的變數,它會提示用戶輸入 1 到 10 之間的數字,然後儲存該值。 在 while 迴圈中,請設置條件。 如果他們的猜測太低,無人機會減速。 如果他們的猜測太高,無人機會加速。 如果他們的猜測是正確的,無人機會做一個翻轉。 該程式還會包括一個打印(print)statement,用於當用戶猜測一個不在 1-10 之間的數字時,如果他們想退出程式,則可中斷遊戲。 最後,無人機會降落。 您的最終程式應如下所示: import CoDrone_mini from CoDrone_mini import Direction import time from random import randint drone = CoDrone_mini.CoDrone() drone.pair() drone.takeoff() throttle = 20 number = randint(1, 10) # randomly choose a number between 1-10 while True: guess = int(input("Guess a number from 1 - 10... or enter 0 to quit: ")) # get input from user if guess == 0: break elif guess > 10 or guess < 0: print("Number is not between 1-10. Try again.") elif guess == number: print("Perfect!") time.sleep(0.05) drone.flip(Direction.FORWARD) break elif guess < number: print("Too low!") drone.set_throttle(-throttle) drone.move(1) elif guess > number: print("Too High!") drone.set_throttle(throttle) drone.move(1) drone.land() |
Step 4:
挑戰
挑戰:神奇8號球 如果您不完全確定什麼是神奇8號球,它是一個當您問是或否問題時,可以預測您未來的玩具。回應可以是正面的、負面的或不確定的。 請將 CDM 變成神奇8號球! 請為以下每個問題想出 4 個答案:是的答案,也許是答案,或者沒有答案。然後請使用 input() 函數向用戶提問。程式將隨機選擇其中一個答案,並將 LED 變為綠、黃或紅,並伴隨飛行動作。 |
Python_Junior_4B_Timers計時器
Step 1:
計時器是如何運作的?
計時器無處不在,因此它們可能看起來沒什麼大不了的。但是,能在您的程式中使用的計時器,是一項非常有用且強大的技能!這可以幫助您更好地追蹤您的無人機及其中的運作。 在使用 CoDrone Mini,時間將儲存在變數中。 在本課程中,您將會把開始時間儲存在一個變數中,結束時間儲存在另一個變數中,然後將兩者相減以獲得總經過時間。 |
Step 2:
總飛行計時器
對於此項活動,您將編程一個計時器來觀察您的 CoDrone Mini 的總飛行時間,從起飛開始到降落結束。 在匯入 CoDrone Mini 和時間庫後,請建立無人機對象並配對,再建立一個變數來儲存無人機的開始時間(我們稱為 start_time)。請讓你的無人機起飛和降落,然後建立另一個變數來儲存無人機的結束時間(我們稱之為 end_time)。 為了要獲得無人機飛行的總時間,請建立一個變數,從 end_time 中減去 start_time。我們稱之為持續時間 (elapsed_time)。最後,請使用打印(print)指令讓您的程式以秒為單位打印(print)經過的時間。 一旦您試過了,請在您的程式中添加懸停和一些飛行動作。 請問你有注意到那些變化嗎? 你的編碼應該是這樣的: import CoDrone_mini import time drone = CoDrone_mini.CoDrone() drone.pair() start_time = time.time() drone.takeoff() drone.land() end_time = time.time() elapsed_time = end_time - start_time |
Step 3:
移動計時器
如果您想檢查你在程序中的一個部分花了多長時間,舉個例來說,就像無人機在一個正方形內飛行需要多長時間,或者向前俯仰 2 秒實際上需要 2 秒。這裏有一種方法可以做到這一點,它只需要在您的程式中移動一些計時器! 在匯入CoDrone Mini資料庫和時間庫後,請建立無人機對象並配對,再讓您的無人機起飛,然後將俯仰設置為 40。 接著,請建立一個變數來儲存無人機的啟動時間,然後請讓無人機移動 2 秒。 在這個位置啟動計時器非常重要! 在設置音高之前啟動它會增加額外的時間,而在無人機移動之後啟動它會跳過你想要計時的時間。 在無人機的移動指令之後,請建立另一個變數來儲存無人機的結束時間,然後讓無人機降落。 請建立另一個變數,從 end_time 中減去 start_time,並使用打印指令讓您的程式以秒為單位打印經過的時間。 在試用後,請使用計時器,看看移動指令是否有佔用了您輸入參數的時間? 如果有額外的時間,你認為它從哪裡來呢?請移動計時器,再增加更多的飛行動作。請看看有發生什麼事嗎? 你的編碼應該是這樣的: import CoDrone_mini import time drone = CoDrone_mini.CoDrone() drone.pair() drone.takeoff() drone.set_pitch(40) start_time = time.time() drone.move(2) end_time = time.time() drone.land() elapsed_time = end_time - start_time print(elapsed_time) |
Step 4:
在函數中使用定時器
為一件事建立多個變量的時間可能是一個很大的挑戰。 如果您想為一個動作計時,您可以建立一個函數! 這將為 move()功能運行一個計時器,無論您在參數中輸入多少秒。 在匯入 CoDrone Mini 和時間庫、建立無人機對象並進行配對後,請定義一個函數(我們稱其為 fly() )並將秒數放入參數中。 接著,請建立一個變數來儲存無人機的開始時間。 請建立一個while迴圈,假設時間減去開始時間小於參數中的秒數,則無人機會移動。 接著,請讓無人機起飛並將俯仰設置為30。請把飛行功能包含在內並將參數設置為2秒,然後讓無人機降落。 請玩弄參數中時間吧,再觀察有什麼事情發生嗎? 請問增加或減少俯仰對時間有影響嗎? 您的編碼應該會長這樣: import CoDrone_mini import time drone = CoDrone_mini.CoDrone() drone.pair() # -------- function definition --------- def fly(seconds): start_time = time.time() while time.time() - start_time < seconds: drone.move() # -------------------------------------- drone.takeoff() drone.set_pitch(30) fly(2) drone.land() |
Step 5:
挑戰
挑戰:一分鐘計時賽跑 請在一分鐘內盡可能多地執行飛行運動。(根據 elapsed_time 程式中的變數)! 規則如下:
|