ساخت ریموت کنترل برای ربات
دوستان سلام من یک فرستنده و گیرنده برای رباتم ساختم با استفاده از ماژول ماژول HMR فرکانس 433 مگاهرتر که فوق العاده ماژول نویز پذیر ی هم هست و سرعت پایینی هم داره برای اینکه این ماژول به اصلاح به حالت استند بای یا به قول خودمون نویز نگیره باید مدام دیتا بهش بفرستی و نزاری بیکار بمونه چون اگه بی کار بمونه شدید نویز میگیره خوب من هم مجبور شدم همین کار روبکنم یعنی مثلا وقتی کلید جلو رو می زنیم کد 0001 رو میفرسته و در بین اون هم دوباره دیتای 0101 و 1010 رو می فرستم که با این روش بردش بالای 300 متر رسیده اما اگه توی فیلم زیر توجه کنید نمی تونیم توی گیرنده یه مقدار کنترلش سخته و نمیشه اون دیتای خودمون رو استخراج کنیم و مدام باید موتور ها برای حرکت به جلو (مثلا) روشن و خاموش بشن متاسفانه به نظرم این ماژول با این تکنیک به درد همون ریموت کنترل لچ دار میخوره حالا دوستان فیلم زیر رو ببینید من توش توضیح دادم کسی ایده ای چیزی داشت خبر بده این هم برنامه ی بخش فرستنده و گیرنده هست
برنامه ی گیرنده :
کد php:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd = Input
Config Portb = Output
Config Portc = Output
Dim Save As Integer , A As Byte
Rast1 Alias Portb.0
Rast2 Alias Portb.3
Chap1 Alias Portb.4
Chap2 Alias Portb.5
I1 Alias Portb.6
I2 Alias Portb.7
Enablea Alias Portb.1
Enableb Alias Portb.2
Set Portb.1
Set Portb.2
Do
Waitms 400
For A = 1 To 2
Save = Pind
Waitms 20
Reset Rast1
Reset Rast2
Reset Chap1
Reset Chap2
Reset I1
Reset I2
Portc = Save
If Save = &H01 Then
Reset Rast1
Set Rast2
Reset Chap1
Set Chap2
Waitms 100
End If
Waitms 10
If Save = &H02 Then
Set Rast1
Reset Rast2
Set Chap1
Reset Chap2
Waitms 100
End If
If Save = &H03 Then
Reset Rast1
Set Rast2
Reset Chap1
Reset Chap2
Waitms 100
End If
If Save = &H04 Then
Reset Rast1
Reset Rast2
Reset Chap1
Set Chap2
Waitms 100
End If
If Save = &B00000110 Then
Set I1
Waitms 100
End If
If Save = &B00000111 Then
Set I2
Waitms 100
End If
If Save = &B00001000 Then
Reset Rast1
Set Rast2
Reset Chap1
Set Chap2
Waitms 50
Reset Rast1
Set Rast2
Reset Chap1
Reset Chap2
Waitms 50
End If
If Save = &B00001001 Then
Reset Rast1
Set Rast2
Reset Chap1
Set Chap2
Waitms 50
Reset Rast1
Reset Rast2
Reset Chap1
Set Chap2
Waitms 50
End If
If Save = &B00001100 Then
Set Rast1
Reset Rast2
Set Chap1
Reset Chap2
Waitms 50
Set Rast1
Reset Rast2
Reset Chap1
Reset Chap2
Waitms 50
End If
If Save = &B00001101 Then
Set Rast1
Reset Rast2
Set Chap1
Reset Chap2
Waitms 50
Reset Rast1
Reset Rast2
Set Chap1
Reset Chap2
Waitms 50
End If
If Save = &B00001100 Then
Reset Rast1
Set Rast2
Reset Chap1
Set Chap2
Set I1
Waitms 100
End If
Next A
Loop
بخش فرستنده :
کد php:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portc = Input
Config Portb = Output
Dim Save As Integer , A As Integer , Save1 As Integer , C As Byte
Do
Save = Pinc
If Save = &B00000001 Then
Portb = &B11111110
Waitms 500
End If
Save = Pinc
If Save = &B00000010 Then
Portb = &B11111101
Waitms 500
Save = Pinc
End If
If Save = &B00000100 Then
Portb = &B00001100
Waitms 500
End If
Save = Pinc
If Save = &B00001000 Then
Portb = &B00001011
Waitms 500
End If
If Save = &B00010000 Then
Portb = &B00001001
Waitms 500
End If
If Save = &B00100000 Then
Portb = &B00001000
Waitms 500
End If
If Save = &B00000101 Then
Portb = &B00000111
Waitms 500
End If
If Save = &B00001001 Then
Portb = &B00000110
Waitms 500
End If
If Save = &B00000110 Then
Portb = &B00000011
Waitms 500
End If
If Save = &B00001010 Then
Portb = &B00000010
Waitms 500
End If
If Save = &B00010001 Then
Portb = &B00000001
Waitms 500
End If
For C = 1 To 10 datayi ke bayad beferestam ta hang nakone
Portb = &B00001010
Waitms 20
Portb = &B00000101
Waitms 20
Next C
Loop
این هم لینک فیلمش
http://www.mediafire.com/?ejhwkew0ig4tj5t
دوستان سلام من یک فرستنده و گیرنده برای رباتم ساختم با استفاده از ماژول ماژول HMR فرکانس 433 مگاهرتر که فوق العاده ماژول نویز پذیر ی هم هست و سرعت پایینی هم داره برای اینکه این ماژول به اصلاح به حالت استند بای یا به قول خودمون نویز نگیره باید مدام دیتا بهش بفرستی و نزاری بیکار بمونه چون اگه بی کار بمونه شدید نویز میگیره خوب من هم مجبور شدم همین کار روبکنم یعنی مثلا وقتی کلید جلو رو می زنیم کد 0001 رو میفرسته و در بین اون هم دوباره دیتای 0101 و 1010 رو می فرستم که با این روش بردش بالای 300 متر رسیده اما اگه توی فیلم زیر توجه کنید نمی تونیم توی گیرنده یه مقدار کنترلش سخته و نمیشه اون دیتای خودمون رو استخراج کنیم و مدام باید موتور ها برای حرکت به جلو (مثلا) روشن و خاموش بشن متاسفانه به نظرم این ماژول با این تکنیک به درد همون ریموت کنترل لچ دار میخوره حالا دوستان فیلم زیر رو ببینید من توش توضیح دادم کسی ایده ای چیزی داشت خبر بده این هم برنامه ی بخش فرستنده و گیرنده هست
برنامه ی گیرنده :
کد php:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portd = Input
Config Portb = Output
Config Portc = Output
Dim Save As Integer , A As Byte
Rast1 Alias Portb.0
Rast2 Alias Portb.3
Chap1 Alias Portb.4
Chap2 Alias Portb.5
I1 Alias Portb.6
I2 Alias Portb.7
Enablea Alias Portb.1
Enableb Alias Portb.2
Set Portb.1
Set Portb.2
Do
Waitms 400
For A = 1 To 2
Save = Pind
Waitms 20
Reset Rast1
Reset Rast2
Reset Chap1
Reset Chap2
Reset I1
Reset I2
Portc = Save
If Save = &H01 Then
Reset Rast1
Set Rast2
Reset Chap1
Set Chap2
Waitms 100
End If
Waitms 10
If Save = &H02 Then
Set Rast1
Reset Rast2
Set Chap1
Reset Chap2
Waitms 100
End If
If Save = &H03 Then
Reset Rast1
Set Rast2
Reset Chap1
Reset Chap2
Waitms 100
End If
If Save = &H04 Then
Reset Rast1
Reset Rast2
Reset Chap1
Set Chap2
Waitms 100
End If
If Save = &B00000110 Then
Set I1
Waitms 100
End If
If Save = &B00000111 Then
Set I2
Waitms 100
End If
If Save = &B00001000 Then
Reset Rast1
Set Rast2
Reset Chap1
Set Chap2
Waitms 50
Reset Rast1
Set Rast2
Reset Chap1
Reset Chap2
Waitms 50
End If
If Save = &B00001001 Then
Reset Rast1
Set Rast2
Reset Chap1
Set Chap2
Waitms 50
Reset Rast1
Reset Rast2
Reset Chap1
Set Chap2
Waitms 50
End If
If Save = &B00001100 Then
Set Rast1
Reset Rast2
Set Chap1
Reset Chap2
Waitms 50
Set Rast1
Reset Rast2
Reset Chap1
Reset Chap2
Waitms 50
End If
If Save = &B00001101 Then
Set Rast1
Reset Rast2
Set Chap1
Reset Chap2
Waitms 50
Reset Rast1
Reset Rast2
Set Chap1
Reset Chap2
Waitms 50
End If
If Save = &B00001100 Then
Reset Rast1
Set Rast2
Reset Chap1
Set Chap2
Set I1
Waitms 100
End If
Next A
Loop
بخش فرستنده :
کد php:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portc = Input
Config Portb = Output
Dim Save As Integer , A As Integer , Save1 As Integer , C As Byte
Do
Save = Pinc
If Save = &B00000001 Then
Portb = &B11111110
Waitms 500
End If
Save = Pinc
If Save = &B00000010 Then
Portb = &B11111101
Waitms 500
Save = Pinc
End If
If Save = &B00000100 Then
Portb = &B00001100
Waitms 500
End If
Save = Pinc
If Save = &B00001000 Then
Portb = &B00001011
Waitms 500
End If
If Save = &B00010000 Then
Portb = &B00001001
Waitms 500
End If
If Save = &B00100000 Then
Portb = &B00001000
Waitms 500
End If
If Save = &B00000101 Then
Portb = &B00000111
Waitms 500
End If
If Save = &B00001001 Then
Portb = &B00000110
Waitms 500
End If
If Save = &B00000110 Then
Portb = &B00000011
Waitms 500
End If
If Save = &B00001010 Then
Portb = &B00000010
Waitms 500
End If
If Save = &B00010001 Then
Portb = &B00000001
Waitms 500
End If
For C = 1 To 10 datayi ke bayad beferestam ta hang nakone
Portb = &B00001010
Waitms 20
Portb = &B00000101
Waitms 20
Next C
Loop
این هم لینک فیلمش
http://www.mediafire.com/?ejhwkew0ig4tj5t
دیدگاه