تابلو اعلانات
آخرین مطالب سایت

جدید کدنویسی تمیز در پایتون با دستورالعمل PEP 8

PEP 8 یا PEP8 یا PEP-8 سندی است که دستورالعمل ها و بهترین شیوه ها را در مورد نحوه نوشتن کد پایتون ارائه می دهد. تمرکز اصلی PEP 8 بهبود خوانایی و سازگاری کد پایتون است. PEP مخفف Python Enhancement Proposal است و چندین نسخه از آنها وجود دارد. در این آموزش دستورالعمل های کلیدی ارائه شده در PEP 8 معرفی می شوند. اصلا چرا به PEP8 نیاز داریم؟ یک کد بیشتر از آنچه نوشته می شود خوانده می شود. مثلا ممکن است چند دقیقه یا یک روز کامل را صرف نوشتن یک کد کنید. وقتی آن را نوشتید، دیگر هرگز آن را نخواهید نوشت. اما مطمئناً باید دوباره آن را بخوانید. آن قطعه کد ممکن است بخشی از پروژه ای باشد که روی آن کار می کنید. هر بار که به آن فایل برمی‌گردید، باید به خاطر داشته باشید که آن کد چه کاری انجام می‌دهد و چرا آن را نوشته‌اید، بنابراین خوانا بودن کد مهم است. همچنین اگر به عنوان یک توسعه دهنده دنبال شغل هستید پیروی از PEP 8 بسیار مهم است. نوشتن کد واضح و خوانا، حرفه ای بودن شما را نشان می دهد و به کارفرما می گوید که می [ . . . ]

  • 256 بازدید
  • 0
  • 6 ژانویه, 2024
ادامه مطلب

جدید ارتباط سریال در پایتون با استفاده از کتابخانه PySerial

PySerial یک کتابخانه کراس پلتفرم است که یک ارتباط سریال برای پایتون فراهم می کند. این کتابخانه به شما امکان می دهد داده ها را از برنامه های پایتون خود در پورت های سریال بخوانید و بنویسید. پورت های سریال معمولاً برای اتصال رایانه ها به تجهیزات جانبی مانند بردهای آردوینو، ماژول های GPS و اسکنر بارکد استفاده می شوند. ماژول pySerial با دستور pip به این صورت نصب می شود: پیدا کردن پورتهای COM برای فهرست کردن پورت های COM موجود با استفاده از Pyserial، می توانید از کد پایتون زیر استفاده کنید: ابتدا ماژول serial.tools.list_ports را وارد می کنیم، که توابعی را برای کار با پورت های سریال ارائه می دهد. تابع list_ports.comports لیستی از پورت های سریال موجود را برمی گرداند. حلقه لیست را پیمایش می کند و نام هر پورت موجود در لیست را چاپ می کند (به عنوان مثال، ‘COM1’، ‘COM2’، و غیره). باز کردن یک پورت: همیشه باید در ابتدای برنامه ماژول را import کنیم: برای باز کردن یک پورت از دستور زیر استفاده می کنیم: پارامترهای مختلفی را می توانیم در این تابع تنظیم کنیم. این پارامترها را در زیر بررسی می کنیم:  port نام پورت می‌تواند رشته‌ای [ . . . ]

  • 588 بازدید
  • 0
  • 30 دسامبر, 2023
ادامه مطلب

جدید تایمرها در آردوینو

