This is an old revision of the document!


3Pi roboti teek

Üldiselt enne teegi kasutamist on vaja projekti lisada kõik teegid eraldi, kuid 3pi puhul on vaja ainult ühte

#include <pololu/3pi.h>

See lisab automaatselt kõik ülejäänud teegid. Muude teekide kasutamisel on üldiselt vaja main funktsioonis ühe korra käivitada teegi initsialiseerimise funktsioon. See on vajalik, et enne kasutamist perifeeria ära seadistada. Pololu teekide puhul tehakse see juba teegi esmasel kasutamisel automaatselt.

Teekide lühikirjeldused

  • OrangutanAnalog.h - teek sisaldab funktsioone, mis võimaldavad kasutada roboti analoog sisendeid
  • OrangutanBuzzer.h – teek juhib robotil asetsevat piezo heligeneraatorit. Kasutab taimerit “Timer1” sageduste ja tooni pikkuste juhtimiseks. Võimaldab meloodiaid mängida ka muu koodiga samal ajal. Teeki ei saa kasutatada koos teiste teekidega, mis kasutavad taimerit “Timer1”, kuna tekib konflikt. Näiteks ei saa samal ajal juhtida servosid ja mängida toone.
  • OrangutanMotors.h – teek võimaldab kasutada robotil olevat mootorite draiverit, et juhtida kahte väikest alalisvoolu mootorit.
  • OrangutanLCD.h – teek võimaldab kirjutada 8×2 tähemärgilisele LCD ekraanile.
  • OrangutanLEDs.h – teek juhib kasutaja põhiseid LED tulesid robotil
  • OrangutanPushbuttons.h - teek loeb kolme kasutaja põhist vajutatavat lülitit ja võimaldab erinevatele vajutamise etappidele (alla vajutatud/lahti lastud) reageerida.
  • OrangutanTime.h – teek võimaldab kasutada erinevaid aja põhiseid käske. Teek on kalibreeritud 20MHz kiirusel töötavale mikrokontrollerile.
  • OrangutanSerial.h – teek võimaldab jadapordi kaudu saata ja vastu võtta andmeid/käske. (Programmaator on virtuaalne jadaport arvuti küljes.)
  • OrangutanDigital.h – teek võimaldab teha digitaalseid sisend/väljund toiminguid. Teegi kood on kirjutatud hästi effektiivselt, et võtta võimalikult vähe mälu ja mikrokontrolleri töötsükleid.

Teekide funktsioonid

Siin on toodud ära kõik põhilised funktsioonid, mida võib vaja olla 3pi roboti programmeerimisel. Vajaduse korral on võimalik täpsemaid kirjeldusi lugeda Pololu kodulehelt.

OrangutanAnalog.h

  void set_analog_mode(unsigned char mode) // Seadistab analoog-digitaalmuunduri ühele järgnevale töörežiimile: MODE_8_BIT või MODE_10_BIT. 
                                           // Valida saab 8bitise (väärtused 0-255) või 10bitise(väärtused 0-1023) resolutsiooni vahel pinge vahemikus 0-5V.
  unsigned int analog_read(unsigned char channel)
  unsigned int analog_read_average(unsigned char channel, unsigned int numSamples)
  void start_analog_conversion(unsigned char channel)
  unsigned char analog_is_converting()
  unsigned int analog_conversion_result()

Analoog-digitaalmuunduri toega viigud 3pi robotil:
Kasutatavad analoog sisendid

OrangutanBuzzer.h
Teek kasutab sisemist taimerit “Timer1”.

  * void play_frequency(unsigned int freq, unsigned int duration, unsigned char volume)\\ NB! sagedus × periood/1000  ei tohi olla suurem kui 0xFFFF (65535).
  * void play_note(unsigned char note, unsigned int duration, unsigned char volume)
  * void play(const char* sequence)
  * void stop_playing()

OrangutanMotors.h
Mootorite kiirused tuleb valida vahemikus -255 kuni 255. Mootorite teek kasutab sisemisi taimereid “Timer0” ja “Timer3”.

  * void set_m1_speed(int speed)
  * void set_m2_speed(int speed)
  * void set_motors(int m1Speed, int m2Speed)

OrangutanLCD.h
Teek kasutab standard 4-bit HD44780 protokolli.

  * void clear() //puhastab ekraani ja viib kursori üles vasakule nurka ehk algpunkti (0,0).
  * void print_character(char character)
  * void print(const char *str)
  * void print_long(long value)
  * void lcd_goto_xy(int col, int row)

OrangutanLEDs.h
3Pi robotil on 2 kasutaja poolt kontrollitavat LED-i (roheline ja punane). Punane LED on samal viigul kui UART0 jadapordi saatmis viik (PD1). Jadaühenduse kasutamisel ei ole võimalik punast LED-i kasutada. Roheline LED on samal viigul LCD andmeviiguga ning võib LCD-le andmete saatmisel lühidalt vilkuda.

  * void red_led(unsigned char state)
  * void green_led(unsigned char state)

OrangutanPushbuttons.h

  * unsigned char get_single_debounced_button_press(unsigned char buttons)
  * unsigned char get_single_debounced_button_release(unsigned char buttons)
  * unsigned char wait_for_button_press(unsigned char buttons)
  * unsigned char wait_for_button_release(unsigned char buttons)
  * unsigned char wait_for_button(unsigned char buttons)
  * unsigned char button_is_pressed(unsigned char buttons)

OrangutanTime.h
Ajalised funktsioonid kasutavad sisemist taimerit “Timer2”. Taimeri maksimaalne lugemise väärtus on 4 294 967 295 ms (unsigned long), mis on umbakudu 49 päeva. Pärast maksimum väärtus saavutamist alustab taimer uuesti 0-st.

  * void delay_ms(unsigned int milliseconds)
  * void delay_us(unsigned int microseconds)
  * void time_reset()
  * unsigned long get_ms()

OrangutanSerial.h
3Pi robotil on üks UART port viikudel PD0 (RXD) ja PD1 (TXD). Kõigis funktsioonides tuleb pordi valimise parameeter välja jätta.

  * unsigned char serial_set_baud_rate([unsigned char port,] unsigned long baud)
  * void serial_send([unsigned char port,] char * buffer, unsigned char size)
  * void serial_receive([unsigned char port,] char * buffer, unsigned char size)

OrangutanDigital.h
Digitaalsed viigud on AVR mikrokontrolleril “default” seisundis sisendid. Kõik funktsioonid võtavad esimeseks parameetriks viigu numbri.

  * void set_digital_output(unsigned char pin, unsigned char output_state);
  * void set_digital_input(unsigned char pin, unsigned char input_state);
  * unsigned char is_digital_input_high(unsigned char pin);
Teegis defineeritud väljund parameetri konstandid
et/projects/3pi/library.1442317130.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0