میکروپایتون Micropython

آموزش میکروپایتون با رزبری پای Pico بخش هفتم: پروتکل I2C در پیکو

getting-started-with-raspberry-pi-pico-micropython-part-seven-i2c-protocol-digispark
نوشته شده توسط پریسا پوربلورچیان

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

راه اندازی رابط I2C در برد رزبری پای پیکو - دیجی اسپارک

 


پروتکل ارتباطی I2C


پروتکل ارتباطی I2C در پیکو یک ارتباط دو سیمه برای اتصال سنسورهایی که از پروتکل I2C برای ارتباط با میکروکنترلرها استفاده می‌کنند، طراحی شده است. سرعت تبادل دیتا در پروتکل ارتباطی I2C بین ۱۰۰Kbits/s، ۴۰۰Kbits/s, 1M است. پروتکل I2C در دو مد کاری Master , Slave عمل می‌کند.Master , Slave میتوانند دیتا را ارسال کرده و همچنین دریافت کنند. این ارسال و دریافت دیتا وابسته به Master است و تا زمانی که درخواست توسط Master ارسال نشود، Slave دیتا به Master ارسال نمی‌کند. برای برقراری ارتباط در پروتکل I2C وجود دارد.

  • I2C = Serial Data  که جهت انتقال دیتا استفاده می‌شود.
  • SCL = Serial Clock که سیگنال کلاک را انتقال میدهد.

هر دو سیگنال SDA , SCL دو طرفه هستند که توسط یک مقاومت پول آپ به تغذیه متصل شده اند. به این معنی که زمانی که باس آزاد است، هر دو سیگنال HIGH هستند.تمامی دیوایس هایی که بر روی باس قرار میگیرند بایستی پایه های اوپن کلکتور و اوپن درین داشته باشند. فعال شدن لاین به این معنی است که پایه پول دان شده و به GND وصل شده اند. تعداد دیوایس های قرار گرفته شده بر روی یک باس نامحدود است و میتوانید دیوایس هایی با سطح ولتاژ متفاوت را بر روی یک باس وصل کرده و با یک مقاومت پول آپ به کمترین ولتاژ میکروکنترلر اتصال دهید. I2C از آدرس ۷ بیتی برای تعریف دیوایس ها استفاده می‌کند که هر کدام میتوانند هویت منحصر به فرد داشته باشند و درخواست به Slave صحیح ارسال کنند.

پروتکل ارتباطی I2C در برد رزبری پای پیکو - دیجی اسپارک

 


پایه های I2C در پیکو


معرفی پایه های I2C رزبری پای پیکو pico - دیجی اسپارک

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

 


Software I2C bus


Software I2C bus بر روی تمامی پایه هایی که قابل استفاده برای I2C در پیکو هستند، کار می‌کند و از طریق کلاس machine.SoftI2C برای برقراری ارتباط دسترسی میگیرد.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 


Hardware I2C bus


درایور I2C از طریق کلاس machine.I2C در دسترس است و متدهای فراخوانی کاملا مشابه با Software I2C است.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 


کلاس های مهم I2C BUS


طبق پاراگراف قبلی میکروپایتون از کلاس I2C در پیکو در ماژول machine استفاده می‌کند که استفاده از کلاس های I2C و راه اندازی پروتکل ارتباطی در میکروپایتون را برای ما ساده تر می‌کند. در ادامه متدهای مشترک مورد استفاده در میکروپایتون را مجدد لیست کرده ام و میتوانید از این توابع و کلاس ها برای معرفی ماژول ها و سنسورهای I2C استفاده کنید.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 


تست I2C با رزبری پای پیکو


برای تست پروتکل ارتباطی I2C در پیکو Pico به برد رزبری پای پیکو Raspberry Pi PICO, نرم افزار پایتون مانند Thonny IDE و یک ماژول I2C نیاز داریم.

راه اندازی I2C در پیکو پروتکل ارتباطی دو سیمه میکروپایتون - دیجی اسپارک

 

برای اتصال دیوایس I2C به برد رزبری پای پیکو، پایه های SDA , SCL دیوایس I2C به پایه های I2C و SCL رزبری پای پیکو متصل می‌شود. پایه I2C دیوایس به پایه I2C رزبری پای پیکو و پایه SCL دیوایس I2C به پایه SCL رزبری پای پیکو متصل می‌شود. در این تست نیاز به یک دیوایس I2C داریم که بنده از ماژول دماسنج غیرتماسی MLX90614 استفاده می‌کنم. مطابق با تصویر زیر اتصالات سنسور به رزبری پای پیکو را انجام دهید.

  •  پایه VCC سنسور را به پایه شماره ۳۶ یعنی ۳ ولت اتصال دهید.
  • پایه GND سنسور را به پایه شماره ۳۸ اتصال دهید.
  • پایه SDA سنسور را به پایه شماره ۱ یا همان GP0 اتصال دهید.
  • پایه SCL سنسور را به پایه شماره ۲ یا همان GP1 اتصال دهید.

I2C در پیکو پروتکل ارتباطی با میکروپایتون - دیجی اسپارک

 

کد میکروپایتون برای تست و خواندن کد I2C در پیکو سنسور دماسنج به صورت زیر است. در این کد پایتون، با اتصال یک دیوایس I2C به برد رزبری پای پیکو، اسکن شده و کد I2C دیوایس نمایش داده می‌شود. در کد پایتون در ابتدا پایه های SDA , SCL را در برنامه مشخص می‌کنیم و سپس با تعریف کاندیشن برای مشخص کردن و شناسایی دیوایس دیتا را به صورت هگز برمیگردانیم. کد را به نرم افزار Thonny انتقال داده و اجرا کنید.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

راه اندازی سنسور دما MLX90614 با I2C در پیکو میکروپایتون - دیجی اسپارک

 


وسایل مورد نیاز


رزبری پای پیکو 

برد بورد

یک دیوایس I2C به دلخواه

کابل 

I2C در پیکو با میکروپایتون - دیجی اسپارک

 


جمع بندی لیدی پای


راه اندازی پروتکل های ارتباطی در میکروپایتون توسط بردهای میکروکنترلر نیاز به استفاده از کلاس ها و توابع مخصوص به خود را دارد. در سری آموزش های رزبری پای پیکو با میکروپایتون روش راه اندازی و تست تمامی دیوایس های I2C با رزبری پای پیکو آموزش داده شده است. روش دریافت و ارسال دیتا توسط کلاس ها انجام می‌شود. در ابتدا بایستی توسط PinOUT رزبری پای پیکو پایه های I2C را شناسایی کنید و سپس مطابق با دستورات از کتابخانه های ماشین machine برای فراخوانی استفاده کنید.

 

چنانچه در مراحل راه اندازی برد رزبری پای پیکو Picro و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۴ دیدگاه

  • سلام
    خانم بلورچیان از زحمات شما ممنونم، پروتکل I2c توی همه ی ماژول ها استفاده شده؟

    • با سلام
      اگر منظور شما استفاده از پروتکل i2c در میکروکنترلرها است، بله در حال حاضر ۹۰ درصد میکروکنترلرهایی که به تازگی معرفی شده اند از اساسی ترین پروتکل ارتباطی مانند i2c spi uart بهره میبرند.