پایتون · سطح ۳ · ۶ مرحله

ابزار حسگرها

Sensory gadget

با استفاده از Raspberry Pico خود یک ابزار حسی ایجاد کنید

ترجمهٔ فارسی ماشینی است و ممکن است در اصطلاحات دقیق نباشد. با انتخاب «هر دو» می‌توانی متن اصلی را هم بخوانی.
مرحلهٔ ۱

خواهید ساخت

خواهید ساخت

یک اسباب بازی فیجت یا ابزار حسی درست کنید. ابزار شما باید این موارد را برآورده کند خلاصه پروژه.

A ابزار حسی چیزی است که باعث می شود بخواهید با آن ارتباط برقرار کنید. اسباب‌بازی فیجت نوعی ابزار حسی است که به کاربر کمک می‌کند استرس را کاهش دهد یا تمرکز خود را بهبود بخشد. یک ابزار تطبیقی ​​می تواند توسط افراد دارای معلولیت جسمی برای برقراری ارتباط استفاده شود. یک ابزار حسی ممکن است تمام حواس را تحریک کند یا فقط روی یکی تمرکز کند.

شما:

  • از مهارت های ساخت دیجیتال خود برای طراحی و ساخت یک ابزار برای کاربر استفاده کنید
  • از ورودی های فیزیکی مانند دکمه ها و پتانسیومترها برای کنترل خروجی های فیزیکی مانند LED و زنگ هشدار استفاده کنید.
  • به دیگران اجازه دهید ابزار شما را امتحان کنند و آن را بر اساس بازخورد خود بهبود بخشند

برای تکمیل این پروژه شما نیاز دارید:

سخت افزار:

شما می توانید تمامی سخت افزارهای مورد نیاز این پروژه و سایر پروژه های موجود در این مسیر را از سایت خریداری کنید فروشگاه اینترنتی کیترونیک.

  • Raspberry Pi Pico با هدر پین که روی آن لحیم شده است
  • یک کابل دیتا USB A به micro USB
  • انواع قطعات الکترونیکی و سرنخ های جامپر

نرم افزار:

  • Thonny – این پروژه را می توان با استفاده از ویرایشگر Thonny Python تکمیل کرد که می تواند بر روی یک رایانه لینوکس، ویندوز یا مک نصب شود.

Thonny را نصب کنید

Thonny را روی Raspberry Pi نصب کنید

  • Thonny قبلاً روی Raspberry Pi OS نصب شده است، اما ممکن است نیاز به به روز رسانی به آخرین نسخه داشته باشد
  • یک پنجره ترمینال را باز کنید، یا با کلیک کردن روی نماد در گوشه سمت چپ بالای صفحه یا با فشار دادن همزمان کلیدهای Ctrl+Alt+T
  • در پنجره، عبارت زیر را تایپ کنید تا سیستم عامل و Thonny خود را به روز کنید
sudo apt update && sudo apt upgrade -y

Thonny را روی سیستم عامل های دیگر نصب کنید

  • در Windows، macOS و Linux، می‌توانید آخرین Thonny IDE را نصب کنید یا نسخه موجود را به‌روزرسانی کنید
  • در یک مرورگر وب، به thonny.org
  • در گوشه سمت راست بالای پنجره مرورگر، لینک های دانلود ویندوز و macOS و دستورالعمل های لینوکس را مشاهده خواهید کرد.
  • فایل های مربوطه را دانلود و اجرا کنید تا Thonny نصب شود

دانلود دستورالعمل از سایت thonny

باز کردن تونی

Thonny را از راه‌انداز برنامه خود باز کنید. باید چیزی شبیه این باشد:

برنامه Thonny

می توانید از Thonny برای نوشتن کدهای استاندارد پایتون استفاده کنید. عبارت زیر را در پنجره اصلی تایپ کنید و سپس روی آن کلیک کنید اجرا کنید دکمه (از شما خواسته می شود فایل را ذخیره کنید).

print('Hello World!')

تم و فونت را در Thonny تغییر دهید

Thonny به شما اجازه می دهد تا تم و فونت نرم افزار را تغییر دهید. این ویژگی به این معنی است که می توانید اندازه فونت را افزایش دهید و رنگ پس زمینه و متن را متناسب با نیاز خود تغییر دهید.

برای تغییر تم و فونت:

  • روی Tools -> Options کلیک کنید.
  • بر روی تب "Theme & Font" کلیک کنید.
  • روی کادرهای کشویی برای هر گزینه کلیک کنید تا تنظیماتی را پیدا کنید که به بهترین وجه با نیازهای شما مطابقت دارد.

