3pi roboti teek

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

#include <pololu/3pi.h>

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

Teekide lühikirjeldused

  • OrangutanAnalog.h - teek sisaldab funktsioone, mis võimaldavad kasutada roboti analoogsisendeid.
  • OrangutanBuzzer.h – teek juhib robotil asetsevat piezo heligeneraatorit. Kasutab taimerit “Timer1” sageduste ja tooni pikkuste juhtimiseks. Võimaldab meloodiaid mängida muu koodiga samal ajal. Teeki ei saa kasutatada koos teiste teekidega, mis kasutavad taimerit “Timer1”, sest tekib konflikt. Näiteks ei saa samal ajal juhtida servomootoreid ja mängida toone.
  • OrangutanMotors.h – teek võimaldab kasutada robotil olevat mootorite draiverit, et juhtida kahte väikest alalisvoolumootorit.
  • OrangutanLCD.h – teek võimaldab kirjutada 8×2 tähemärgilisele LCD ekraanile.
  • OrangutanLEDs.h – teek juhib kasutajapõhiseid LED tulesid robotil.
  • OrangutanPushbuttons.h - teek loeb kolme kasutajapõhist vajutatavat lülitit ja võimaldab erinevatele vajutamise etappidele (alla vajutatud/lahti lastud) reageerida.
  • OrangutanTime.h – teek võimaldab kasutada erinevaid ajapõhiseid käske. Teek on kalibreeritud 20 MHz 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 väga efektiivselt, et võtta võimalikult vähe mälu ja mikrokontrolleri töötsükleid.

Teekide funktsioonid

Alljärgnevalt on välja toodud põhilised funktsioonid, mida võib vaja minna 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 8 bitise (väärtused 0-255) või 10 bitise(väärtused 0-1023)
                               // resolutsiooni vahel pingevahemikus 0-5 V.
  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 saatmise 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 väärtus on 4 294 967 295 ms (unsigned long), mis on ligikaudu 49 päeva. Pärast maksimumväärtuse 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õikides 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 vaikimisi olekus 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 konstandid

et/projects/3pi/library.txt · Last modified: 2020/07/20 09:00 by 127.0.0.1
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