امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
درخواست کمک برای برنامه نویسی و مدار روبات بازو
نویسنده پیام
maleknet63 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: تير ۱۳۹۰

تشکرها : 4
( 2 تشکر در 2 ارسال )
ارسال: #1
درخواست کمک برای برنامه نویسی و مدار روبات بازو
من از دوستان گرامی این ساخت درخواست کمک دارم
پروژه ام روی زمین مانده
خواهشا لطف کنید منو راهنمایی کنید

من به یک برنامه بسکام و مدار احتیاج دارم که نیاززیر را برآورده کند
با یک سوئیچ یک استپر موتور شروع به حرکت (راست گرد)کند بصورت پله به پله
به این صورت که تا مدامی که دست ما سوئیچ را می فشارد موتور بچرخد
و هر وقت ما دستتمان را از روی سوئیچ برداشیم موتور روی پله ای که رسیده قفل شود
و باز اگر ما کلید را فشردیم باز به همان منوال قبل چرخشش را ادامه بدهد

همچنین یک سوئیچ دیگر هم باشد برای چپ گرد شدن استپر دقیقا مثل سویچ راست گرد
--
این برنامه برای حرکت دادن یک بازوی روبات است
به این صورت که ما با فشردن و نگه داشتن کلید راست گرد و یا چپ گرد بازو را
توسط موتور به حرکت در میآوریم و با برداشتن دست از روی کلید موتور همان جا و در همان
موقعیت قفل میشود ...
من یک همچین برنامه ای رو برای سرو موتور هم میخواهم
یک بازوی دو مفصلی است که با دو موتور استپر و سروو قراره کنترل بشه
--
استپر ما با تراشه
L297
راه اندازی میشود
--
یک مطلب دیگه هم که مهمه انه که موتور ما به آرامی بچرخه
و بازوی ما هم به آرامی حرکت کنه
--
من رشته ام مکانیک است و تقریبا کار مکانیکی روبات تموم شده و
مدتی هست درگیر مدار و برنامه های مربوطه برای راه اندازی هستم
و هنوز نتونستم از این لحاظ پیشرفتی داشته باشم
فرصتی هم ندارم برای ارائه پروژه
لطف کنید کمکم کنید
(آخرین ویرایش در این ارسال: ۰۶-مرداد-۱۳۹۰, ۱۰:۳۹:۳۱، توسط maleknet63.)
۰۶-مرداد-۱۳۹۰, ۱۰:۲۶:۲۹
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #2
RE: درخواست کمک برای برنامه نویسی و مدار روبات بازو
سلام.

اگر برنامه نويسيه كارتون در همين حد هست ، سنگين نيست ...
اين كتاب رو دانلود كن ...

http://www.iranled.com/forum/thread-1086...%A8+1nafar

فهرستش رو ببين ، در فصل 4 ، صفحه ي 137 ، آموزش راه اندازيه سروو موتور هست ...
در ضمائم هم راه اندازي استپر موتور و ديگر موتور ها به همراه مثال هست ...

موفق باشي.
يا علي.

۰۶-مرداد-۱۳۹۰, ۱۲:۰۱:۲۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : maleknet63, رسول, h0x00i
maleknet63 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: تير ۱۳۹۰

تشکرها : 4
( 2 تشکر در 2 ارسال )
ارسال: #3
RE: درخواست کمک برای برنامه نویسی و مدار روبات بازو
(۰۶-مرداد-۱۳۹۰, ۱۲:۰۱:۲۵)sharin نوشته است: سلام.

اگر برنامه نويسيه كارتون در همين حد هست ، سنگين نيست ...
اين كتاب رو دانلود كن ...

http://www.iranled.com/forum/thread-1086...%A8+1nafar

فهرستش رو ببين ، در فصل 4 ، صفحه ي 137 ، آموزش راه اندازيه سروو موتور هست ...
در ضمائم هم راه اندازي استپر موتور و ديگر موتور ها به همراه مثال هست ...

موفق باشي.
يا علي.

سلام
ممنون از توجه تون
ببینید دوست عزیز
من رشته م مکانیکه و آشنایی با برنامه نویسی
در حد مطالعه سر سری کتاب آقای کاهه است
متوجه برنامه میشم تا حدودی
می تونم مدار رو هم بفهمم و تو پروتئوس بکشم و تست کنم
اما نوشتن همین برنامه بقول شما ساده است برای من مشکله
اگه براتون امکان داره برنامه و مدار مربوطه رو به من بدید خیلی ممنون میشم
۰۶-مرداد-۱۳۹۰, ۱۲:۲۶:۴۹
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #4
RE: درخواست کمک برای برنامه نویسی و مدار روبات بازو
سلام.
خواهش مي شه ...

مطمئن باشيد از پسش بر مي ياد ...
شما كتاب رو دانلود كنيد ، هم شكل مدار در پروتوس هست و هم كد هاي كامل و نمونه نوشته شده ...
شما هم بايد يه مقدار با مقادير بازي كنيد تا به نتيجه ي دلخواه اتون برسيد ...
اگر هم بخوام بنويسم ، چون تو اون كتاب موجود هست ، بايد همون ها رو عينا بنويسم ...

شما شروع كن و برنامه رو بنويس و اينجا بذار ، تا جايي كه از دست منه بي ثواد بر مي ياد ، در خدمتم ، براي باقيش هم دوستان هستن ...

بيشتر از 1 ساعت وقتت رو نمي گيره ( البته 20 دقيقه هم خوندنش طول نمي كشه ... )

موفق باشي.
يا علي.

۰۶-مرداد-۱۳۹۰, ۱۵:۰۶:۵۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : rdscience, mhpc2009, رسول, maleknet63, h0x00i
maleknet63 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: تير ۱۳۹۰

تشکرها : 4
( 2 تشکر در 2 ارسال )
ارسال: #5
RE: درخواست کمک برای برنامه نویسی و مدار روبات بازو
بیشتر از اینها طول کشید تا بفهمم چی به چیه با اینکه وقتم کمه
امابهر حال ارزشش رو هم داشت من به کمک شما امیدوارم
در مورد استپر برنامه بصورت زیر بود

$regfile = "M8DEF.DAT" : $crystal = 8000000
Config Portb = Output
Do
Portb = &B00000001 : WAITMS 900
Portb = &B00000010 : WAITMS 900
Portb = &B00000100 : WAITMS 900
Portb = &B00001000 : WAITMS 900
Loop
End

که بنظرم یک حلقه ای است که مرتب تکرار میشه
و بترتیب چهار تا سیم استپر رو یک میکنه
و باعث گردش استپر میشه منتها فقط در یک جهت

اما اونچه ما میخواهیم چرخش در دو جهت هست
یعنی چپ گرد و راست گرد
و هم اینکه این چرخش تحت کنترل باشد
ما دو کلید داشته باشیم
یکی برای راست گرد
یکی برای چپ گرد
و وقتی هم که هیچ یک از کلید ها فشرده نبود موتور روی پله ای که هست قفل شود

اینجا من علارقم اینکه یک پورت را برای چهار سیم استپر باید اختصاص دهم
دو تا پین را هم برای دو کلید چپ گرد و راست گرد اختصاص میدهم

من برنامه نویسی رو یاد ندارم
اونچیزی رو که به نظرم میرسه رو مینویسم
ببینید اصلاحات چی میخواد


$regfile = "M8DEF.DAT" : $crystal = 8000000
Config Portb = Output
pin b1=input
pin b2=input
q1= Portb = &B00000001 : WAITMS 900
if b1=1 go q2/if b2=1 go q4/if b1=0,b2=0 go q1
q2= Portb = &B00000010 : WAITMS 900
if b1=1 go q3/if b2=1 go q1/if b1=0,b2=0 go q2
q3= Portb = &B00000100 : WAITMS 900
if b1=1 go q4/if b2=1 go q2/if b1=0,b2=0 go q3
q4= Portb = &B00001000 : WAITMS 900
if b1=1 go q1/if b2=1 go q3/if b1=0,b2=0 go q4
End

این همون برنامه بالاست
منتها با این تفاوت که دو تا پین به کلید ها اختصاص داره
و بعد از هر خط سه تا شرط قرار میگیره
و برنامه با توجه به اینکه میخواد راست گرد باشه یا چپ گرد بشه
و یا اینکه استپر قفل بشه میره به اون خطی که باید بره
و هر کدوم از چهار تا خط از برنامه ای که مربوط به سیم هاست
یک نام بهش اختصاص دادم که از کیو یک تا چهار هستش