ماژول های تایمر در آردوینو عملکرد زمان بندی دقیقی را ارائه می دهند. آنها به ما اجازه می دهند کارهای مختلفی را انجام دهیم، مانند ایجاد تأخیرهای دقیق، ایجاد رویدادهای دوره ای، اندازه گیری فواصل زمانی و برآوردن نیازهای زمانی برنامه مورد نظر. هر برد آردوینو میکروکنترلر مربوط به خودش را دارد که مجموعه ای از تایمرهای سخت افزاری خاص خود را دارد. بنابراین، همیشه باید به دیتاشیت مربوط به میکروکنترلر مورد نظر مراجعه کنیم تا بیشتر با قابلیت های سخت افزاری آن و نحوه استفاده بهینه از آن آشنا شویم. آردوینو UNO  که از میکروکنترلر Atemga328p  استفاده می کند دارای 3 تایمر سخت افزاری است که عبارتند از:      Timer0: تایمر 8 بیتی      Timer1: تایمر 16 بیتی      Timer2: تایمر 8 بیتی این ماژول‌های تایمر برای تولید سیگنال‌های خروجی PWM و ارائه قابلیت‌های زمان‌بندی و ایجاد تاخیر استفاده می‌شوند، و همچنین می‌توانیم از آنها برای اجرا در هر حالتی برای دستیابی به عملکرد مورد نظر استفاده کنیم. هر تایمر سخت افزاری یک رجیستر شمارنده دیجیتال در هسته خود دارد که بر اساس سیگنال کلاک ورودی شمارش می کند. اگر سیگنال ساعت از یک منبع داخلی با فرکانس ثابت بیاید، گفته می شود که [ . . . ]

  • 346 بازدید
  • 0
  • 23 دسامبر, 2023
ادامه مطلب

جدید آموزش وقفه در آردوینو

وقفه چیست؟ فرض کنید در منزل به امور روزمره تان می پردازید. اگر کسی پشت در باشد چطور متوجه می شوید که باید بروید و در را باز کنید؟ جواب ساده است. آن شخص زنگ در را می زند، شما متوجه می شوید که شخصی پشت در است و می روید و در را باز می کنید. قطعا شما برای اینکه متوجه شوید آیا کسی پشت در منتظر هست یا نه هر 5 دقیقه در را باز نمی کنید تا این مساله را بررسی کنید! در این مثال زنگ در نقش وقفه یا Interrupt را بازی می کند.  یعنی شما به کارهای معمول می پردازید تا زمانی که یک وقفه شما را از انجام این کارها باز دارد و شما به وقفه ای که دریافت کردید رسیدگی کنید.  اما به روشی که به طور مرتب در را باز کنید تا ببینید کسی پشت در هست یا خیر polling می گویند. در برنامه نویسی از روش polling در مواردی استفاده می شود که معمولا ساختار برنامه ساده باشد و با بررسی مرتب ورودی ها اختلالی در عملکرد برنامه پیش نیاید. وقفه ها وظایف جانبی هستند که CPU باید به محض دریافت آنها را انجام دهد و [ . . . ]

  • 222 بازدید
  • 0
  • 23 دسامبر, 2023
ادامه مطلب

جدید آشنایی با PWM در آردوینو

PWM  مخفف Pulse Width Modulation است که به فارسی به معنای مدولاسیون پهنای پالس است. این یک تکنیک الکترونیک است که برای کنترل توان الکتریکی یک بار با تغییر زمان روشن بودن و خاموش بودن منبع تغذیه در هر سیکل استفاده می شود. سیگنال PWM یک سیگنال PWM از یک شکل موج مربعی با پهنای پالس متغیر تشکیل شده است.  پهنای پالس به درصد زمانی گفته می شود که سیگنال بالا است. به عنوان مثال، اگر پهنای پالس 50٪ باشد، سیگنال نیمی از زمان بالا و نیمی از زمان پایین است. PWM  با استفاده از یک مدار سوئیچینگ انجام می شود. این مدار با استفاده از یک سیگنال کنترلی، منبع تغذیه را به بار وصل یا قطع می کند. سیگنال کنترلی معمولاً یک سیگنال دیجیتال است که می تواند دو مقدار مختلف داشته باشد:0 یا 1 PWM  برای طیف گسترده ای از کاربردها استفاده می شود، از جمله: PWM  یک تکنیک انعطاف پذیر و پراستفاده است که در بسیاری از دستگاه های الکترونیکی یافت می شود. فرکانس PWM سیگنال PWM دارای چند ویژگی است. اولین مورد فرکانس F است که اساساً معیاری است برای اینکه سیگنال PWM با چه سرعتی بین HIGH و LOW در [ . . . ]

  • 263 بازدید
  • 0
  • 23 دسامبر, 2023
ادامه مطلب

جدید مبدل آنالوگ به دیجیتال ADC در آردوینو