اسکرین شات از محیط برنامه نویسی Thonny. تصویر برگه "Theme & Font" را در پنجره گزینه ها نشان می دهد.

  • پس از اتمام کار، OK را فشار دهید.

هشدار: به فونت های ساده و تمیز پایبند باشید. اگر از فونت سبک دست نویسی استفاده می کنید، خواندن و اشکال زدایی آن را دشوار می کند.

  • picozero - باید picozero را در Raspberry Pi Pico خود راه اندازی کنید

پیکورو را راه اندازی کنید

Raspberry Pi Pico خود را به برق وصل کنید

Rasberry Pico خود را به رایانه ای که برای برنامه نویسی آن استفاده می کنید وصل کنید.

کابل USB به Raspberry Pi Pico وصل شده است.

کابل USB به کامپیوتر وصل شده است.

MicroPython را نصب یا به روز کنید

  • ویرایشگر Thonny را باز کنید
  • به گوشه پایین سمت راست نگاه کنید
  • بررسی کنید که می گوید "MicroPython (Raspberry Pi Pico)"
  • اگر نشد، «MicroPython (Raspberry Pi Pico)» را انتخاب کنید.
  • ممکن است از شما خواسته شود که سیستم عامل را نصب کنید.

پیکوزورو اضافه کنید

  • به «ابزارها > مدیریت بسته‌ها» بروید
  • "picozero" را در نوار جستجو تایپ کنید
  • روی «جستجو در PyPI» کلیک کنید

پنجره نصب بسته های Thonny با کادر جستجو.

  • در نتایج جستجو روی "picozero" کلیک کنید
  • روی "نصب" کلیک کنید

picozero در نتایج جستجو

را ببینید مقدمه ای بر راهنمای رسپبری پای پیکو برای اطلاعات بیشتر

کشف کنید ▶️

ویدیوی زیر را تماشا کنید. چگونه از ابزار برای ارتباط استفاده می شود؟ از چه ورودی ها و خروجی هایی استفاده شده است؟

یک ابزار کمکی
کاربر می تواند گزینه ای را انتخاب کند تا مراقب خود از نیاز فعلی خود مطلع شود. هنگامی که آنها انتخاب کردند، دکمه دیگری را فشار می دهند که به مراقب آنها هشدار می دهد.

داخل را ببینید

helpive_gadget.py

from picozero import LED, Speaker, Button
from time import sleep

eat = LED(13)
drink = LED(8)
play = LED(5)

speaker = Speaker(1)

choose = Button(18)
confirm = Button(22)

option = 0 # Store the current option

def choice(): # Call the next function and update the option
    global option
    if option == 0:
        eat.on()
        drink.off()
        play.off()
    elif option == 1:
        eat.off()
        drink.on()
        play.off()    
    elif option == 2:
        eat.off()
        drink.off()
        play.on()   
    elif option == 3:
        eat.off()
        drink.off()
        play.off()

    if option == 3:
        option = 0
    else:
        option = option + 1

def sound_buzzer():
    speaker.on()
    sleep(1)
    speaker.off()

choose.when_pressed = choice 
confirm.when_pressed = sound_buzzer

یک ابزار کمکی کاربر می تواند گزینه ای را انتخاب کند تا مراقب خود از نیاز فعلی خود مطلع شود. هنگامی که آنها انتخاب کردند، دکمه دیگری را فشار می دهند که به مراقب آنها هشدار می دهد.

توصیف

خلاصه پروژه: ابزار حسی


یک ابزار حسی بسازید که مردم بخواهند از آن استفاده کنند.

ابزار حسی شما باید:

  • انواع مختلف ورودی داشته باشید
  • چندین خروجی مختلف داشته باشید
  • برای کاربر جذاب و به اندازه کافی قوی باشد تا بتوان از آن استفاده کرد

ابزار حسی شما می تواند:

  • ارگونومی مانند راحتی کاربر را در نظر بگیرید
  • بازنشانی در ورودی کاربر یا پس از مدت زمان تعیین شده
  • به یک موضوع خاص متصل شوید

ارگونومی علمی است که به دنبال غلبه بر مشکلات و بهبود نحوه تعامل انسان با محیط خود است. بهبود ارگونومی یک گجت، استفاده از آن را آسان‌تر و تعامل با آن را راحت‌تر می‌کند.

ایده بگیرید 💭

