Я начал свой новый проэкт по роботам.Я два месяца не прикасался к rover1(такое название у моего самого крутого лего(да да лего но программа у него не детская
)робота)
Он нехотя завёл двигатели и тупо попёри ударился в стенку потом развернулся и отключился. робота две программы стёрлась нафиг сейчас загрузил ему новый MS_DOS и вроде нормально.
Так суть прокта:робот ориентироваясь по приборам
должен найти точку с определённым световым и инфракрасным излучением.Когда он её найдёт он должен будет включить бур и якобы пробурить скважину.
Думаете это так просто хаха вы только взгляните на сырец программы и всё поймёте:
code:
program test {
#include <RCX2.h>
#include <RCX2MLT.h>
#include <RCX2Sounds.h>
#include <RCX2Def.h>
var Wau = 0
sensor touch1 on 1
touch1 is switch as boolean
event tPress_touch1EventPress when touch1.pressed
event greater_messageEventHigh when message > (counter1 / 10)
sensor light2 on 2
light2 is light as percent
sensor light3 on 3
light3 is light as percent
event lBrite_light3EventHigh when light3.high
main {
ext InterfaceType "kFreestyle"
rcx_ClearTimers
bbs_GlobalReset([A B C])
start TouchWatcher0
start IRWatcher1
start LightWatcher2
rcx_Priority( 8)
trigger tPress_touch1EventPress
rcx_ClearIRMessage
trigger greater_messageEventHigh
trigger lBrite_light3EventHigh
try {
forever {
repeat 3 {
bb_Forward(A, C, 32770)
bb_Forward(A, C, 32770)
bb_Forward(A, C, 32770)
bb_Forward(A, C, 32770)
bb_Forward(A, C, 32770)
bb_Forward(A, C, 32770)
}
}
} retry on fail
}
watcher TouchWatcher0 monitor tPress_touch1EventPress
{
rcx_Priority( 3 )
try {
bb_Backward(A, C, 200)
bb_SpinLeft(A, C, 100)
} restart on fail
} restart on event
watcher IRWatcher1 monitor greater_messageEventHigh
{
rcx_Priority( 6 )
try {
if touch1 is closed {
bb_PointToDark(A, C, light2 , 15,40)
bb_Backward(A, C, 100)
bb_TurnRight(A, C, 100)
bb_SpinLeft(A, C, 100)
bb_Forward(A, C, 100)
}
else
{
bb_PointToLight(A, C, light2 , 15,40)
if touch1 is closed {
if touch1 is closed {
bb_ZigZag(A, C, 1, 50 )
}
else
{
bb_Shake(A, C, 1, 50 )
}
}
else
{
if touch1 is closed {
bb_RandomMove(A, C, 32770 )
}
else
{
float [ A B C ]
}
on [ A B C ]
}
}
display Wau:1
clear message
} restart on fail
} restart on event
watcher LightWatcher2 monitor lBrite_light3EventHigh
{
rcx_Priority( 4 )
try {
sound 1
sound 1
sound 1
if touch1 is closed {
if touch1 is closed {
if touch1 is closed {
bb_PointToDark(A, C, light2 , 15,40)
bb_TurnLeft(A, C, 100)
bb_Forward(A, C, 100)
bb_TurnRight(A, C, 100)
}
else
{
if touch1 is closed {
bb_PointToLight(A, C, light2 , 15,40)
bb_Dance(A, C, 1, 50 )
}
else
{
bb_SpinRight(A, C, 300)
bb_SpinLeft(A, C, 100)
bb_TurnRight(A, C, 100)
bb_TurnLeft(A, C, 300)
}
}
}
else
{
if touch1 is closed {
if touch1 is closed {
bb_RandomMove(A, C, 4000 )
}
else
{
bb_Forward(A, C, 100)
bb_ZigZag(A, C, 10, 100 )
}
}
else
{
bb_Dance(A, C, 10, 100 )
bb_Shake(A, C, 10, 100 )
}
}
}
else
{
if touch1 is closed {
if touch1 is closed {
bb_Forward(A, C, 100)
bb_TurnRight(A, C, 100)
bb_Backward(A, C, 100)
}
else
{
bb_SpinLeft(A, C, 400)
bb_SpinRight(A, C, 100)
}
bb_SpinLeft(A, C, 400)
}
else
{
if touch1 is closed {
bb_NoonBeam(17)
}
else
{
float [ A B C ]
}
on [ A B C ]
}
}
if touch1 is closed {
}
else
{
}
} restart on fail
} restart on event