روشن و خاموش کردن LED متصل به یکی از پین های پین هدر و اجرای یک برنامه Python

در این نوشته اولین برنامه خروجی را برای روشن و خاموش کردن یک led  خواهیم نوشت.امید است که برنامه های پیشرفته تری توسط خود شما نوشته شود.

اولین گام فعال کردن یک درایور gpio در کرنل است.در این آموزش از درایور “ugly sun4i gpio driver” استفاده شده است.برای فعال کردن درایور در کرنل به آموزش ساخت کرنل سفارشی مراجعه کنید.من این درایور را فعال کردم و شما کافی است که فایل کرنل زیر را با فایل کرنل خودتان درSD جایگزین کنید.(فایل کرنل uImage است).

نکته مهم : شما بایستی از یکی از دو لینارو که قبلا معرفی شده استفاده کنید و لینارویی که من استفاده کردم لینارو 40 درصد سریعتر معرفی شده در چند پست قبلی است.

دومین گام ویرایش فایل اسکریپت و اضافه کردن پین های مورد نظر میباشد که من این را نیز ویرایش کرده و شما بایستی آن را با فایل evb.bin موجود در SD جایگزین کنید.

من به فایل evb.bin کلیه پین هایی را که میتوانند به عنوان ورودی و خروجی به کار روند را اضافه کرده ام.

به صورت زیر:

[gpio_para]
gpio_used = 1
gpio_num = 67
gpio_pin_1 = port:PG03<1><default><default><1>
gpio_pin_2 = port:PB19<1><default><default><1>
gpio_pin_3 = port:PB18<1><default><default><1>
gpio_pin_4 = port:PG06<1><default><default><1>
gpio_pin_5 = port:PG05<1><default><default><1>
gpio_pin_6 = port:PG04<1><default><default><1>
gpio_pin_7 = port:PG01<1><default><default><1>
gpio_pin_8 = port:PG02<1><default><default><1>
gpio_pin_9 = port:PG00<1><default><default><1>
gpio_pin_10 = port:PH14<1><default><default><1>
gpio_pin_11 = port:PH15<1><default><default><1>
gpio_pin_12 = port:PI06<1><default><default><1>
gpio_pin_13 = port:PI05<1><default><default><1>
gpio_pin_14 = port:PI04<1><default><default><1>
gpio_pin_15 = port:PG11<1><default><default><1>
gpio_pin_16 = port:PG10<1><default><default><1>
gpio_pin_17 = port:PG09<1><default><default><1>
gpio_pin_18 = port:PG08<1><default><default><1>
gpio_pin_19 = port:PG07<1><default><default><1>
gpio_pin_20 = port:PE08<1><default><default><1>
gpio_pin_21 = port:PE07<1><default><default><1>
gpio_pin_22 = port:PE06<1><default><default><1>
gpio_pin_23 = port:PE05<1><default><default><1>
gpio_pin_24 = port:PE04<1><default><default><1>
gpio_pin_25 = port:PI09<1><default><default><1>
gpio_pin_26 = port:PI08<1><default><default><1>
gpio_pin_27 = port:PI07<1><default><default><1>
gpio_pin_28 = port:PD04<1><default><default><1>
gpio_pin_29 = port:PD03<1><default><default><1>
gpio_pin_30 = port:PD02<1><default><default><1>
gpio_pin_31 = port:PD01<1><default><default><1>
gpio_pin_32 = port:PD00<1><default><default><1>
gpio_pin_33 = port:PE11<1><default><default><1>
gpio_pin_34 = port:PE10<1><default><default><1>
gpio_pin_35 = port:PE09<1><default><default><1>
gpio_pin_36 = port:PD12<1><default><default><1>
gpio_pin_37 = port:PD11<1><default><default><1>
gpio_pin_38 = port:PD10<1><default><default><1>
gpio_pin_39 = port:PD09<1><default><default><1>
gpio_pin_40 = port:PD08<1><default><default><1>
gpio_pin_41 = port:PD07<1><default><default><1>
gpio_pin_42 = port:PD06<1><default><default><1>
gpio_pin_43 = port:PD05<1><default><default><1>
gpio_pin_44 = port:PD20<1><default><default><1>
gpio_pin_45 = port:PD19<1><default><default><1>
gpio_pin_46 = port:PD18<1><default><default><1>
gpio_pin_47 = port:PD17<1><default><default><1>
gpio_pin_48 = port:PD16<1><default><default><1>
gpio_pin_49 = port:PD15<1><default><default><1>
gpio_pin_50 = port:PD14<1><default><default><1>
gpio_pin_51 = port:PD13<1><default><default><1>
gpio_pin_52 = port:PB02<1><default><default><1>
gpio_pin_53 = port:PD25<1><default><default><1>
gpio_pin_54 = port:PD24<1><default><default><1>
gpio_pin_55 = port:PD26<1><default><default><1>
gpio_pin_56 = port:PD27<1><default><default><1>
gpio_pin_57 = port:PD23<1><default><default><1>
gpio_pin_58 = port:PD22<1><default><default><1>
gpio_pin_59 = port:PD21<1><default><default><1>
gpio_pin_60 = port:PI11<1><default><default><1>
gpio_pin_61 = port:PI13<1><default><default><1>
gpio_pin_62 = port:PI10<1><default><default><1>
gpio_pin_63 = port:PI12<1><default><default><1>
gpio_pin_64 = port:PB13<1><default><default><1>
gpio_pin_65 = port:PB11<1><default><default><1>
gpio_pin_66 = port:PB10<1><default><default><1>
gpio_pin_67 = port:PH07<1><default><default><1>

