Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  18 1761
Hei!

Jeg har planer om å lage en robot. For å kunne lage en ganske avansert en må jeg programmere min egen micro controller. Jeg har prøvd å google litt men har ikke funnet ut et fint sted hvor det står noe om dette.

Vet dere noe om programering eller en side som kan hjelpe meg?

Takker for alle svar!
Jeg anbefaler deg å titte på Lego Mindstorms. De er enkle å programmere, lett å utvide og det finnes tonnevis med materiale på nett om dem.
Det finnes forskjellige typer. Noen kan programeres i basic, andre programeres i C eller assembler
Eg har laga meg ein liten robot som blir styrt av ein Arduino. Microkontrollaren styrer tre servoar og har ein ultralydsensor for å navigera. Han er beltedreven og har to modifiserte servorar for å drive belta.
Arduino er enkel å programmera. Eg har kun erfaring med Basic Stamp frå før av, men kun ette nokre timar lesing var eg i full gång med å programmera.

Legg ved nokre bilder som visar roboten min i dag.
Trigonoceps occipita
vidarlo's Avatar
Donor
Atmel-chip ja. Det vil jo sei at du kan programmere den i assembly eller C, om eg ikkje tar heilt feil.

Kva har du valt å programmere den i? For ein slik robot er nok C det absoulutt beste og enklaste...
Arduino så faktisk ut som en genial plattform. Den har nesten samme specs som kontrolleren til Lego Mindstorm. Har selv programmert en del på Atmel-prosessorer. De kan være litt pes for nybegynnere siden man må programmere direkte mot hardware-registre, noe som ikke alltid fortoner seg like logisk for folk som ikke har assembler-erfaring.
Eg programmerer han i med dette: http://www.arduino.cc/en/Main/Software
Ein treng ikkje tenka på hardwareregistre, bare velga om pinnen skal vere input eller output, deretter er det enkelt å sette pinnen lav eller høg, eller lesa av inngangen.
Legg ved eit mikrokontrollaranes svar på hello world, blinkande LED:

Kode

int ledPin = 13;                // LED connected to digital pin 13

void setup()                    // run once, when the sketch starts
{
  pinMode(ledPin, OUTPUT);      // sets the digital pin as output
}

void loop()                     // run over and over again
{
  digitalWrite(ledPin, HIGH);   // sets the LED on
  delay(1000);                  // waits for a second
  digitalWrite(ledPin, LOW);    // sets the LED off
  delay(1000);                  // waits for a second
}
19.........bokstaver
bavarai's Avatar
PocketRocket, Hvordan kjører du feks loopen?
Trigonoceps occipita
vidarlo's Avatar
Donor
PocketRocket, well, du bruker register, sjølv om du ikkje er klar over det

Inngongar og utgongar på så godt som alle atmel-chipar er register, som kan settast for utputt, eller lesast for input.

Så har du et abstraksjonslag som seier kva pinne som er kva bit i kva register.

T.d kan du like godt i asm skrive det slik:
ldi r18, 0x01
out rXX, r18
Alt mellom "void loop() {" og "}" vert kjørt i kontinuerlig loop.

Edit:
Eg er klar over at eg brukar registera, men ikkje direkte. For å skrive direkte til registera kan ein f.eks. skriva det slik:

Kode

void setup()
    {
        // set pins 0 (serial transmit) and 2..7 as output,
        // but leave pin 1 (serial receive) as input
        // (otherwise serial port will stop working!) ...
        DDRD = B11111101;  // digital pins 7,6,5,4,3,2,1,0

        // set pins 8..13 as output...
        DDRB = B00111111;  // digital pins -,-,13,12,11,10,9,8

        // Turn off digital output pins 2..7 ...
        PORTD &= B00000011;   // turns off 2..7, but leaves pins 0 and 1 alone

        // Write simultaneously to pins 8..13...
        PORTB = B00111000;   // turns on 13,12,11; turns off 10,9,8
    }
Sist endret av PocketRocket; 7. september 2007 kl. 18:57.
19.........bokstaver
bavarai's Avatar
Dvs at void_setup() også blir kjørt i loop?
Sitat av comi
Dvs at void_setup() også blir kjørt i loop?
Vis hele sitatet...
Hvordan får du det til å stemme?
Sist endret av TanteSpiker; 7. september 2007 kl. 18:58.
void_setup() vert kun kjørt ein gang ved power up eller reset.
Ein annan ting som er greit med Arduino er at det er USBplugg på kortet, å for å programmera han så er det bare til å kople til USB, trykke på reset og "Upload to I/O board".
19.........bokstaver
bavarai's Avatar
Billig var den også 299,- (Svenske kroner) og frakta er vell litt dyrt så rundt en 500,- ?
Takker for svar!

Arduino virker som det perfekt valget for meg. Hittil virker at det dere prater om helt gresk, men jeg får sette meg ned å lese litt

Skal nok kjøpe den innen et par uker. Har begynt å designe roboten nå.

Fikk litt blod på tann når jeg så robot wars
Arduino er ganske enkelt å sette seg inn i, men treng du hjelp så kan du bare sende meg ein pm eller besøke forumet til arduino. Arduino får du kjøpt hos http://www.electrokit.se/
bare søk på Arduino så finn du Arduino Diecimila, eller du kan slå til med den versjonen med blåtann på, så kan du styre han frå PC eller mobil.
hmm, virker spennende dette her, fikk lyst til å lage egen robot

Hva ble samlet kostnad på roboten din til slutt PocketRocket?
Vet dere om et sted i Norge jeg kan kjøpe Arduino?
Eg har ikkje sett det i Norge, men gjekk fint å kjøpa frå electrokit, fekk ikkje momskrav frå tollvesenet. Ellers kan du kjøpa Atmelprosessor, krystall og nokre andre smådeler, men då må du programmera bootloaderen sjøl.

Larveføttene kosta ca 300, arduino ca 300, ultralydsensor ca 300, 3 servoar à kr 150 og aluplate, elektronikkboks, skruer og anna smårask på clas ohlson ca 200. Total kostnad litt over 1500 kr.