مبدل آنالوگ به دیجیتال (ADC) یک سیستم الکترونیکی است که یک سیگنال آنالوگ، مانند صدای دریافت شده توسط میکروفون یا نور وارد شده به دوربین دیجیتال را به سیگنال دیجیتال تبدیل می کند. ما معمولاً از یک ADC برای اندازه‌گیری/خواندن ولتاژ آنالوگ از منابع یا حسگرهای مختلف استفاده می‌کنیم. ADC معمولاً داخل میکروکنترلرهای مختلف تعبیه می شود یا به عنوان یک آی سی جداگانه ارائه می گردد. آردوینو UNO (میکروکنترلر atmega328p) در مجموع دارای 6 پایه ورودی آنالوگ است که به صورت داخلی به ADC متصل می شوند تا برای خواندن ورودی های ولتاژ آنالوگ استفاده شوند. این پایه ها معمولا با حرف A مشخص می شوند. به عنوان مثال در آردوینو UNO پایه های A0 تا A5 می توانند به عنوان ورودی آنالوگ ADC استفاده شوند. تعداد ADC در سایر بردهای آردوینو ممکن است تفاوت داشته باشد. رزولوشن ADC آردوینو رزولوشن ADC داخلی آردوینو 10 بیت است، به این معنی که محدوده خروجی آن بین  0 تا 1023 است. ولتاژ مرجع آنالوگ برای آردوینو ADC به طور پیش فرض VREF = +5v است، به این معنی که می توانیم ولتاژ ورودی آنالوگ را از 0 تا 5 ولت اندازه گیری کنیم. در صورتی که [ . . . ]

  • 266 بازدید
  • 0
  • 23 دسامبر, 2023
ادامه مطلب

جدید مانیتور سریال در آردوینو

مانیتور سریال آردوینو ابزار بسیار مفیدی است که در خود IDE آردوینو تعبیه شده است. بنابراین برای برقراری ارتباط با آردوینو از طریق پورت سریال نیازی به یک ترمینال خارجی ندارید. فقط مانیتور سریال را باز کنید، باود ریت صحیح را برای ارتباط تنظیم کنید، و برنامه را آپلود نمایید.در اینجا یک برنامه ساده آردوینو را مشاهده می کنید که هر ثانیه یک بار پیام “Hello karakit” را از طریق پورت سریال به ترمینال IDE می فرستد و ما آن را در مانیتور سریال مشاهده خواهیم کرد. تابع setup یک بار زمانی که برد روشن یا ریست می شود فراخوانی می شود. در این کد با استفاده از Serial.begin(115200) ارتباط سریال را با باودریت 115200 مقداردهی اولیه می کند. حلقه loop پس از تکمیل تابع setup به طور مداوم اجرا می شود. این کد عبارت “Hello karakit” را با استفاده از دستور Serial.println (“Hello karakit”) در مانیتور سریال چاپ می کند و سپس قبل از تکرار فرآیند، با استفاده از delay (1000) 1 ثانیه منتظر می ماند. اگر باودریت مانیتور سریال با باودریت تعیین شده در برنامه برابر نبود می توانید آن را تغییر دهید و تنظیم کنید: دریافت ورودی از کاربر در پورت سریال سه نوع داده رشته [ . . . ]

  • 410 بازدید
  • 0
  • 11 دسامبر, 2023
ادامه مطلب

جدید ورودی دیجیتال در آردوینو

قصد داریم برای آشنای با ورودی دیجیتال در آردوینو یک دکمه به یکی از پایه های آن وصل کنیم و برنامه ای بنویسیم که در صورت فشرده شدن دکمه یک LED که به یکی از پایه های خروجی متصل شده روشن شود. وقتی می گوییم ورودی دیجیتال یعنی این ورودی تنها می تواند یکی از دو مقدار High یا Low داشته باشد. دکمه را به پایه 2 و LED را از طریق مقاومت 220 اهم به پایه 8 وصل می کنیم. مدار به شکل زیر است: برنامه به شکل زیر نوشته می شود: کد از دو قسمت تشکیل شده است: setup و loop. قبل از تابع setup سه متغیر led، button و buttonValue را مقداردهی اولیه کرده ایم. در خط اول متغیری به نام led از نوع int با مقدار 8 را مقداردهی اولیه شده است. این متغیر برای ذخیره شماره پین متصل به LED استفاده می شود. سپس دمتغیری به نام button از نوع int با مقدار 2 را مقداردهی اولیه شده است. این متغیر برای ذخیره شماره پین دکمه ای که به برد آردوینو متصل است استفاده می شود. در خط بعد متغیری به نام buttonValue از نوع int با مقدار 0 را مقداردهی اولیه شده است. [ . . . ]

  • 281 بازدید
  • 0
  • 9 دسامبر, 2023