در حین بررسی پروژه های نمونه، به ابزار حسی که می خواهید بسازید فکر کنید:

آسمان شب
سوراخ های کوچکی از طریق یک کارت سیاه ایجاد شده است تا یک افکت آسمان شب را بر روی سقف یک اتاق تاریک ایجاد کند. یک LED RGB برای ایجاد یک جلوه چشمک زن می زند. یک دکمه برای روشن و خاموش کردن چراغ استفاده می شود.

داخل را ببینید

night_sky.py

from picozero import RGBLED, Button

rgb = RGBLED(1, 2, 3)
button = Button(18)
option = 0

def change_option():
    global option
    option += 1
        
    if option == 1:
        rgb.cycle()
    else:
        rgb.off()
        option = 0

button.when_pressed = change_option

زنبور وزوز
بال‌های زنبور دارای فویل آشپزخانه در پشت آن‌ها هستند و وقتی به پایین فشار داده می‌شوند به یک تکه فویل دیگر روی کارت متصل می‌شوند - این باعث می‌شود صدای زنگ یک نت به صدا درآید. هر بال صدای متفاوتی پخش می کند. یک پتانسیومتر LED آبی روی دم زنبور را کنترل می کند.

داخل را ببینید


from picozero import LED, Speaker, Button, Pot

led = LED(13)
speaker1 = Speaker(5)
speaker2 = Speaker(10)
button1 = Button(18)
button2 = Button(28)
dial = Pot(0)

def tune1():
    speaker1.play(500)  
    print('1 pressed')

def tune2():
    speaker2.play(600) 
    print('2 pressed')

while True:
    led.brightness = dial.percent
    button1.when_pressed = tune1
    button2.when_pressed = tune2

پیکوسابر
با فشردن دکمه، تیغه سابر روشن می شود و صدای زمزمه صدای آژیر پخش می شود. چرخاندن پتانسیومتر رنگ تیغه و زیر و بم صدای زمزمه را تغییر می دهد. با چرخاندن کامل پتانسیومتر به سمت پایین، یک "صدای کاهش قدرت" پخش می شود و سپس چراغ ها و زنگ ها خاموش می شوند.

داخل را ببینید

saber.py

from time import sleep
from picozero import Button, RGBLED, Pot, Speaker
from random import randint

led = RGBLED(13,14,15) # Set up RGBLED
led2 = RGBLED(10,11,12) # Set up other RGBLED — the more, the brighter!

hum = Speaker(5) # Set up passive buzzer for hum/start/stop sounds

power = Button(17) # Set up button to turn on saber

dial = Pot(0) # Set up potentiometer to change blade colour and turn off

# Turn off lights and make 'power-down' sound
def off():
    for i in range(400): # White noise loop 1 second
        tone = randint(4000,6000) # Pick a random number between 4000 and 6000
        hum.play(tone, 0.001) # Play tone for 1/1000th second
    for i in range(200): # White noise loop 1 second
        tone = randint(2000,4000) # Pick a random number between 2000 and 4000
        hum.play(tone, 0.001) # Play tone for 1/1000th second
    for i in range(200): # White noise loop 1 second
        tone = randint(1000,3000) # Pick a random number between 1000 and 3000
        hum.play(tone, 0.001) # Play tone for 1/1000th second
    for i in range(200): # White noise loop 1 second
        tone = randint(50,1000) # Pick a random number between 50 and 1000
        hum.play(tone, 0.001) # Play tone for 1/1000th second
    led.color = (0,0,0)
    led2.color = (0,0,0)
    hum.off()


# Make lightsaber start sound then turn on lights
def on():
    for i in range(200): # White noise loop 0.2 second
        tone = randint(50,1000) # Pick a random number between 50 and 1000
        hum.play(tone, 0.001) # Play tone for 1/1000th second
    for i in range(200): # White noise loop 0.2 second
        tone = randint(1000,3000) # Pick a random number between 1000 and 3000
        hum.play(tone, 0.001) # Play tone for 1/1000th second
    for i in range(200): # White noise loop 0.2 second
        tone = randint(2000,4000) # Pick a random number between 2000 and 4000
        hum.play(tone, 0.001) # Play tone for 1/1000th second
    for i in range(400): # White noise loop 0.4 second
        tone = randint(3000,5000) # Pick a random number between 3000 and 5000
        hum.play(tone, 0.001) # Play tone for 1/1000th second
    while True: # Forever loop checking the dial reading to set colour and change hum sound
        if dial.value >= 0.8: # Highest setting on dial - 5
            led.color = (255,255,255) # White
            led2.color = (255,255,255)
            hum.play(90)
        elif dial.value >= 0.6: # High setting on dial - 4
            led.color = (255,0,255) # Purple blade
            led2.color = (255,0,255)
            hum.play(80)
        elif dial.value >= 0.4: # Middle setting on dial - 3
            led.color = (0,0,255) # Blue blade
            led2.color = (0,0,255)
            hum.play(70)
        elif dial.value >= 0.2: # Low setting on dial - 2
            led.color = (0,255,0) # Green blade
            led2.color = (0,255,0)
            hum.play(60)
        elif dial.value >= 0.01: # Lowest setting on dial (above 0.01) - 1
            led.color = (255,0,0) # Red blade
            led2.color = (255,0,0)
            hum.play(50)
        else: # If dial turned all the way down - 0
            off() # Run off function
            break # Leave the loop
    

