Strona Główna
FAQFAQ  SzukajSzukaj  UżytkownicyUżytkownicy RegulaminRegulamin  GrupyGrupy
RejestracjaRejestracja  ZalogujZaloguj




H-bridge!

Przyszłość jest w naszych rękach...
...bo przyszłość to robotyka.





Poprzedni temat «» Następny temat
Funkcja losowa w C
Autor Wiadomość
devonport 


Posty: 10
Skąd: sky
Wysłany: 20 Paź 08 05:16   Funkcja losowa w C

Chcę napisać program który by po dojechaniu robota do przeszkody skręcał losow w lewo bądz w prawo, poprostu był nieprzewidywalny i losowy to szkielet programu w RobotC czyli faktycznie C

Kod:
for(i=0; ;i++)                                    //petla nieskączona
{
    ??????                                    //brakuje funkcji losowej
    ??????                                        //brakuje przełącznika
   while(SensorValue[sonarSensors] > 25)   
   {
      motor[motorA] = 55;                 //motor A jedzie do przodu
      motor[motorB] = 55;                 //motor B jedzie do przodu   
 }

motor[motorA] = 50;           //sensor<25 cm wykonuje sie instrukcja  skret
motor[motorB] = -50;        //sensor<25 cm wykonuje sie instrukcja  skret
  wait1Msec(600);


Jak zastosować funkcje losową dla alternatywnej instrukcji?

Mam to zrobione w NXT-G tak:
Pętla for
funkcja losowa random
switch z dwoma altyernatywnymi wyborami
zamkniecie pętli for.
Działa perfekcyjnie
Czekam na wszelkie sugestie ;-)
Ostatnio zmieniony przez devonport 20 Paź 08 06:38, w całości zmieniany 6 razy  
Postaw piwo autorowi tego posta
 
 
abxyz 
Expert programowanie


Pomógł: 18 razy
Posty: 166
Otrzymał 28 piw(a)
Skąd: zza winkla
Wysłany: 20 Paź 08 10:13   

Nie mam zielonego pojęcia o RobotC, dopiero dziś się dowiedziałem, że coś takiego wymyślono :-)
Przerobiłem ten listing, tak z nudów, żeby "nabijać posty" :mrgreen:

może będzie działać
powodzenia !!!

Kod:

for(;;)                                    //pętla nieskończona
{
  if(SensorValue[sonarSensors] > 25)   
  {
    motor[motorA] = 55;                 //motor A jedzie do przodu
    motor[motorB] = 55;                 //motor B jedzie do przodu   
  }else
  {
    if(random(100) > 50 )
    {
      motor[motorA] = 50;           //sensor<25 cm wykonuje się instrukcja  skręt
      motor[motorB] = -50;       
      wait1Msec(600);
    }else
    {
      motor[motorA] = -50;           //sensor<25 cm wykonuje się instrukcja  skręt
      motor[motorB] = 50;       
      wait1Msec(600)
    }
 }

}
_________________
Nie powie ci nawet wiedźma Pleple, czego się dowiesz wprost z Google_
Ostatnio zmieniony przez abxyz 20 Paź 08 10:20, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 
 
Wyświetl szczegóły
devonport 


Posty: 10
Skąd: sky
Wysłany: 21 Paź 08 05:23   

oto cały program w robotC
Kod:
#pragma config(Sensor, S1,     sonarSensors,        sensorSONAR)
//*!!Code automatically generated by 'ROBOTC' configuration wizard               !!*//

task main()
{
for(;;)                                    //pętla nieskończona
{
  if(SensorValue[sonarSensors] > 25)
  {
    motor[motorA] = 55;                 //motor A jedzie do przodu
    motor[motorB] = 55;                 //motor B jedzie do przodu
  }else
  {
    if(random(100) > 50 )
    {
      motor[motorA] = 50;           //sensor<25 cm wykonuje się instrukcja  skręt
      motor[motorB] = -50;
      wait1Msec(600);
    }else
    {
      motor[motorA] = -50;           //sensor<25 cm wykonuje się instrukcja  skręt
      motor[motorB] = 50;
      wait1Msec(600);
    }
 }
}}

Działa doskonale robocik jezdzi to w lewo to w prawo, a cos innego niż fifty/fifty
Kod:
(random(100) > 20

też jest ok
Własnie o tą funkcje random mi chodziło ale proste tylko jak się niewie to głowa boli :shock: [/list]
Postaw piwo autorowi tego posta
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  


website uptime

Powered by phpBB modified by Przemo © 2003 phpBB Group
REKLAMAPorównywarka cen elektronikiLove and Lighttaniec z gwiazdamitaniec nowoczesny Warszawakredyt przez internetneroBearShare