[MOC] Mars Rover

Mindstorms, WeDo, Lego Digital Desinger, Stud.io

Moderatorzy: Mod Team, Mod Team

Autor
Wiadomość
Awatar użytkownika
Neo
Posty: 293
Rejestracja: 2011-04-29, 21:24
Lokalizacja: Kraków/Rzeszów/Starachowice

[MOC] Mars Rover

#1 Post autor: Neo »

Od kiedy zacząłem parać się Mindstorms'em nachodziło mnie na zobienie marsjańskiego łazika. I stało się. Po rozłożeniu wyścigówki 42000 i dokupieniu paru elementów zabrałem się do składania.
Oto co powstało:

Wymiary:
długość - 50s
szerokość - 37s
wysokość - 34s

Napęd:
jazda - 2 serwomotory Mindstorms
skręt - 1 silnik pf medium

Sterowanie:

RobotC z PADa

Obrazek

I do tego filmik:

[youtube]http://www.youtube.com/watch?v=COI1Eg04Qnw[/youtube]

Awatar użytkownika
blizzard
Posty: 820
Rejestracja: 2011-10-04, 15:48
Lokalizacja: Poznań
brickshelf: blizzard00453005_0000002

 

#2 Post autor: blizzard »

Zawieszenie jest mniamuśne, uwielbiam dziwne i zaskakujące rozwiązania ;)

Awatar użytkownika
legosamigos
VIP
Posty: 3941
Rejestracja: 2012-04-11, 07:01
Lokalizacja: Gdańsk
brickshelf: legosamigos
Kontakt:

 

#3 Post autor: legosamigos »

Tak szczerze mówiąc, znając możliwości mindstormsa, to trochę mało funkcji jest wykorzystane w tym łaziku. Myślę, że to samo można by zrobić zwykłymi PF
Moje życie jest jak klocki Lego, nigdy nie wiem, co zbuduję

Awatar użytkownika
Neo
Posty: 293
Rejestracja: 2011-04-29, 21:24
Lokalizacja: Kraków/Rzeszów/Starachowice

#4 Post autor: Neo »

legosamigos pisze:Tak szczerze mówiąc, znając możliwości mindstormsa, to trochę mało funkcji jest wykorzystane w tym łaziku. Myślę, że to samo można by zrobić zwykłymi PF
Tak, to prawda można by napędzać taki łazik samymi PFami, ba ... zapinając PF XL wewnątrz byłoby więcej miejsca niż przy serwo NXT, ale ...
ten łazik w przeciwieństwie do bezmindstormsowego może jeździć autonomicznie (program poruszający go po pomieszczeniu z użyciem sensora odległości jest banalny zarówno w NXT-G jak i RobotC). Możliwości dodania kolejnych funkcji wiązałaby się z zapięciem multipleksera serwomotorów (którego nie posiadam, a druga kostka zwyczajnie nie zmieści się do środka), które mogłyby np. sterować ramieniem, wiercić wiertłem, czy obracać skanerem.
Zapomniałem dodać, że światłami steruje 8 bitowy expander, który za pomocą programu może nie tylko świecić ciągle, ale zapalać i gasić 8 LED w dowolnych sekwencjach.

Awatar użytkownika
legosamigos
VIP
Posty: 3941
Rejestracja: 2012-04-11, 07:01
Lokalizacja: Gdańsk
brickshelf: legosamigos
Kontakt:

 

#5 Post autor: legosamigos »

Neo pisze:
legosamigos pisze:Tak szczerze mówiąc, znając możliwości mindstormsa, to trochę mało funkcji jest wykorzystane w tym łaziku. Myślę, że to samo można by zrobić zwykłymi PF
Tak, to prawda można by napędzać taki łazik samymi PFami, ba ... zapinając PF XL wewnątrz byłoby więcej miejsca niż przy serwo NXT, ale ...
ten łazik w przeciwieństwie do bezmindstormsowego może jeździć autonomicznie (program poruszający go po pomieszczeniu z użyciem sensora odległości jest banalny zarówno w NXT-G jak i RobotC). Możliwości dodania kolejnych funkcji wiązałaby się z zapięciem multipleksera serwomotorów (którego nie posiadam, a druga kostka zwyczajnie nie zmieści się do środka), które mogłyby np. sterować ramieniem, wiercić wiertłem, czy obracać skanerem.
Zapomniałem dodać, że światłami steruje 8 bitowy expander, który za pomocą programu może nie tylko świecić ciągle, ale zapalać i gasić 8 LED w dowolnych sekwencjach.
Przyznaję się, że zupełnie nie znam się na mindstormsie, jednak wiem, że daje naprawdę ogromne możliwości. Ze zwykłymi PF nie ma co prawda sensora odległości, ale pilotem IR też możesz zatrzymać lub uruchomić pojazd :)
Moje życie jest jak klocki Lego, nigdy nie wiem, co zbuduję