power.when_pressed = on

شمع دیجیتال
LED RGB روی حلقه ای قرار دارد که مانند یک شعله سوسوزن به نظر می رسد. دمیدن بر روی شمع باعث می شود که یک تماس فویل با تماس دیگری روی شمع تماس گرفته و حلقه را متوقف کند. بعد از مدتی حلقه دوباره راه اندازی می شود.

انیمیشنی که آقای سی را در حال فوت شمع دیجیتال نشان می دهد.

داخل را ببینید

candle.py

from picozero import RGBLED, Switch
from time import sleep
from random import randint

# State which pins the components are attached to on the Pico
led = RGBLED(13, 14, 15)
trigger = Switch(18)


def light(): # Flickering flame loop
      red = randint(125,255) # Mostly red
      yellow = (red - 125) # Never more than red
      delay = randint(0,100)
      led.color = (red, yellow, 0)
      sleep(delay/1000)


def dark(): # No flame
   led.off()
   sleep(2) # Dark time before reset


# Loop to check if switch is closed
while True: 
    if trigger.is_closed:
        dark()
    else:
        light()

یک ابزار کمکی کاربر می تواند گزینه ای را انتخاب کند تا مراقب خود از نیاز فعلی خود مطلع شود. هنگامی که آنها انتخاب کردند، دکمه دیگری را فشار می دهند که به مراقب آنها هشدار می دهد. توصیف

آسمان شب سوراخ های کوچکی از طریق یک کارت سیاه ایجاد شده است تا یک شب پر ستاره در سقف یک اتاق تاریک ایجاد شود. یک LED RGB برای ایجاد یک جلوه چشمک زن می زند. توصیف

زنبور وزوز بال‌های زنبور دارای فویل آشپزخانه در پشت آن‌ها هستند و وقتی به پایین فشار داده می‌شوند به یک تکه فویل دیگر روی کارت متصل می‌شوند - این باعث می‌شود صدای زنگ یک نت به صدا درآید. هر بال صدای متفاوتی پخش می کند. یک پتانسیومتر LED آبی روی دم زنبور را کنترل می کند. توصیف

پیکوسابر با فشردن دکمه، تیغه سابر روشن می شود و صدای زمزمه صدای آژیر پخش می شود. چرخاندن پتانسیومتر رنگ تیغه و زیر و بم صدای زمزمه را تغییر می دهد. با چرخاندن کامل پتانسیومتر به سمت پایین، یک "صدای کاهش قدرت" پخش می شود و سپس چراغ ها و زنگ ها خاموش می شوند. توصیف

شمع دیجیتال LED RGB روی حلقه ای قرار دارد که شبیه شعله سوسوزن به نظر می رسد. دمیدن روی شمع باعث تماس فویل با تماس دیگر روی شمع می شود و حلقه را متوقف می کند. بعد از مدتی حلقه دوباره راه اندازی می شود.

توصیف

محیط اجرای پروژه

این پروژه به سخت‌افزار نیاز دارد: pico. مراحل اتصال و نصب را در آموزش بخوان؛ مرورگر جایگزین برد و قطعات فیزیکی نیست.

این پروژه در محیطی که در مراحل آموزش معرفی شده اجرا می‌شود؛ مانند Python دسکتاپ، Thonny، Jupyter یا Raspberry Pi. کدهای مخصوص این ابزارها را در همان محیط اجرا کن.

کارگاه آزاد پایتون هلیو ←
معرفی و پیش‌نمایش پروژه

با استفاده از Raspberry Pico خود یک ابزار حسی ایجاد کنید