برای ارتباط چندین دستگاه به یکدیگر فقط توسط دو سیم میتوانیم از پروتکل ارتباطی 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 در پیکو هستند که مجاز به استفاده از آن ها هستیم.
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 به برد رزبری پای پیکو، پایه های SDA , SCL دیوایس I2C به پایه های I2C و SCL رزبری پای پیکو متصل میشود. پایه I2C دیوایس به پایه I2C رزبری پای پیکو و پایه SCL دیوایس I2C به پایه SCL رزبری پای پیکو متصل میشود. در این تست نیاز به یک دیوایس I2C داریم که بنده از ماژول دماسنج غیرتماسی MLX90614 استفاده میکنم. مطابق با تصویر زیر اتصالات سنسور به رزبری پای پیکو را انجام دهید.
- پایه VCC سنسور را به پایه شماره ۳۶ یعنی ۳ ولت اتصال دهید.
- پایه GND سنسور را به پایه شماره ۳۸ اتصال دهید.
- پایه SDA سنسور را به پایه شماره ۱ یا همان GP0 اتصال دهید.
- پایه SCL سنسور را به پایه شماره ۲ یا همان GP1 اتصال دهید.
کد میکروپایتون برای تست و خواندن کد I2C در پیکو سنسور دماسنج به صورت زیر است. در این کد پایتون، با اتصال یک دیوایس I2C به برد رزبری پای پیکو، اسکن شده و کد I2C دیوایس نمایش داده میشود. در کد پایتون در ابتدا پایه های SDA , SCL را در برنامه مشخص میکنیم و سپس با تعریف کاندیشن برای مشخص کردن و شناسایی دیوایس دیتا را به صورت هگز برمیگردانیم. کد را به نرم افزار Thonny انتقال داده و اجرا کنید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
وسایل مورد نیاز
جمع بندی لیدی پای
راه اندازی پروتکل های ارتباطی در میکروپایتون توسط بردهای میکروکنترلر نیاز به استفاده از کلاس ها و توابع مخصوص به خود را دارد. در سری آموزش های رزبری پای پیکو با میکروپایتون روش راه اندازی و تست تمامی دیوایس های I2C با رزبری پای پیکو آموزش داده شده است. روش دریافت و ارسال دیتا توسط کلاس ها انجام میشود. در ابتدا بایستی توسط PinOUT رزبری پای پیکو پایه های I2C را شناسایی کنید و سپس مطابق با دستورات از کتابخانه های ماشین machine برای فراخوانی استفاده کنید.
چنانچه در مراحل راه اندازی برد رزبری پای پیکو Picro و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام
خانم بلورچیان از زحمات شما ممنونم، پروتکل I2c توی همه ی ماژول ها استفاده شده؟
با سلام
اگر منظور شما استفاده از پروتکل i2c در میکروکنترلرها است، بله در حال حاضر ۹۰ درصد میکروکنترلرهایی که به تازگی معرفی شده اند از اساسی ترین پروتکل ارتباطی مانند i2c spi uart بهره میبرند.
ممنون بابت اموزش و سایت خوبتون
سپاس از همراهی شما
سلام وقت بخیر
روی برد رزبری پای پیکو میتونم دوربین اعمال کنم یا نه ؟
سلام و خسته نباشید
آیا امکان متصل شدن دو oled به برد پیکو مقدور است؟ خیلی بهش نیاز دارم
با سلام
بله میتوانید انجام دهید.
آیا برای سنسور که استفاده کرددی نیاز به نصب درایور هست؟
با سلام
در این خصوص از کتابخانه Adafruit_mlx90614 باید استفاده کنید.
aliiii
khieili mamnoon
با سلام
کاربر گرامی
سپاس از همراهی شما امیدوارم مفید واقع شده باشد.
سلام
از نمایشگر oled برای رزبری پای پیکو میشه استفاده کرد؟
با سلام
بله آموزش زیر را مطالعه کنید.
آموزش کار با نمایشگر OLED در RASPBERRY PI PICO
سلام
روش اتصال رزبری پای پیکو را به کامپیوتر چ جوریه ؟
https://digispark.ir/running-raspberry-pi-pico-with-arduino-and-thonny/با سلام
کاربر گرامی لینک را مطالعه کنید.