babzos
Posty: 31
Rejestracja: 2011-01-23, 22:36
Lokalizacja: Poznań

#6 Post autor: babzos »

Tak, zawieszenie miodzio. Dzięki tym patriotycznym kolorom można miec nadzieję, że przed nami kosmos stoi otworem ;)
Ile zajęło Ci napisanie programu do niego?

Awatar użytkownika
Neo
Posty: 293
Rejestracja: 2011-04-29, 21:24
Lokalizacja: Kraków/Rzeszów/Starachowice

#7 Post autor: Neo »

Program nie jest bardzo skomplikowany, więc to parę godzin pisania plus kolejne parę testowania i poprawek.
Składa się z 3 podprogramów: jazda, skręcanie kół i włączanie LED
Ciekawostką jest ustawienie progu minimalnego wychylenia joysticka PADa, do którego nic się nie dzieje. Zapobiega to "wariowaniu" serwomotorów.
Drugą ciekawostką jest steowanie jednym joistickiem z użyciem zmiennej, która po skręcie kół zmienia kierunek obotu kół prawej i lewej strony ze zgodnego na przeciwny.

Poniżej cały progam:
#pragma config(Motor, motorA, , tmotorNormal, openLoop)
//*!!Code automatically generated by 'ROBOTC' configuration wizard !!*//

#include "JoystickDriver.c"
const tSensors port = S1; //wybor portu S1
const byte kI2CAddress = 0x040; //Wybor adresu
byte i2cconfg[3];
const short Size = 0;
const short Address = 1;
const short led = 2;
int threshold = 20;
int n = -1;

task swiatlo()
{
while (true)
{
SensorType[port] = sensorI2CCustom;
i2cconfg[Size] = 2;
i2cconfg[Address] = kI2CAddress;
i2cconfg[led] = 0; //wartosci pomiedzy 0-255
sendI2CMsg(port, i2cconfg[0] ,0);
i2cconfg[Address] = kI2CAddress;
sendI2CMsg(port, i2cconfg[0], 1);
}
}

task jazda()
{
while(true) // Start petli:
{
getJoystickSettings(joystick);
if(abs(joystick.joy1_y2) > threshold) // Jezeli prawy joystick przesuwamy powyzeli minimum progu:
{
motor[motorB] = ((joystick.joy1_y2)*n*(-1)); // Serwomotor B pracuje
motor[motorC] = (joystick.joy1_y2); // Serwomotor C pracuje

}
else // W przypadku nie osiagniecia progu:
{
motor[motorB] = 0; // Serwomotor B jest w stanie STOP.
motor[motorC] = 0; // Serwomotor C jest w stanie STOP.
}
}
}
task obrot()
{
while (true)
{
getJoystickSettings(joystick); // Przycisk 1 na padzie
if(joy1Btn(1) == 1)
{
motor[motorA] = (n*100);
wait1Msec(2500);
n = n*(-1); // Zmiana kierunku obrotu
}

if(joy1Btn(1) == 0)
{
motor[motorA] = 0;
}
}
}
task main()
{
StartTask(swiatlo);
StartTask(jazda);
StartTask(obrot);
while(true)
{
wait1Msec(10);
}
}

Nerevar
Posty: 82
Rejestracja: 2009-02-21, 17:08
Lokalizacja: Gorzów Wlkp.

#8 Post autor: Nerevar »

Twój MOC traci przez prezentację, filmik nie prezentuje nic ciekawego, zdjęć też mało. Pokazałbyś jak to jeździ po pokoju, bo konstrukcja ciekawa.
Ostatnio zmieniony 2013-10-08, 16:16 przez Nerevar, łącznie zmieniany 2 razy.

Awatar użytkownika
Methos
Posty: 227
Rejestracja: 2011-07-23, 01:19
Lokalizacja: Polska - Gniezno
brickshelf: Methos6

 

#9 Post autor: Methos »

Ciekawe było by też ukazanie zawieszenia od str technicznej jak działa. Ogólnie MOC mnie się podoba bo to temat "chwytający" mnie za serce.
Co od drugiego NXTa - mógłbyś go dodać z tyłu u góry łazika jak w prawdziwym - tylko że tamtem ma tam zasilanie.

ODPOWIEDZ