എന്താണ് ഒരു വിഷൻ സെൻസർ? - പൈത്തൺ
ടീച്ചർ ടൂൾബോക്സ്
-
ഈ പേജിന്റെ ഉദ്ദേശ്യം
ഈ പേജ് വിദ്യാർത്ഥികളെ ഒരു വിഷൻ സെൻസർ എന്താണെന്നും അതിന്റെ ചില കഴിവുകളെക്കുറിച്ചും പരിചയപ്പെടുത്തും. VEXcode V5-നൊപ്പം വിഷൻ സെൻസർ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് കാണുന്നതിന്, വിദ്യാർത്ഥികൾ ഒരു ഉദാഹരണ പ്രോജക്റ്റിന്റെ ഭാഗിക ചിത്രം വിശകലനം ചെയ്യും.
പേജിന്റെ അടിയിലുള്ള മോട്ടിവേറ്റ് ചർച്ചാ ചോദ്യങ്ങൾ ഒരു ക്ലാസ് ചർച്ചയായോ അല്ലെങ്കിൽ വിദ്യാർത്ഥികളുടെ എഞ്ചിനീയറിംഗ് നോട്ട്ബുക്കുകളിൽ വ്യക്തിഗതമായോ പൂർത്തിയാക്കാവുന്നതാണ്.
ചർച്ചയ്ക്ക് പ്രചോദനം നൽകുക
ചോദ്യം:ഒരു വിഷൻ സെൻസറുള്ള ഒരു റോബോട്ടിന്റെ സഹായം ഏതൊക്കെ തരത്തിലുള്ള മനുഷ്യ ജോലികൾക്കാണ് പ്രയോജനം ചെയ്യുക?
ഉത്തരം:പരിസ്ഥിതികളെ കാണാനും വിദൂര ദൂരങ്ങളിൽ നിന്ന് ചുറ്റുപാടുകൾ കൈകാര്യം ചെയ്യാനും (ഉദാഹരണത്തിന്, കാട്ടിൽ മൃഗങ്ങളെ നിരീക്ഷിക്കുക, സ്ഫോടകവസ്തുക്കൾ നിരായുധമാക്കുക, അല്ലെങ്കിൽ റോബോട്ട് സഹായത്തോടെയുള്ള ശസ്ത്രക്രിയ നടത്തുക) കഴിവിൽ നിന്ന് പ്രയോജനം ലഭിക്കുന്ന മനുഷ്യ ജോലികൾ ശ്രദ്ധിക്കുക.
ചോദ്യം:ഒരു ഉപകരണത്തിന് പേര് നൽകി അത് ഇൻപുട്ട്, ഔട്ട്പുട്ട്, പ്രോസസ്സ് എന്നിവ എങ്ങനെ ഉപയോഗിക്കുന്നു എന്ന് വിവരിക്കുക.
ഉത്തരം:ഒരു വ്യക്തി ഇൻപുട്ട് ചെയ്യുന്ന സംഖ്യകളുടെയും ഗണിത ഓപ്പറേറ്ററുകളുടെയും ക്രമങ്ങൾ എടുത്ത്, ആ സംഖ്യകളും പ്രവർത്തനങ്ങളും പ്രോസസ്സ് ചെയ്ത്, ഫലം കണക്കാക്കി, തുടർന്ന് ആ വ്യക്തിക്കായി ഒരു സ്ക്രീനിൽ ഔട്ട്പുട്ട് ചെയ്യുന്ന ഒരു കാൽക്കുലേറ്റർ ആകാം ഒരു സാധ്യമായ ഉത്തരം.
ചോദ്യം:കാണിച്ചിരിക്കുന്ന പ്രോജക്റ്റിൽ ഒരു ഫോറെവർ ലൂപ്പ് ഉപയോഗിച്ചത് എന്തുകൊണ്ടാണെന്ന് നിങ്ങൾ കരുതുന്നു?
ഉത്തരം:ഒരു ഫോറെവർ ലൂപ്പ് ഉപയോഗിച്ചതിനാൽ, വിഷൻ സെൻസർ ഒന്നിലധികം സ്നാപ്പ്ഷോട്ടുകൾ തുടർച്ചയായി പരിശോധിച്ച് ഒരു ചുവന്ന വസ്തു സെൻസറിൽ ദൃശ്യമാകുന്നുണ്ടോ എന്ന് പരിശോധിച്ചു.
വിവരണം
ഒരു തത്സമയ ഫീഡിൽ നിന്ന് ദൃശ്യ ഡാറ്റ ശേഖരിക്കാൻ വിഷൻ സെൻസർ നിങ്ങളുടെ റോബോട്ടിനെ അനുവദിക്കുന്നു. ഒരു വീഡിയോ ക്യാമറ പകർത്തുന്നതിന്റെ സ്ട്രീമിംഗ് ട്രാൻസ്മിഷനാണ് ലൈവ് ഫീഡ്. വിഷ്വൽ സെൻസർ ഒരു സ്മാർട്ട് ക്യാമറ പോലെയാണ്, അതിന് അതിന്റെ ദൃശ്യ മണ്ഡലത്തിൽ ദൃശ്യമാകുന്ന നിറങ്ങളും വസ്തുക്കളും നിരീക്ഷിക്കാനും തിരഞ്ഞെടുക്കാനും ക്രമീകരിക്കാനും സംഭരിക്കാനും കഴിയും.
കഴിവുകൾ:
- നിറങ്ങളും വർണ്ണ പാറ്റേണുകളും തിരിച്ചറിയാൻ ഈ സെൻസർ ഉപയോഗിക്കാം.
- ഒരു വസ്തുവിനെ പിന്തുടരാൻ ഈ സെൻസർ ഉപയോഗിക്കാം.
- പരിസ്ഥിതിയെക്കുറിച്ചുള്ള വിവരങ്ങൾ ശേഖരിക്കാൻ ഈ സെൻസർ ഉപയോഗിക്കാം.
വിഷൻ സെൻസർ റോബോട്ടിനെ അതിന്റെ പരിസ്ഥിതിയിൽ നിന്നുള്ള വിഷ്വൽ ഇൻപുട്ട് ഡാറ്റ ഉപയോഗിക്കാൻ അനുവദിക്കുന്നു. വിഷ്വൽ ഇൻപുട്ട് ഡാറ്റ റോബോട്ടിന്റെ സ്വഭാവത്തെ എങ്ങനെ ബാധിക്കണമെന്ന് പ്രോജക്റ്റിന് നിർണ്ണയിക്കാൻ കഴിയും. ഉദാഹരണത്തിന്, മോട്ടോറുകൾ കറക്കുക, LCD സ്ക്രീനിൽ ഫലങ്ങൾ പ്രദർശിപ്പിക്കുക തുടങ്ങിയ പ്രവർത്തനങ്ങൾ (ഔട്ട്പുട്ട്) റോബോട്ടിന് ചെയ്യാൻ കഴിയും.
വിഷൻ സെൻസറിന് മുന്നിലുള്ളതിന്റെ ഒരു സ്നാപ്പ്ഷോട്ട് പകർത്താനും ഉപയോക്താവ് ചോദിക്കുന്നതനുസരിച്ച് അത് വിശകലനം ചെയ്യാനും കഴിയും. ഉദാഹരണത്തിന്, ഒരു ഉപയോക്താവിന് സ്നാപ്പ്ഷോട്ടിൽ നിന്ന് ഡാറ്റ ശേഖരിക്കാൻ കഴിയും, ഉദാഹരണത്തിന്, വസ്തുവിന്റെ നിറം എന്താണ്? ഒരു വസ്തു കണ്ടെത്തിയോ? വസ്തുവിന്റെ വലിപ്പം (വീതിയും ഉയരവും) എത്രയാണ്?
ഈ ഡാറ്റയെ അടിസ്ഥാനമാക്കി റോബോട്ടിന് തീരുമാനങ്ങൾ എടുക്കാൻ കഴിയും. ഇത് എങ്ങനെ ചെയ്യാമെന്ന് താഴെയുള്ള ഭാഗിക ഉദാഹരണ പ്രോജക്റ്റ് കാണിക്കുന്നു. പ്രോജക്റ്റ് ആരംഭിച്ചതിന് ശേഷം മൂന്ന് നിറങ്ങൾ ആവർത്തിച്ച് പരിശോധിക്കുന്നു, ഓരോ നിറ പരിശോധനയും വ്യത്യസ്ത സംഭവമാണ്. നീല പരിശോധിക്കുന്ന ഇവന്റ് മാത്രമേ താഴെ കാണിച്ചിട്ടുള്ളൂ. ഒരു നീല വസ്തു കണ്ടെത്തിയാൽ "നീല വസ്തു കണ്ടെത്തി" എന്നും അല്ലെങ്കിൽ "നീല വസ്തു ഇല്ല" എന്നും ഈ സ്റ്റാക്കിൽ റോബോട്ട് പ്രിന്റ് ഉണ്ട്. താഴെ കാണിച്ചിട്ടില്ലാത്ത check_red ഉം check_green ഇവന്റുകൾക്ക് സ്ക്രീനിൽ എന്ത് പ്രിന്റ് ചെയ്യണമെന്ന് തീരുമാനിക്കുന്നതിന് സമാനമായ സ്റ്റാക്കുകളുണ്ട്.
# ലൈബ്രറി vex import ൽ നിന്ന്
ഇറക്കുമതി ചെയ്യുന്നു *
# Begin project code
check_red = Event()
check_blue = Event()
check_green = Event()
def check_blue_callback():
brain.screen.set_font(FontType.MONO40)
brain.screen.clear_row(1)
brain.screen.set_cursor(1, 1)
# വിഷൻ സെൻസർ ഉപയോഗിച്ച് ഒരു സ്നാപ്പ്ഷോട്ട് എടുത്ത് വിഷൻ ഡാറ്റ ഒരു വേരിയബിളിൽ സൂക്ഷിക്കുക
vision_5_objects = vision_5.take_snapshot(vision_5__BLUEBOX)
# സ്നാപ്പ്ഷോട്ട് ഏതെങ്കിലും നീല വസ്തുക്കൾ കണ്ടെത്തിയോ എന്ന് കാണാൻ വേരിയബിൾ പരിശോധിക്കുക
if (vision_5_objects):
brain.screen.print("നീല ഒബ്ജക്റ്റ് കണ്ടെത്തി")
else:
brain.screen.print("നീല ഒബ്ജക്റ്റ് ഇല്ല")
# സിസ്റ്റം ഇവന്റ് ഹാൻഡ്ലറുകൾ
check_blue(check_blue_callback)
#ഇവന്റുകൾ ശരിയായി രജിസ്റ്റർ ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ 15ms കാലതാമസം ചേർക്കുക
wait(15, MSEC)
True ആയിരിക്കുമ്പോൾ:
check_blue.broadcast_and_wait()
check_red.broadcast_and_wait()
check_green.broadcast_and_wait()
wait(0.1,SECONDS)
wait(5, MSEC)