حال برای تست یک led را به پایه pg0 وصل کنید.(هدر بین سوکت شبکه و usb : پایه 5 پایه pg0 است و 20 زمین).

اکنون ترمینال لینوکس را باز کرده و فرمان زیر را وارد کنید:

cd /sys/class/misc/sun4i-gpio

برای دیدن پین ها به پوشه pin رفته و با تایپ ls آنها را مشاهده کنید:(67 پین)

linaro@linaro-alip:/sys/class/misc/sun4i-gpio$ cd pin
linaro@linaro-alip:/sys/class/misc/sun4i-gpio/pin$ ls
pb10  pd0   pd14  pd2   pd25  pd6   pe4  pg0   pg4  ph14  pi13  pi9
pb11  pd1   pd15  pd20  pd26  pd7   pe5  pg1   pg5  ph15  pi4
pb13  pd10  pd16  pd21  pd27  pd8   pe6  pg10  pg6  ph7   pi5
pb18  pd11  pd17  pd22  pd3   pd9   pe7  pg11  pg7  pi10  pi6
pb19  pd12  pd18  pd23  pd4   pe10  pe8  pg2   pg8  pi11  pi7
pb2   pd13  pd19  pd24  pd5   pe11  pe9  pg3   pg9  pi12  pi8

حال برای روشن شدن led از فرمان زیر:

echo 1 > pg0

و برای خاموش شدن از فرمان زیر:

echo 0 > pg0

استفاده کنید.

برای برنامه نویسی این پین ها شما بایستی با یک زبان برنامه نویسی به فایل دسترسی پیدا کرده و سپس عملیات مورد نظرتان را انجام دهید.

شما می توانید این کار را با زبانهایی چون C –   C plus plus -C Sharp-java-python انجام دهید.

در ادامه از یک برنامه python که توسط دوست چینی و برای stepper motor نوشته شده استفاده می کنیم.(برای تست led زمان برنامه اضافه شده 20000که شما میتوانید با برگرداندن زمان به مقدار 200 و با درایور مناسب از آن برای درایو stepper motor هم استفاده کنید).

فایل زیر را دانلود کرده و پس از اکسترکت کردن آن را در پوشه /home/linaro کپی کنید.

حال کافی است در ترمینال فرمان زیر را وارد کنید:

python motor_main.py

اگر درست عمل کرده باشید ال ای دی شروع به چشمک زدن خواهد کرد.

برنامه فوق را نیز می توانستید با idle باز کرده و اجرا کنید.

برای توقف برنامه از ctrl+z استفاده کنید.

لینک دانلود فایلهای uImage و evb.bin :

Desktop.part2 Desktop.part1

لینک دانلود برنامه python:

motor_gpio

 

Bookmark the پیوند یکتا.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد.