با سلام خدمت بربچه های ایران ویچ
راستش من برا مسابقات ثبت نام کردم چند تا مشکل دارم.
چیدمان سنسورها مطابق شکل ضمیمه شده میباشد و از آی سی L298 استفاده میکنم
1-حالا میخواستم برنامه نویسیش را بسکام انجام بدم راستش یه چیزایی نوشتم اما ربات گیج میزنه سرپیچ های 90 درجه و زمین سفید به مشکی مشکل داره میخواستم راهنمایی کنید ببینم چیکار کنم
2-من خروجی سنسورها را به آپ امپ lm324n دادم و بعد از آن پتانسیوتر 504 قرار دادم حالا مشکلی که دارم باید برای هر زمینی پتانسیومتر ها را تنظیم کنم می خواستم ببینم باید چیکار کرد که نخواد برا هر زمینی پتانسیومتر ها را تنظیم کنم.
2 : استاندارد ها در هم جا یکیه .. وشما باید از استاندارد ها پیروی کنید تا احتیاج به این کارنباشه(البته این ی مورد همیشه هست ولی با رعایت استاندارد ها کمتر میشه)
1.برنامتو بده شاید تونستیم کاری کنیم
ممنون از شما
یعنی اگه من پتانسیومتر ها را برای زمینی که خودم تنظیم کردم رو ست کنم دیگه برا زمینای تو مسابقه مشکلی نداره.
اینم از برنامه فقط یکم سریع اگه ممکن هست.
کد php:
$regfile = "m32def.dat"
$crystal = 12000000
Config Porta = Input 'PORT A IS Input == PinA
Config Portb = Output
Declare Sub Forward()
Declare Sub Move_left()
Declare Sub Move_right()
Declare Sub Back()
Dim S0 As Bit
Dim S1 As Bit
Dim S2 As Bit
Dim S3 As Bit
Dim S4 As Bit
Dim S5 As Bit
Dim S6 As Bit
Dim S7 As Bit
S0 Alias Pina.0 'sensor0
S1 Alias Pina.1 'sensor1
S2 Alias Pina.2
S3 Alias Pina.3
S4 Alias Pina.4
S5 Alias Pina.5
S6 Alias Pina.6
S7 Alias Pina.7
Do
New_period:
If S0 = 0 And S7 = 0 Then Goto White_line
While S3 = 0 And S4 = 0
Call Forward()
Wend
While S3 = 0 And S4 = 1
Call Forward()
Wend
While S0 = 1 And S1 = 1 And S2 = 1 And S3 = 0 And S4 = 1 And S5 = 1 And S6 = 1 And S7 = 1
Call Forward()
Wend
While S0 = 1 And S1 = 1 And S2 = 1 And S3 = 1 And S4 = 0 And S5 = 1 And S6 = 1 And S7 = 1
Call Forward()
Wend
If S0 = 1 And S1 = 1 And S2 = 1 And S3 = 1 Then Goto Right_motor
If S5 = 1 And S6 = 1 And S7 = 1 And S3 = 1 Then Goto Left_motor
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Left_motor:
While S0 = 0 And S1 = 1 And S2 = 1 And S4 = 0
Call Move_left()
Wend
While S0 = 1 And S1 = 0 And S2 = 1 And S4 = 0
Call Move_left()
Wend
While S0 = 1 And S1 = 1 And S2 = 0 And S4 = 0
Call Move_left()
Wend
While S0 = 1 And S1 = 0 And S2 = 0 And S4 = 0
Call Move_left()
Wend
While S0 = 0 And S1 = 1 And S2 = 0 And S4 = 0
Call Move_left()
Wend
While S0 = 0 And S1 = 0 And S2 = 1 And S4 = 0
Portb.7 = 0
Portb.6 = 1
Portb.5 = 0
Portb.4 = 1
Portb.3 = 1
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Wend
While S0 = 0 And S1 = 0 And S2 = 0 And S4 = 0
Call Move_left()
Wend
While S0 = 0 And S1 = 1 And S2 = 1 And S4 = 1
Call Move_left()
Wend
'''''
While S0 = 1 And S1 = 0 And S2 = 1 And S4 = 1
Call Move_left()
Wend
While S0 = 1 And S1 = 1 And S2 = 0 And S4 = 1
Call Move_left()
Wend
While S0 = 1 And S1 = 0 And S2 = 0 And S4 = 1
Call Move_left()
Wend
While S0 = 0 And S1 = 1 And S2 = 0 And S4 = 1
Call Move_left()
Wend
While S0 = 0 And S1 = 0 And S2 = 1 And S4 = 1
Call Move_left()
Wend
While S0 = 0 And S1 = 0 And S2 = 0 And S4 = 1
Call Move_left()
Wend
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Right_motor:
While S4 = 0 And S5 = 1 And S6 = 1 And S7 = 0
Call Move_right()
Wend
While S4 = 0 And S5 = 1 And S6 = 0 And S7 = 1
Call Move_right()
Wend
While S4 = 0 And S5 = 0 And S6 = 1 And S7 = 1
Call Move_right()
Wend
While S4 = 0 And S5 = 0 And S6 = 0 And S7 = 1
Call Move_right()
Wend
While S4 = 0 And S5 = 0 And S6 = 1 And S7 = 0
Call Move_right()
Wend
While S4 = 0 And S5 = 1 And S6 = 0 And S7 = 0
Portb.7 = 1
Portb.6 = 0
Portb.5 = 1
Portb.4 = 0
Portb.3 = 0
Portb.2 = 1
Portb.1 = 1
Portb.0 = 1
Wend
While S4 = 0 And S5 = 0 And S6 = 0 And S7 = 0
Call Move_right()
Wend
'''''''''''''''''''''''''''
While S4 = 1 And S5 = 1 And S6 = 1 And S7 = 0
Call Move_right()
Wend
While S4 = 1 And S5 = 1 And S6 = 0 And S7 = 1
Call Move_right()
Wend
While S4 = 1 And S5 = 0 And S6 = 1 And S7 = 1
Call Move_right()
Wend
While S4 = 1 And S5 = 0 And S6 = 0 And S7 = 1
Call Move_right()
Wend
While S4 = 1 And S5 = 0 And S6 = 1 And S7 = 0
Call Move_right()
Wend
While S4 = 1 And S5 = 1 And S6 = 0 And S7 = 0
Call Move_right()
Wend
While S4 = 1 And S5 = 0 And S6 = 0 And S7 = 0
Call Move_right()
Wend
Loop
White_line:
Do
If S0 = 1 And S7 = 1 Then Goto New_period
While S3 = 1
Portb.7 = 1
Portb.6 = 1
Portb.5 = 1
Portb.4 = 0
Portb.3 = 1
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Wend
While S3 = 1 And S4 = 1
Portb.7 = 1
Portb.6 = 1
Portb.5 = 1
Portb.4 = 0
Portb.3 = 1
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Wend
If S0 = 0 And S1 = 0 And S2 = 0 And S5 = 0 And S6 = 0 And S7 = 0 Then
While S3 = 0 And S4 = 0
Call Back()
Wend
Portb.7 = 1
Portb.6 = 1
Portb.5 = 1
Portb.4 = 0
Portb.3 = 1
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Goto New_period
End If
While S5 = 0 And S6 = 0 And S7 = 0
While S3 = 0
Portb.7 = 1
Portb.6 = 0
Portb.5 = 0
Portb.4 = 0
Portb.3 = 1
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Wend
Wend
While S0 = 0 And S1 = 0 And S2 = 0
While S3 = 0
Portb.7 = 1
Portb.6 = 0
Portb.5 = 1
Portb.4 = 0
Portb.3 = 0
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Wend
Wend
Loop
Sub Forward()
While S3 = 0
Portb.7 = 1
Portb.6 = 1
Portb.5 = 1
Portb.4 = 0
Portb.3 = 1
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Wend
End Sub
Sub Back()
Portb.7 = 0
Portb.6 = 0
Portb.5 = 0
Portb.4 = 1
Portb.3 = 0
Portb.2 = 1
Portb.1 = 1
Portb.0 = 1
End Sub
Sub Move_left()
While S3 = 1
Portb.7 = 0
Portb.6 = 1
Portb.5 = 0
Portb.4 = 0
Portb.3 = 1
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Wend
End Sub
Sub Move_right()
While S3 = 1
Portb.7 = 1
Portb.6 = 0
Portb.5 = 1
Portb.4 = 0
Portb.3 = 0
Portb.2 = 0
Portb.1 = 1
Portb.0 = 1
Wend
End Sub
در مورد اول بله همین طور باید ببینی جایی که مسابقات برگزار می کنه استانداردی تعریف کرده یا نه اگه آره با اون استاندارد ها در غیر این سورد از استنادارد های اصلی استفاده می کنن ....
قدیم آقا علی تو یه پروژه این کارو کرده بود
البته مال اون پتانسیومتر نداشت
با adc
دو تا دکمه تعریف کرده بود
رباتو کامل میزاشت رو قسمت سفید زمین بعد یکی از دکمه ها رو میزد و با adcخروجی سنسور ها رو میخوند و تو متغیر ذخیره میکرد
بعد میزاشت رو یه قسمت کاملا سیاه اون یکی کلیدو میزد دوباره خروجی ها رو میخوند و ذخیره میکرد
اینجوری با دو تا دکمه به راحتی میتونست رباتو تنظیم کنه
(۱۱-اسفند-۱۳۸۹, ۱۶:۲۲:۰۵)WhiteNoise نوشته است: [ -> ]قدیم آقا علی تو یه پروژه این کارو کرده بود
البته مال اون پتانسیومتر نداشت
با adc
دو تا دکمه تعریف کرده بود
رباتو کامل میزاشت رو قسمت سفید زمین بعد یکی از دکمه ها رو میزد و با adcخروجی سنسور ها رو میخوند و تو متغیر ذخیره میکرد
بعد میزاشت رو یه قسمت کاملا سیاه اون یکی کلیدو میزد دوباره خروجی ها رو میخوند و ذخیره میکرد
اینجوری با دو تا دکمه به راحتی میتونست رباتو تنظیم کنه
ممنون دوست عزیز. میشه بیشتر در این مورد بیشتر توضیح بدی اگه بخواهیم برا هر زمینی (بسته به نور تابیده شده) تنظیم کرد خیلی دردسر داره.
اگه روش دیگری هم سراغ داری دریغ نکن چهارشنبه هفته دیگه مسابقه هستش.
(۱۱-اسفند-۱۳۸۹, ۱۵:۱۵:۴۳)h0x00i نوشته است: [ -> ]در مورد اول بله همین طور باید ببینی جایی که مسابقات برگزار می کنه استانداردی تعریف کرده یا نه اگه آره با اون استاندارد ها در غیر این سورد از استنادارد های اصلی استفاده می کنن ....
آره دوست عزیز قوانین مسابقه اعلام شده
برا برنامه نظری نداری
هنوز وقت نکردم نگاه کنم ...
(۱۱-اسفند-۱۳۸۹, ۲۲:۵۵:۴۳)h0x00i نوشته است: [ -> ]هنوز وقت نکردم نگاه کنم ...
ممنون
تو رو خدا زودتر خیلی وقت نداریم