در پست های قبلی الکترولب با ماژول ESP8266 آشنا شدید راه اندازی ماژول وای فای با آردوینو را بررسی کردیم و در پست هایی مقدمات کار با میکروپایتون را توضیح دادیم. در این پست ویژه همه آموزش های قبلی را جمع بندی و ارائه می کنیم با ما همراه باشید.
میکروپایتون با ماژول WiFi ESP8266
میکروپایتون شاخه ای از زبان برنامه نویسی پایتون است که برای اجرا بر روی میکروکنترلر ها بهینه شده است مزیت استفاده از میکروپایتون بر روی میکروکنترلر ها استفاده از کتابخانه ها و نمونه کدهای آماده موجود برای زبان پایتون است. از طرفی زبان پایتون یکی از راحت ترین زبان ها برای یادگیری و شروع برنامه نویسی می باشد.
برای شروع به چه چیزهایی نیاز است
برای شروع برنامه نویسی میکروپایتون به سخت افزاری نیاز دارید که بتواند کد های میکروپایتون را برای شما اجرا کند. برای این منظور می توانید از بردهای pyboard و یا NUCLEO تولید STM استفاده کنید. همچنین از میکروپایتون برای استفاده بر روی ماژول های وای فای ESP8266 نیز آماده شده است. مزیت استفاده از ماژول ESP8266 نسبت به برد های دیگر یک وجود ارتباط Wi-Fi برای اتصال به اینترنت و شبکه و دو قیمت مناسب و در دسترس بودن آن است در ادامه به معرفی کلی ماژول های ESP8266 می پردازیم. و درنهایت راه اندازی و استفاده از میکروپایتون را بررسی میکنیم.
معرفی ماژول وای فای ESP8266
ماژول وای فای esp8266 دارای یک میکروکنترلر 32 بیتی با سرعت کلاک 160 مگاهرتز بوده که 80 درصد قدرت پردازشی آن برای اجرای برنامه های نوشته شده توسط برنامه نویس می باشد. در نتیجه برای استفاده از این ماژول نیازی به میکروکنترلر دیگری نبوده و از قدرت پردازشی خود ماژول برای اجرای برنامه های نوشته شده می توان استفاده کرد. انواع مختلفی از ماژول های ESP8266 تولید شده که انواع آنها را در ادامه می توانید مشاهده کنید.
روش های مختلف برنامه نویسی برای ماژول ESP826 :
استفاده از IDE آردوینو
در این روش شما می توانید برنامه هایی به زبان C و C++ نوشته و به وسیله IDE آردوینو، کامپایل و ماژول خود را پروگرم کنید.
استفاده از NodeMcu و زبان LUA
Lua یک زبان اسکریپتی قدرتمند ، سریع ، سبک و قابل گسترش می باشد. Lua یک زبان تابعی بوده و شما با استفاده از امکاناتی که ساختمان داده های این زبان در اختیار شما قرار می دهد می توانید برنامه های شی گرا بنویسید. مدیریت حافظه به صورت داینامیک صورت گرفته و برنامه به بایت کدی که توسط مفسر قابل اجراست تبدیل می گردد. برای نوشتن و آپلود برنامه به این زبان می توانید از محیط ESplorer استفاده کنید.
آموزش راه اندازی و استفاده از Micropython بر روی ESP8266
پایتون یک زبان برنامهنویسی همه منظوره سطح بالا می باشد. قابلیت یادگیری آسان، آن را به یکی از فراگیر ترین زبان های برنامه نویسی تبدیل کرده است. می خواهیم از این زبان برنامه نویسی برای برنامه نویسی ماژول ESP8266 استفاده کنیم. برای این منظور ابتدا باید فریمور Micro python بر روی ESP8266 نصب شود.
انتخاب ماژول ESP8266 مناسب
از میان ورژن های مختلف ماژول ESP8266 می توانید با توجه به نیاز خود یکی را انتخاب کنید. ولی برای شروع پیشنهاد می شود از برد D1mini برای راحتی کار استفاده کنید. و یا از برد های مشابه که چیپ تبدیل USB به سریال را بر روی خود دارند نیز استفاده کنید. در ادامه آموزش ما از برد D1mini استفاده می کنیم.
نصب فریمور میکروپایتون بر روی ESP8266
برای نصب فریمور به برنامه ی ESP8266Flasher نیاز است برای دانلود برنامه به صفحه گیت هاب برنامه مراجعه کنید.
https://github.com/nodemcu/nodemcu-flasher
برای دانلود فریمور میکروپایتون برای ESP8266 نیز به صفحه دانلود پروژه ی MicroPython مراجعه کنید. فریمور در سه نسخه stable وdaily و daily 512KB منتشر میشود که پیشنهاد می شود از نسخه stable استفاده کنید.
http://micropython.org/download
بعد از دانلود فایل های مورد نیاز برنامه ESP8266Flasher را اجرا کنید.
پورت سریالی که ماژول به رایانه متصل شده است را از قسمت COM Port انتخاب کنید.
برای انتخاب فایل فریمور از قسمت config بر روی قسمت مشخص شده کلیک کنید و فریمور را انتخاب کنید.
و در نهایت در قسمت Operation گزینه Flash را انتخاب کنید و منتظر بمانید تا عمیات نصب فریمور تمام شود.
دسترسی به محیط برنامه نویسی میکروپایتون
بعد از اتمام نصب فریمور بر روی ماژول ESP8266 جهت دسترسی به محیط برنامه نویسی میکروپایتون یا همان REPL می بایست به وسیله یک ترمینال سریال به ماژول ESP8266 متصل شویم. REPL مخفف کلمه های Read–eval–print loop است به معنی حلقه خواندن محاسبه و پرینت نتیجه است.
برای اتصال به ماژول ESP8266 در ویندوز از نرم افزار putty استفاده می کنیم. طبق تصویر زیر برنامه putty را تنظیم کنید.
بعد از باز شدن ترمینال سریال به محیط REPL میکروپایتون دسترسی خواهیم داشت. برای اولین برنامه می توانیم برنامه print(“hello World!”) را اجرا کنیم این دستور عبارت Hello World! را در خروجی نمایش میدهد.
دسترسی به محیط برنامه نویسی میکروپایتون از طریق مرورگر وب
برای دسترسی به محیط برنامه نویسی پایتون یا همان REPL اول باید آن را از طریق ارتباط سریال فعال کنید برای فعال کردن آن در ترمینال سریال دستور زیر را وارد کنید.
1 |
import webrepl_setup |
در مرحله اول از شما در مورد فعال کردن محیط webrepl سوال پرسیده میشود با وارد کردن عبارت E این محیط را فعال کنید. در مرحله دوم در مورد اینکه هنگام بوت ماژول این محیط به صورت پیش فرض برای شما فعال شود یا نه که با وارد کردن حرف y این ویژگی را فعال کنید و در آخر برای دسترسی به این محیط یک رمز 4 تا 9 کاراکتری باید وارد شود. بعد از اتمام این مراحل ماژول یک بار ریست میشود.بعد از ریست شدن از طریق WiFi به ماژول ESP8266 متصل شوید. به صورت پیش فرض نام WiFi ماژول با اسم ESP8266 شروع میشود، رمز پیش فرض micropythoN است، توجه کنید که N با حرف بزرگ است. و شما می توانید بعد از اتصال راینه خود به ماژول ESP8266 از طریق WiFiو با باز کردن صفحه (توجه کنید این صفحه برای باز شدن اولیه به اینترنت نیاز دارد قبل از اتصال به esp8266 این صفحه را باز کنید)
http://micropython.org/webrepl/
به محیط webrepl از طریق مرورگر خود دسترسی داشته باشید.
برای اتصال روی connect کیلک کنید و رمزی که در مرحله قبل وارد کردید را تایپ کنید و اینتر را بزنید (توجه کنید که به هنگام تایپ رمز چیزی در صفحه نمایش داده نمیشود) و طبق معمول اجرای برنامه معروف Hello World!
مزیت استفاده از محیط webrepl درسترسی به آپلود فایل بر روی ماژول ESP8266 میباشد از این قابلیت برای آپلود کتابخانه و برنامه های پایتون می توانید استفاده کنید.
آشنایی با دستورات متداول میکروپایتون بر روی ESP8266
تا به اینجا با نحوه کار کردن و دسترسی به محیط برنامه نویسی Micropython بر روی ماژول ESP8266 آشنا شدید. در ادامه بعضی از دستورات متداول زبان میکروپایتون را به شما شرح میدهیم.
کنترل GPIO ماژول ESP8266
GPIO ها راهی برای اتصال ماژول esp8266 برای کنترل جهان بیرون و تجهیزات مختلف هستند همه پین های ماژول esp8266 برای کنترل در دسترس نیستند و معمولا پین های 0, 2, 4, 5, 12, 13, 14, 15 و16 برای کنترل در دسترس هستند.
برای استفاده از GPIO ماژول ابتدا باید کتابخانه مورد نظر را به برنامه خود اضافه کنید:
1 |
>>>import machine |
برای استفاده از هر پین اول باید نوع پین (ورودی یا خروجی بودن آن مشخص شود) امکان pull up کردن داخلی هر پین نیز وجود داردبه عنوان مثال در دستور زیر پین 0 به صورت ورودی و pull up تعریف شده است.
1 |
>>>pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP) |
برای تشخیص low یا high بودن پین می توان از دستور value() استفاده کرد که متناسب با وضعیت پایه مقدار 0 یا 1 را بر می گرداند.
1 |
>>>pin.value() |
برای خروجی کردن یک پین می توان به صورت زیر عمل نمود:
1 |
>>>pin = machine.Pin(0, machine.Pin.OUT) |
برای تغییر وضعیت پین مورد نظر می توان از دستور value(0) و یا value(1) استفاده کرد مثل:
1 2 3 |
>>> pin.value(0) >>> pin.value(1) |
و یا به روش پایین
1 2 3 |
>>> pin.off() >>> pin.on() |
راه اندازی LCDکاراکتری توسط میکروپایتون
ابتدا کتابخانه Pyb را فراخوانی میکنیم
1 |
import pyb |
سپس کتابخانه Lcd را فراخوانی میکنید.
1 |
From lcd import HD44780 |
برای استفاده از این کتابخانه باید فایل lcd.py از طریق محیط webrepl به حافظه ماژول منتقل شده باشد.
یک فانکشن جهت راه اندازی lcd تعریف میکنیم :
1 |
def lcd_run(): |
یک متغیر به نام Lcd تعریف کرده و خروجی تابع HD44780 را درون آن بریزید.
1 |
lcd=HD44780() |
سپس Pin های دیتا Lcd که به برد متصل است را در تابع زیر به صورت زیر قرار دهید
1 |
lcd.PINS =['Y1','Y2','Y3','Y4','Y5','Y6'] |
جهت پیکره بندی Lcd تابع زیررا فراخوانی کنید
1 |
lcd.init() |
جهت نمایش کاراکترها در سطر مورد مورد نظر از تابع زیر استفاده نمایید
1 |
lcd.set_line(x) |
به جای x سطر مورد نظر قرار دهید
جهت نوشتن یک رشته و کاراکتر از تابع زیر استفاده کنید
1 |
lcd.set_string("ABCDEFGHIJKLMNOP") |
جهت پاکسازی صفحه از تابع زیر استفاده نمایید
1 |
lcd.clear() |
و توسط تاخیر موجود در کتابخانه pyb یک تاخیر ۳۰۰۰ میلی ثانیه ای جهت ماندگاری و عدم پرش کاراکترها در صفحه Lcd ایجاد نمایید
1 |
pyb.delay(3000) |
برنامه کامل راه اندازی LCD کاراکتری با میکروپایتون:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
import pyb from lcd import HD44780 def Lcd_Run(): lcd = HD44780() lcd.PINS =['Y1','Y2','Y3','Y4','Y5','Y6'] lcd.init() lcd.set_line(0) lcd.set_string("Meysam MZ") lcd.set_line(1) lcd.set_string("Micro Py") pyb.delay(3000) lcd.clear() # -----Help Connect Lcd ----- # 1 VSS GND GND # 2 VDD +5V VCC # 3 V0 Contrast (0-5V)* Pot # 4 RS Register select pyboard, 0 # 5 R/W Read/write GND # 6 E Enable pyboard, 1 # 7 DB0 Data Bit 0 NC # 8 DB1 Data Bit 1 NC # 9 DB2 Data Bit 2 NC # 10 DB3 Data Bit 3 NC # 11 DB4 Data Bit 4 pyboard, 2 # 12 DB5 Data Bit 5 pyboard, 3 # 13 DB6 Data Bit 6 pyboard, 4 # 14 DB7 Data Bit 7 pyboard, 5 # 15 A Backlight +someV VCC # 16 K Backlight GND GND #--------End Script-------# |
برای اطلاعات بیشتر و خواندن راهنمای این زبان می توانید از لینک زیر استفاده کنید.