میدونم سرتونو درد اوردم
میدونم این برنامه ای که نوشتم با این نگارش و ویرایش قابل اجرا نیست
بفرمایید که اصلا این برنامه بطور کلی و مفهومی قابل اجراست و بدرد میخوره
لطفا اگه بدرد میخوره اصلاحات نگارشی رو انجم بدید
یا اینکه یادم بدید
ممنون
راستی بنظرم بهترین درایو ممکن هم برای
راه اندازی این استپر موتور l298 باشه

موتور 12 ولته و آمپر هم وقتی فشار میاد روش تا 1 آمپر میکشه
موتور هم دیتا شیت نداره و مشخصات اونو ندارم
فکر میکنم ساده ترین درایو همین l298 باشه

بافر l297 رو هم دارم
اما از مدارت مربوطه اون سر در نمی یارم
بعضی جاها هم دیدم که l298 و l297 دو تا باهم تو یک مدار بسته شدن

بهر حال بنظرتون همون l298 تنهایی کافیه؟
(آخرین ویرایش در این ارسال: ۰۷-مرداد-۱۳۹۰, ۰۱:۱۵:۴۹، توسط maleknet63.)
۰۷-مرداد-۱۳۹۰, ۰۰:۵۷:۳۲
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #6
RE: درخواست کمک برای برنامه نویسی و مدار روبات بازو
خوب ،‌بلآخره شروع كردي ...
لازم نيست دستي ،‌دونه دونه مقدار بدي ... ، الگوريتم رفتاريش رو پيدا كن ...
در برنامه نويسي يه مفهومي به نام شيفت دادن داريم.
موتور پله اي هم اگر بخواد تمام پله كار كنه ،به 4 مرحله نياز داره ،‌همون هايي كه گفتيد.
ما مي يايم با استفاده از for_next يه حلقه براي اين 4 مرحله تشكيل مي ديم ،‌كه مقادير به ترتيب اعمال بشن. ( هر بار متغيير رو shift مي ديم. )
موتور سر هر مقداري كه stop كنه ، براي حركت بعدي بايد از مقدار بعديش در همون جدول 4 مرحله اي شروع كنه ...
به همين دليل متغييرت رو بجايي كه 00001000 انتخاب كني ، 10001000 انتخاب كن.( دليلش رو كم كم مي فهمي. )

خلاصه ي كلام ، يراي چرخش ساعتگرد :
A=&b10001000 و در هر حلقه ، يكبار به سمت راست shift مي ديم.
براي چرخش پادساعتگرد :
A=&b00010001 و در هر حلقه ،‌يكبار به سمت چپ shift مي دهيم.
مقادير كليد هاي ورودي رو هم فقط يكبار در اولين خط حلقه ي for_next چك مي كنيم.
و در نهايت كلش رو در يه do_Loop مي ذاريم. اگر شرط براورده يا نقض شد از حلقه مي پريم بيرون ...

براي نوشتن كد ها هم از tag كد ( code ) استفاده كني بهتره ...
کد:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portc = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Portb.0 = 1 : Portb.1 = 1
Dim A As Byte , C As Byte
   A = &B10001000
Main:
   Do
     If Pinb.0 = 0 Then
       Goto Cw
     End If
     If Pinb.1 = 0 Then
       Goto Ccw
     End If
   Loop

Cw:
   Do
      For C = 1 To 4
  If Pinb.0 = 1 Then
   Goto Main
  End If
      Portc = A
      Rotate A , Right
      Waitms 100
     Next C
   Loop
End

Cww:
.
.
.
.
.
.
.
.

End


خوب حالا يه سري سوال ممكنه برات پيش بياد ، سعي كن خودت خوب روشون فكر كني ...
rotate هم همون shift هست ، با اين تفاوت كه بيتي رو كه مي ندازه بيرون ،‌سمت ديگه اضافش مي كنه ...
دقيقا چيزي كه بش نياز داريم.
اون CWW هم باخودت ...

مشابه چيزيه كه نوشتم ...
البته يه نكته ي ظريفي داره كه بايد بهش دقت كني ... !!
شايد هم لازم باشه كمي برنامه اي رو كه نوشتم دست بزني ...

--------------------------------
در مورد درايور تجربه اي ندارم ، دوستان بايد كمك كنن ، اما ULN2003 و ... هم ببين.

