You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/fa/4-manufacturing/lessons/2-check-fruit-from-device/virtual-device-camera.md

9.1 KiB

گرفتن تصویر - سخت‌افزار مجازی IoT

در این بخش از درس، شما یک حسگر دوربین به دستگاه IoT مجازی خود اضافه می‌کنید و تصاویر را از آن می‌خوانید.

سخت‌افزار

دستگاه IoT مجازی از یک دوربین شبیه‌سازی‌شده استفاده می‌کند که یا تصاویر را از فایل‌ها ارسال می‌کند یا از وب‌کم شما.

افزودن دوربین به CounterFit

برای استفاده از یک دوربین مجازی، باید یکی را به برنامه CounterFit اضافه کنید.

وظیفه - افزودن دوربین به CounterFit

دوربین را به برنامه CounterFit اضافه کنید.

  1. یک برنامه پایتون جدید در رایانه خود در پوشه‌ای به نام fruit-quality-detector با یک فایل به نام app.py و یک محیط مجازی پایتون ایجاد کنید و بسته‌های pip مربوط به CounterFit را اضافه کنید.

    ⚠️ می‌توانید به دستورالعمل‌های ایجاد و تنظیم یک پروژه پایتون CounterFit در درس 1 در صورت نیاز مراجعه کنید.

  2. یک بسته pip اضافی نصب کنید تا یک شیم CounterFit نصب شود که بتواند با شبیه‌سازی برخی از بسته pip مربوط به Picamera با حسگرهای دوربین ارتباط برقرار کند. مطمئن شوید که این کار را از یک ترمینال با محیط مجازی فعال انجام می‌دهید.

    pip install counterfit-shims-picamera
    
  3. مطمئن شوید که برنامه وب CounterFit در حال اجرا است.

  4. یک دوربین ایجاد کنید:

    1. در کادر Create sensor در پنل Sensors، از منوی کشویی Sensor type گزینه Camera را انتخاب کنید.

    2. مقدار Name را به Picamera تنظیم کنید.

    3. دکمه Add را برای ایجاد دوربین انتخاب کنید.

    تنظیمات دوربین

    دوربین ایجاد شده و در لیست حسگرها ظاهر می‌شود.

    دوربین ایجاد شده

برنامه‌نویسی دوربین

اکنون می‌توانید دستگاه IoT مجازی را برای استفاده از دوربین مجازی برنامه‌نویسی کنید.

وظیفه - برنامه‌نویسی دوربین

دستگاه را برنامه‌نویسی کنید.

  1. مطمئن شوید که برنامه fruit-quality-detector در VS Code باز است.

  2. فایل app.py را باز کنید.

  3. کد زیر را به بالای فایل app.py اضافه کنید تا برنامه به CounterFit متصل شود:

    from counterfit_connection import CounterFitConnection
    CounterFitConnection.init('127.0.0.1', 5000)
    
  4. کد زیر را به فایل app.py خود اضافه کنید:

    import io
    from counterfit_shims_picamera import PiCamera
    

    این کد برخی از کتابخانه‌های موردنیاز، از جمله کلاس PiCamera از کتابخانه counterfit_shims_picamera را وارد می‌کند.

  5. کد زیر را در ادامه اضافه کنید تا دوربین را مقداردهی اولیه کنید:

    camera = PiCamera()
    camera.resolution = (640, 480)
    camera.rotation = 0
    

    این کد یک شیء PiCamera ایجاد می‌کند و وضوح تصویر را به 640x480 تنظیم می‌کند. اگرچه وضوح‌های بالاتر پشتیبانی می‌شوند، اما طبقه‌بندی‌کننده تصویر روی تصاویر بسیار کوچک‌تر (227x227) کار می‌کند، بنابراین نیازی به گرفتن و ارسال تصاویر بزرگ‌تر نیست.

    خط camera.rotation = 0 چرخش تصویر را بر حسب درجه تنظیم می‌کند. اگر نیاز به چرخاندن تصویر از وب‌کم یا فایل دارید، این مقدار را به‌طور مناسب تنظیم کنید. برای مثال، اگر می‌خواهید تصویر یک موز در حالت افقی وب‌کم را به حالت عمودی تغییر دهید، مقدار camera.rotation = 90 را تنظیم کنید.

  6. کد زیر را اضافه کنید تا تصویر را به‌صورت داده‌های باینری ذخیره کنید:

    image = io.BytesIO()
    camera.capture(image, 'jpeg')
    image.seek(0)
    

    این کد یک شیء BytesIO برای ذخیره داده‌های باینری ایجاد می‌کند. تصویر به‌صورت یک فایل JPEG از دوربین خوانده شده و در این شیء ذخیره می‌شود. این شیء دارای یک نشانگر موقعیت است که مشخص می‌کند در کجای داده قرار دارد تا در صورت نیاز داده‌های بیشتری به انتها اضافه شود، بنابراین خط image.seek(0) این موقعیت را به ابتدای داده بازمی‌گرداند تا تمام داده‌ها بعداً قابل خواندن باشند.

  7. در ادامه، کد زیر را اضافه کنید تا تصویر را در یک فایل ذخیره کنید:

    with open('image.jpg', 'wb') as image_file:
        image_file.write(image.read())
    

    این کد یک فایل به نام image.jpg را برای نوشتن باز می‌کند، سپس تمام داده‌ها را از شیء BytesIO خوانده و در فایل می‌نویسد.

    💁 شما می‌توانید تصویر را مستقیماً در یک فایل به‌جای یک شیء BytesIO ذخیره کنید، با ارسال نام فایل به فراخوانی camera.capture. دلیل استفاده از شیء BytesIO این است که در ادامه این درس می‌توانید تصویر را به طبقه‌بندی‌کننده تصویر خود ارسال کنید.

  8. تصویری که دوربین در CounterFit می‌گیرد را پیکربندی کنید. می‌توانید Source را به File تنظیم کنید، سپس یک فایل تصویر آپلود کنید، یا Source را به WebCam تنظیم کنید و تصاویر از وب‌کم شما گرفته شوند. مطمئن شوید که پس از انتخاب تصویر یا وب‌کم، دکمه Set را انتخاب کنید.

    CounterFit با یک فایل به‌عنوان منبع تصویر تنظیم شده و یک وب‌کم که شخصی را در حال نگه داشتن یک موز نشان می‌دهد

  9. یک تصویر گرفته شده و به‌عنوان image.jpg در پوشه فعلی ذخیره می‌شود. این فایل را در کاوشگر VS Code خواهید دید. فایل را انتخاب کنید تا تصویر را مشاهده کنید. اگر نیاز به چرخش دارد، خط camera.rotation = 0 را به‌طور مناسب به‌روزرسانی کنید و دوباره عکس بگیرید.

💁 می‌توانید این کد را در پوشه code-camera/virtual-iot-device پیدا کنید.

😀 برنامه دوربین شما با موفقیت انجام شد!

سلب مسئولیت:
این سند با استفاده از سرویس ترجمه هوش مصنوعی Co-op Translator ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حیاتی، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.