جدید چطور نسخه های پایتون نصب شده در ویندوز را تشخیص دهیم؟
کافی است در ترمینال ادیتور این دستور را اجرا کنید: نتیجه مشابه زیر نمایش داده خواهد شد:
کافی است در ترمینال ادیتور این دستور را اجرا کنید: نتیجه مشابه زیر نمایش داده خواهد شد:
در قسمت قبل دیدیم که چطور می توانیم یک دیتابیس ایجاد کنیم، در دیتابیس جدول درست کنیم و داده هایمان را به جدول اضافه نماییم. حالا قصد داریم که داده های موجود را از جدول استخراج کنیم. کد زیر را ببینید: کد با وارد کردن دو ماژول پایتون شروع می شود: os و sqlite3. خطوط بعدی مسیر فایل پایگاه داده SQLite را تعیین می کند: os.path.abspath(__file__) مسیر مطلق اسکریپت فعلی (فایلی که این کد در آن قرار دارد) را برمی گرداند. os.path.dirname نام دایرکتوری را از مسیر مطلق استخراج می کند. os.path.join مسیر دایرکتوری را با نام فایل ‘library.db’ ترکیب می کند تا مسیر کامل فایل پایگاه داده را ایجاد کند. حالا باید یک اتصال یا connection به پایگاه داده برقرار کنیم. sqlite3.connect(db_path) یک اتصال به پایگاه داده SQLite واقع در db_path برقرار می کند. اکنون می توانیم یک Query یا پرس و جو اجرا کنیم: خط بالا تمام سطرهای جدول با نام “books” را بازیابی می کند و نتیجه پرس و جو در متغیر query ذخیره می شود. بعد از ذخیره محتوای جدول می توانیم داده ها را با استفاده از fetchall استخراج کنیم و در متغیر data ذخیره و آن را چاپ کنیم. [ . . . ]
در این بخش از آموزش قصد داریم که نحوه کار کردن با این SQLite را در پایتون با استفاده از یک مثال ساده شروع کنیم. قبل از هر چیز بهترین خبری که میتوان داد این است که این بسته نیازی به نصب ندارد و از قبل در پایتون گنجانده شده است. ما در این مثال قصد داریم که یک دیتابیس برای کتابهایمان ایجاد کنیم. پس به طور مستقیم sqlite3 را به برنامه وارد میکنیم. حالا باید یک کانکشن به دیتابیس اضافه کنیم. دقت کنید که لازم نیست از قبل دیتابیس را ساخته باشید. حالا باید دستورهای اولیه را به sqlite بدهیم تا یک جدول در دیتابیس ایجاد کند و یژگیهای مورد نظر را به آن اضافه نماید. اولین خط دستور این است که اگر جدولی با نام books در دیتابیس وجود ندارد آن را ایجاد کند. سپس کلید اولیه را با نام id ایجاد میکنیم که یک عدد صحیح است. در خطوط بعد موارد مورد نیاز را به جدول اضافه می کنیم. این موارد عبارت هستند از عنوان کتاب، نویسنده، ژانر، سال و تعداد صفحات. اما اگر دقت کنید دیتابیس در پوشه برنامه شما ایجاد نشده است. بلکه در مسیر پیش فرض ایجاد گشته است. [ . . . ]
پایگاه داده یا دیتابیس چیست؟ پایگاه داده مجموعه ای سازمان یافته از اطلاعات است که می تواند جستجو، مرتب شده و به روز شود. نکات کلیدی پایگاه های داده را در زیر مشاهده می کنید: داده های ساختاریافته: پایگاه های داده داده ها را به صورت سازماندهی شده ذخیره می کنند. هر بخش از اطلاعات با سایر نقاط داده مرتبط است. می توانید به آن به عنوان یک سیستم بایگانی دیجیتال فکر کنید که در آن داده ها به طور مرتب طبقه بندی می شوند. سیستم مدیریت پایگاه داده (DBMS): پایگاه های داده معمولاً توسط نرم افزاری به نام DBMS مدیریت می شوند. این سیستم ذخیره سازی، بازیابی و دستکاری داده ها را مدیریت می کند. نمونه هایی از DBMS عبارتند از MySQL، PostgreSQL و SQLite2. سطرها و ستون ها: پایگاه های داده داده ها را در ردیف ها (record) و ستون ها (attribute) سازماندهی می کنند. این ساختار جدولی امکان پردازش و بازیابی کارآمد اطلاعات را فراهم می کند. چه در حال ساخت یک برنامه کوچک باشید یا مدیریت داده های پیچیده سازمانی، درک پایگاه های داده ضروری است. آنها ستون فقرات برنامه های مدرن را تشکیل می دهند! پایگاه های داده رابطه ای [ . . . ]
PEP 8 یا PEP8 یا PEP-8 سندی است که دستورالعمل ها و بهترین شیوه ها را در مورد نحوه نوشتن کد پایتون ارائه می دهد. تمرکز اصلی PEP 8 بهبود خوانایی و سازگاری کد پایتون است. PEP مخفف Python Enhancement Proposal است و چندین نسخه از آنها وجود دارد. در این آموزش دستورالعمل های کلیدی ارائه شده در PEP 8 معرفی می شوند. اصلا چرا به PEP8 نیاز داریم؟ یک کد بیشتر از آنچه نوشته می شود خوانده می شود. مثلا ممکن است چند دقیقه یا یک روز کامل را صرف نوشتن یک کد کنید. وقتی آن را نوشتید، دیگر هرگز آن را نخواهید نوشت. اما مطمئناً باید دوباره آن را بخوانید. آن قطعه کد ممکن است بخشی از پروژه ای باشد که روی آن کار می کنید. هر بار که به آن فایل برمیگردید، باید به خاطر داشته باشید که آن کد چه کاری انجام میدهد و چرا آن را نوشتهاید، بنابراین خوانا بودن کد مهم است. همچنین اگر به عنوان یک توسعه دهنده دنبال شغل هستید پیروی از PEP 8 بسیار مهم است. نوشتن کد واضح و خوانا، حرفه ای بودن شما را نشان می دهد و به کارفرما می گوید که می [ . . . ]
PySerial یک کتابخانه کراس پلتفرم است که یک ارتباط سریال برای پایتون فراهم می کند. این کتابخانه به شما امکان می دهد داده ها را از برنامه های پایتون خود در پورت های سریال بخوانید و بنویسید. پورت های سریال معمولاً برای اتصال رایانه ها به تجهیزات جانبی مانند بردهای آردوینو، ماژول های GPS و اسکنر بارکد استفاده می شوند. ماژول pySerial با دستور pip به این صورت نصب می شود: پیدا کردن پورتهای COM برای فهرست کردن پورت های COM موجود با استفاده از Pyserial، می توانید از کد پایتون زیر استفاده کنید: ابتدا ماژول serial.tools.list_ports را وارد می کنیم، که توابعی را برای کار با پورت های سریال ارائه می دهد. تابع list_ports.comports لیستی از پورت های سریال موجود را برمی گرداند. حلقه لیست را پیمایش می کند و نام هر پورت موجود در لیست را چاپ می کند (به عنوان مثال، ‘COM1’، ‘COM2’، و غیره). باز کردن یک پورت: همیشه باید در ابتدای برنامه ماژول را import کنیم: برای باز کردن یک پورت از دستور زیر استفاده می کنیم: پارامترهای مختلفی را می توانیم در این تابع تنظیم کنیم. این پارامترها را در زیر بررسی می کنیم: port نام پورت میتواند رشتهای [ . . . ]
ماژول های تایمر در آردوینو عملکرد زمان بندی دقیقی را ارائه می دهند. آنها به ما اجازه می دهند کارهای مختلفی را انجام دهیم، مانند ایجاد تأخیرهای دقیق، ایجاد رویدادهای دوره ای، اندازه گیری فواصل زمانی و برآوردن نیازهای زمانی برنامه مورد نظر. هر برد آردوینو میکروکنترلر مربوط به خودش را دارد که مجموعه ای از تایمرهای سخت افزاری خاص خود را دارد. بنابراین، همیشه باید به دیتاشیت مربوط به میکروکنترلر مورد نظر مراجعه کنیم تا بیشتر با قابلیت های سخت افزاری آن و نحوه استفاده بهینه از آن آشنا شویم. آردوینو UNO که از میکروکنترلر Atemga328p استفاده می کند دارای 3 تایمر سخت افزاری است که عبارتند از: Timer0: تایمر 8 بیتی Timer1: تایمر 16 بیتی Timer2: تایمر 8 بیتی این ماژولهای تایمر برای تولید سیگنالهای خروجی PWM و ارائه قابلیتهای زمانبندی و ایجاد تاخیر استفاده میشوند، و همچنین میتوانیم از آنها برای اجرا در هر حالتی برای دستیابی به عملکرد مورد نظر استفاده کنیم. هر تایمر سخت افزاری یک رجیستر شمارنده دیجیتال در هسته خود دارد که بر اساس سیگنال کلاک ورودی شمارش می کند. اگر سیگنال ساعت از یک منبع داخلی با فرکانس ثابت بیاید، گفته می شود که [ . . . ]
وقفه چیست؟ فرض کنید در منزل به امور روزمره تان می پردازید. اگر کسی پشت در باشد چطور متوجه می شوید که باید بروید و در را باز کنید؟ جواب ساده است. آن شخص زنگ در را می زند، شما متوجه می شوید که شخصی پشت در است و می روید و در را باز می کنید. قطعا شما برای اینکه متوجه شوید آیا کسی پشت در منتظر هست یا نه هر 5 دقیقه در را باز نمی کنید تا این مساله را بررسی کنید! در این مثال زنگ در نقش وقفه یا Interrupt را بازی می کند. یعنی شما به کارهای معمول می پردازید تا زمانی که یک وقفه شما را از انجام این کارها باز دارد و شما به وقفه ای که دریافت کردید رسیدگی کنید. اما به روشی که به طور مرتب در را باز کنید تا ببینید کسی پشت در هست یا خیر polling می گویند. در برنامه نویسی از روش polling در مواردی استفاده می شود که معمولا ساختار برنامه ساده باشد و با بررسی مرتب ورودی ها اختلالی در عملکرد برنامه پیش نیاید. وقفه ها وظایف جانبی هستند که CPU باید به محض دریافت آنها را انجام دهد و [ . . . ]
PWM مخفف Pulse Width Modulation است که به فارسی به معنای مدولاسیون پهنای پالس است. این یک تکنیک الکترونیک است که برای کنترل توان الکتریکی یک بار با تغییر زمان روشن بودن و خاموش بودن منبع تغذیه در هر سیکل استفاده می شود. سیگنال PWM یک سیگنال PWM از یک شکل موج مربعی با پهنای پالس متغیر تشکیل شده است. پهنای پالس به درصد زمانی گفته می شود که سیگنال بالا است. به عنوان مثال، اگر پهنای پالس 50٪ باشد، سیگنال نیمی از زمان بالا و نیمی از زمان پایین است. PWM با استفاده از یک مدار سوئیچینگ انجام می شود. این مدار با استفاده از یک سیگنال کنترلی، منبع تغذیه را به بار وصل یا قطع می کند. سیگنال کنترلی معمولاً یک سیگنال دیجیتال است که می تواند دو مقدار مختلف داشته باشد:0 یا 1 PWM برای طیف گسترده ای از کاربردها استفاده می شود، از جمله: PWM یک تکنیک انعطاف پذیر و پراستفاده است که در بسیاری از دستگاه های الکترونیکی یافت می شود. فرکانس PWM سیگنال PWM دارای چند ویژگی است. اولین مورد فرکانس F است که اساساً معیاری است برای اینکه سیگنال PWM با چه سرعتی بین HIGH و LOW در [ . . . ]
مبدل آنالوگ به دیجیتال (ADC) یک سیستم الکترونیکی است که یک سیگنال آنالوگ، مانند صدای دریافت شده توسط میکروفون یا نور وارد شده به دوربین دیجیتال را به سیگنال دیجیتال تبدیل می کند. ما معمولاً از یک ADC برای اندازهگیری/خواندن ولتاژ آنالوگ از منابع یا حسگرهای مختلف استفاده میکنیم. ADC معمولاً داخل میکروکنترلرهای مختلف تعبیه می شود یا به عنوان یک آی سی جداگانه ارائه می گردد. آردوینو UNO (میکروکنترلر atmega328p) در مجموع دارای 6 پایه ورودی آنالوگ است که به صورت داخلی به ADC متصل می شوند تا برای خواندن ورودی های ولتاژ آنالوگ استفاده شوند. این پایه ها معمولا با حرف A مشخص می شوند. به عنوان مثال در آردوینو UNO پایه های A0 تا A5 می توانند به عنوان ورودی آنالوگ ADC استفاده شوند. تعداد ADC در سایر بردهای آردوینو ممکن است تفاوت داشته باشد. رزولوشن ADC آردوینو رزولوشن ADC داخلی آردوینو 10 بیت است، به این معنی که محدوده خروجی آن بین 0 تا 1023 است. ولتاژ مرجع آنالوگ برای آردوینو ADC به طور پیش فرض VREF = +5v است، به این معنی که می توانیم ولتاژ ورودی آنالوگ را از 0 تا 5 ولت اندازه گیری کنیم. در صورتی که [ . . . ]