موفق باشي.
يا علي.

(آخرین ویرایش در این ارسال: ۰۷-مرداد-۱۳۹۰, ۰۴:۴۲:۱۰، توسط sharin.)
۰۷-مرداد-۱۳۹۰, ۰۴:۱۲:۰۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : maleknet63, رسول, rdscience
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #7
RE: درخواست کمک برای برنامه نویسی و مدار روبات بازو
راستي يه نكته اي ...

ديروقت بود ، خودمم دقت نكردم ... !!
براي اينكه كليد زده بشه بره به به lable از فرم زير استفاده كني درست تره ... ( دستور debounce )

اون قسمت برنامه رو مي توني به فرم زير اصلاح كني :

کد:
Main:
   Do
     Debounce Pinb.0 , 0 , Cw
     Debounce Pinb.1 , 0 , Cww
   Loop

موفق باشي.
يا علي.

۰۷-مرداد-۱۳۹۰, ۱۰:۰۱:۴۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : رسول, maleknet63, rdscience
maleknet63 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: تير ۱۳۹۰

تشکرها : 4
( 2 تشکر در 2 ارسال )
ارسال: #8
RE: درخواست کمک برای برنامه نویسی و مدار روبات بازو
سلام

اندکی این مثنوی تاخیر شد

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

برنامه ای دیگه نوشتم که الحمدا... جواب گرفتم
اینم برنامه اگه یه وقتی کسی بدرش خورد


$regfile = "m16def.dat"
$crystal = 8000000
Config Portb = Output
Config Debounce = 30
Ddrd.4 = 0 : Portd.4 = 1
Ddrd.5 = 0 : Portd.5 = 1
Ddrd.6 = 0 : Portd.6 = 1
Declare Sub Rith
Declare Sub Leeft
Declare Sub Stope
A:
Do
Debounce Pind.4 , 0 , Rith , Sub
Debounce Pind.5 , 0 , Leeft , Sub

Loop
End
Enable Interrupts
Sub Rith :
Do
Portb = &B00000001 : Waitms 10
Portb = &B00000010 : Waitms 10
Portb = &B00000100 : Waitms 10
Portb = &B00001000 : Waitms 10
Debounce Pind.6 , 0 , Stope , Sub
Loop
End
End Sub

Sub Leeft:
Do
Portb = &B00001000 : Waitms 10
Portb = &B00000100 : Waitms 10
Portb = &B00000010 : Waitms 10
Portb = &B00000001 : Waitms 10
Debounce Pind.6 , 0 , Stope , Sub
Loop
End
End Sub
Sub Stope:
Portb = &B00000000
Goto A
End Sub

من اطلاعات الکترونیکی زیادی ندارم تا
در این زمینه کسی رو به نحو احسن راهنمایی کنم
منتها در مینه مکانیکی و ساخت روبات و محاسبات فنی
اون میتونم در حدی راهنمایی کنم

اینم عکس های از روباتی که ساخته شده
[تصویر:  %D8%AA%D8%B5%D9%88%D9%8A%D8%B1004.jpg]

[تصویر:  %D8%AA%D8%B5%D9%88%D9%8A%D8%B1015.jpg]

[تصویر:  %D8%AA%D8%B5%D9%88%D9%8A%D8%B1016.jpg]
(آخرین ویرایش در این ارسال: ۱۷-شهریور-۱۳۹۰, ۲۲:۴۳:۰۷، توسط maleknet63.)
۱۷-شهریور-۱۳۹۰, ۲۲:۲۴:۴۳
ارسال‌ها
پاسخ
تشکر شده توسط : rdscience
maleknet63 آفلاین
تازه وارد

ارسال‌ها: 6
موضوع‌ها: 1
تاریخ عضویت: تير ۱۳۹۰

تشکرها : 4
( 2 تشکر در 2 ارسال )
ارسال: #9
RE: درخواست کمک برای برنامه نویسی و مدار روبات بازو
من با دستکاری پارامتر های یک برنامه که از اینترنت
گرفته بودم به کمک دوستی که در زمینه الکترونیک
دستی بر آتش از دور داشت بلاخره تونستیم
با یک سری تغییرات به برنامه زیر برسیم