ادامه مطلب

جدید شروع کار با آردوینو

آردوینو چیست؟ آردوینو یک پلتفرم الکترونیکی منبع باز است که بر اساس سخت افزار و نرم افزار آسان برای استفاده است. این یک برد نمونه‌سازی مبتنی بر میکروکنترلر است که می‌تواند برای توسعه دستگاه‌های دیجیتالی استفاده شود که می‌توانند ورودی‌های مختلف را مانند فشردن دکمه، لمس روی صفحه، نور روی سنسور و غیره بخوانند و خروجی های مختلف مانند روشن کردن LED ، چرخاندن موتور، پخش آهنگ ها از طریق بلندگو و موارد دیگر را کنترل کند. برد آردوینو به تمام قطعات الکترونیکی مورد نیاز برای راه اندازی میکروکنترلر روی یک PCB مجهز شده است. همچنین دارای ویژگی های مفید دیگری مانند پین های ورودی/خروجی، یک پورت USB برای ارتباط بین آردوینو و یک کامپیوتر، و یک کانکتور برق 9 ولت DC است. طی سال‌ها، آردوینو مغز هزاران پروژه از وسایل روزمره گرفته تا ابزارهای علمی پیچیده بوده است. سازندگان، دانشجویان، علاقه‌مندان، هنرمندان، برنامه‌نویسان و متخصصان سراسر جهان حول این پلتفرم منبع باز گرد آمده‌اند و مشارکت‌های آنها به تولید دانش زیادی درباره آردوینو منجر شده است که می‌تواند به افراد تازه‌کار و متخصص کمک بزرگی بکند. آردوینو در مؤسسه طراحی تعامل Ivrea به عنوان ابزاری آسان برای نمونه‌سازی سریع متولد شد، که هدف آن [ . . . ]

  • 210 بازدید
  • 0
  • 9 دسامبر, 2023
ادامه مطلب

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

فرض کنید که بخواهیم ویژگی های یک شی را که از روی یک کلاس ایجاد کرده ایم نمایش دهیم. کلاس Person را که در مطالب قبلی استفاده کردیم در نظر بگیرید: اگر یک کارمند جدید با این کلاس ایجاد کنیم و با دستور print بخواهیم مقدارش را نمایش دهیم خروجی به این شکل نمایش داده می شود: <__main__.Person object at 0x000001F327211370> اما این نمایش چیزی از خصوصیات شی Kamran ارایه نمی دهد. اما برای این کار می توانیم از متد خاصی به نام __repr__ استفاده کنیم. متد __repr__ یک متد خاص در کلاس‌های پایتون است که نمایش رشته‌ای از یک شی را برمی‌گرداند. توسط تابع ()repr داخلی فراخوانی می شود و برای ارائه یک نمایش رشته دقیق تر و رسمی از یک شی استفاده می شود. در اینجا مثالی از نحوه تعریف متد __repr__ در کلاس Person آورده شده است: در این مثال، متد __repr__ رشته‌ای را برمی‌گرداند که می‌توان از آن برای ایجاد مجدد شی Person استفاده کرد. این رشته حاوی مقادیر first_name، last_name و IDnumber شیء است. برنامه کامل را در زیر می بینید: این بار با اجرای برنامه خروجی را به این صورت مشاهده خواهید نمود: Person(‘Kamran’, ‘Hamidi’, 1257148) که مقادیر ویژگی [ . . . ]

  • 313 بازدید
  • 0
  • 2 دسامبر, 2023
ادامه مطلب

آخرین محصولات ما