ايران ويج

نسخه‌ی کامل: کمک در برنامه نویسی روبات مسیر یاب
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان عزیز
من يه روبات مسير ياب درست کردم که توي طراحيش از ميکروو ATtiny2313 استفاده کردم و 7 تا سنسور هم داره سنسور ها از نوع فرستنده و گیرنده هستند در ضمن سنسور ها اول رفتن داخل آپ امپ lm324 بعد داخل میکرو.
ولي الان توي برنامه نويسيش موندم . البته خودم يه برنامه با bascom نوشتم ولي چون تسلط کافي ندارم نتونستم تمومش کنم.
برنامه خودم اینه :
کد php:
$regfile "attiny2313.dat"
$crystal 8000000

Config Timer1 
Pwm Pwm 10 Compare A Pwm Clear Down Compare B Pwm Clear Down Prescale 64

Config Portd 
Input
Config Portb 
Output

 
'motor rast
 Pwm1a = 945
 Portb.0 = 1
 Portb.1 = 0

 '
motor chap
 Pwm1b 
1023
 Portb.6 
0
 Portb.7 
1

 
Do
 
Gosub While
 
Loop

 End

'mostaghim
 Case&B0001000:
 Pwm1a = 945
 Pwm1b = 1023

 Portb.0 = 1
 Portb.7 = 1

 '
enheraf rast
 
Case&B0010000:
 
Pwm1a 642

'enheraf chap
 Case&B0000100:
 Pwm1b = 720

 '
rast 90-120
 
Case&B0000010:
 
Gosub Rast_stop
 
While Pind.3 0
 Portb.0 
0
 Wend

 Portb.1 
1
 Waitms 20
 Portb.1 
0
 Portb.0 
1

Rast_stop
:

 
Portb.0 0
 Portb.1 
1
 Waitms 20
 Portb.0 
0
 Portb.1 
0

Return

 
'chap 90-120
Case&B0100000:
 Gosub Chap_stop
 While Pind.3 = 0
 Portb.7 = 0
 Wend

 Portb.6 = 1
 Waitms 20
 Portb.6 = 0
 Portb.7 = 1

Chap_stop:
 Portb.6 = 1
 Portb.6 = 0

 Waitms 20

 Portb.6 = 0
 Portb.7 = 0

Return

 '
rast 60_1
Case&B0001111:
 
Gosub Rast_stop
 
While Pind.5 0
 Portb.0 
0
 Wend

 Portb.1 
1
 Waitms 20
 Portb.0 
1
 Portb.1 
0

 
'rast 60_2
Case&B0000001:
 Gosub Rast_stop
 While Pind.5 = 0
 Portb.0 = 0
 Wend

 Portb.1 = 1
 Waitms 20
 Portb.0 = 1
 Portb.1 = 0

 '
black detect_1
Case&B1110111:
 
Gosub Black

 
'black detect_2
Case&B1111111:
 Gosub Black

Case Else
 Pwm1a = 945
 Pwm1b = 1023

 Portb.0 = 1
 Portb.7 = 1
 End Sub
 End Select

چيدمان سنسور هاش هم به اين شکله:


                           s3
                   s4             s2
           s5                           s1
    s6                                          s0 
اگه یکی از اساتید بتونن توی برنامه نویسیش راهنماییم کنن ممنون میشم
یه سوالم داشتم : اگه یه برنامه برای atmega 32 داشته باشم و جای پورتاشو عوض کنم میتونم اون برنامرو واسه attiny 2313 استفاده کنم؟
سلام.
به ایران ویج خوش اومدی.Heart
این یه نمونه برنامه مسیر یاب ، ببین میتوه کمکت کنه.
کد:
$regfile = "m64def.dat"
$crystal = 8000000

Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5

Cls
Lcd "h.unique"
Waitms 500
Cls

Config Porta = Input
Config Portc = Input

Config Pinb.4 = Output
Config Pinb.7 = Output

Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8
M1 Alias Portb.4
M2 Alias Portb.7

Do



If Pina.7 = 0 Then
Pwm1a = 1000
Pwm1b = 1000
Reset M1
Reset M2
Elseif Pinc.7 = 0 Then
Pwm1a = 1000
Pwm1b = 1000
Reset M1
Reset M2
Elseif Pina.6 = 0 Then
Pwm1a = 800
Pwm1b = 1000
Reset M1
Reset M2
Elseif Pinc.6 = 0 Then
Pwm1a = 1000
Pwm1b = 800
Reset M1
Reset M2
Elseif Pina.5 = 0 Then
Pwm1a = 600
Pwm1b = 1000
Reset M1
Reset M2
Elseif Pinc.5 = 0 Then
Pwm1a = 1000
Pwm1b = 600
Reset M1
Reset M2
Elseif Pina.4 = 0 Then
Pwm1a = 400
Pwm1b = 1000
Reset M1
Reset M2
Elseif Pinc.4 = 0 Then
Pwm1a = 1000
Pwm1b = 400
Reset M1
Reset M2
Elseif Pina.3 = 0 Then
Pwm1a = 0
Pwm1b = 1000
Reset M1
Reset M2
Elseif Pinc.3 = 0 Then
Pwm1a = 1000
Pwm1b = 0
Reset M1
Reset M2

Elseif Pina.2 = 0 Then
Pwm1a = 500
Pwm1b = 1000
Set M1
Reset M2
Elseif Pinc.2 = 0 Then
Pwm1a = 1000
Pwm1b = 500
Reset M1
Set M2
Elseif Pina.1 = 0 Then
Pwm1a = 300
Pwm1b = 1000
Set M1
Reset M2
Elseif Pinc.1 = 0 Then
Pwm1a = 1000
Pwm1b = 300
Reset M1
Set M2
Elseif Pina.0 = 0 Then
Pwm1a = 0
Pwm1b = 1000
Set M1
Reset M2
Elseif Pinc.0 = 0 Then
Pwm1a = 1000
Pwm1b = 0
Reset M1
Set M2
End If

Loop

End 'end program

نقل قول: اگه یه برنامه برای atmega 32 داشته باشم و جای پورتاشو عوض کنم میتونم اون برنامرو واسه attiny 2313 استفاده کنم؟
بله مشکلی نداره.
سلام ببخشید میشه به من کمک کنین .برای مسیری به شکل زیر به زبانcو بسکام چطوری باید دستور بدم و برنامشو بنویسم.خیلی ممنون
http://uupload.ir/files/xlb_untitled.png