$regfile = "m16def.dat"
$crystal = 8000000
Config Portb = Output 'motor1
Config Timer0 = Timer , Prescale = 1024 '8000000/(1024*156)=50Hz
Config Timer1 = Timer , Prescale = 8


Dim Motor_time(4) As Word

Motor_time(1) = 140
Motor_time(2) = 400
Motor_time(3) = 1500
Motor_time(4) = 2000

Motor1 Alias Portb.0 : Motor2 Alias Portb.1 : Motor3 Alias Portb.2 : Motor4 Alias Portb.3
Stop Timer1

Enable Ovf0
Enable Interrupts

Enable Timer0
On Ovf0 Make_pwm

Timer0 = 178

Do
Loop

End

Make_pwm:

Timer0 = 178
Timer1 = 0
Start Timer1

Set Motor1
Do
Loop Until Timer1 >= Motor_time(1)
Reset Motor1
Timer1 = 0

Set Motor2
Do
Loop Until Timer1 >= Motor_time(2)
Reset Motor2
Timer1 = 0

Set Motor3
Do
Loop Until Timer1 >= Motor_time(3)
Reset Motor3
Timer1 = 0

Set Motor4
Do
Loop Until Timer1 >= Motor_time(4)
Reset Motor4
Return
این برنامه نیاز ما رو برآورده کرده
به این صورت که با هاش سروو موتور رو
میشه با کلید چپگرد و راستگرد کرد

حالا سوالی که دارم در مورد اینکه
ما با تغییر میزان یک بودن هر پریود در موج pwm
این رو که موتور چپ یا راست بگردد رو تعیین می کنیم

میخوام بدونم که آیا با تغییرات موج pwm
میشه سرعت سروو رو تغییر داد؟
و اگه میشه چطوری؟
من میخوام تئوری این قضیه رو بدونم

و دوم اینکه کسی هست با این موتور ها
sg 5010
sg 90
کار کرده باشه و بدونه اینها چطور کنترل میشن
آیا اینکه اینها یک دقت درستی ندارند واقعیت داره؟
من رو که کلافه کردن
۱۷-شهریور-۱۳۹۰, ۲۳:۴۸:۳۲
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  درخواست راهنمایی برای یک دوست GOLDOST 1 0 ۱۵-بهمن-۱۴۰۲, ۰۰:۴۶:۵۱
آخرین ارسال: GOLDOST
  مدار دور موتور خودرو HPower 15 8,332 ۲۷-آبان-۱۳۹۷, ۲۱:۵۱:۱۷
آخرین ارسال: 1نفر
Question [سوال] کمک در برنامه نویسی دور موتور خودرو HPower 6 2,592 ۲۵-آبان-۱۳۹۷, ۲۲:۰۳:۵۷
آخرین ارسال: alimogmov
  [فوری] کمک از دوستان برای یک برنامه ساده questnet 7 3,341 ۱۲-اردیبهشت-۱۳۹۷, ۲۰:۴۳:۱۳
آخرین ارسال: 1نفر
  درخواست کمک برای ساعت با فونت بزرگ sobhan6831 4 2,400 ۲۴-فروردین-۱۳۹۷, ۲۰:۱۹:۱۲
آخرین ارسال: sobhan6831
  درخواست راهنمایی منو سازی برای Atmega32 به زبان بیسیک برویglcd armin111 9 6,171 ۱۶-شهریور-۱۳۹۶, ۱۱:۳۹:۲۵
آخرین ارسال: sky_man847
  راهنمایی برای حل مشکل برنامه در بسکام fedagh 2 3,420 ۱۲-دى-۱۳۹۵, ۱۸:۳۰:۵۹
آخرین ارسال: fedagh
  برنامه نویسی AVR به روش فلوچارتی با نرم افزار FLOWCODE AVR V3 koorosh.k 8 12,641 ۲۴-آذر-۱۳۹۵, ۲۲:۴۶:۰۸
آخرین ارسال: 1نفر
  [سوال] بهترین مدار برای آشکارسازی عبور از صفر hamze_b 9 7,424 ۰۸-مرداد-۱۳۹۵, ۲۲:۴۳:۴۹
آخرین ارسال: alimogmov
  سوالهای برنامه نویسی با کامپایلر BASCOM EBKA 242 157,509 ۱۸-خرداد-۱۳۹۵, ۲۰:۱۸:۲۴
آخرین ارسال: hassan721

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS