PICAXE

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Robot Umík
PICAXE 18 z PIC16F88
Zapojení programovacího konektoru
Schéma zapojení robota Umíka
Deska plošných spojů

Základní příkazy a syntaxe:

 
 
REM Tohle je první jednoduchý program 

start: pause 1000

goto start


Náměty:

Běžící had

  
pins = %11111111  ;zhasne všechny diody main: 

pause 1000
low 0 pause 200 high 0 ;postupně přepíná s 200 ms pauzou 
low 1 pause 200 high 1
low 2 pause 200 high 2
low 3 pause 200 high 3
low 4 pause 200 high 4
low 5 pause 200 high 5
low 6 pause 200 high 6
low 7 pause 200 high 7
goto main
Robot Umík

je postaven na podvozku UMU-01 Lze sestavit v konfiguraci stopař pro sledování čáry nebo minisumo

  • Čidlo okraje arény: 2x QRD1114 pro Minisumo
  • Čidlo čáry: 3x QRD1114 pro sledování čáry
  • Čidlo soupeře / překážky: SFH5110 + 2x IR-LED20
  • Elektronika s PICAXE-18X
  • Programování v Basicu
  • Ovládání motorů můstkem L293D
  • dokumentace
PICAXE MICROCONTROLLERS
PicAXE data logger source

Příkazy:

Abecední seznam příkazů

backward (použitelné pro PICAXE: 18, 18A, 18X, 28A, 28X, 40X)

syntaxe: BACKWARD motor - motor je A nebo B

funkce: Spustí otáčení motoru dozadu. Tento příkaz je ekvivalentní low 4, high 5 pro motor A, nebo low 6, high 7 pro motor B. Bude fungovat správně na desce UMU rev. C (vyrobené v roce 2007). A je levý motor, B je pravý motor.

branch (použitelné pro všechny typy PICAXE)

syntaxe: BRANCH offset,(address0,address1...addressN) - offset je proměnná, určující na kterou adresu (0-N) se má skočit. - adresy (address) jsou návěští, na která se větví program podle hodnoty proměnné offset.

funkce: Tento příkaz umožňuje větvení programu podle proměnné offset. Pokud je její hodnota 0, skočí se na první návěští, pokud je hodnota 1, skočí se na druhé atd. Pokud je hodnota větší nežli odpovídá poslednímu uvedenému návěští, neprovede se žádný skok a program pokračuje na dalším řádku.

button (použitelné pro všechny typy PICAXE)

syntaxe: BUTTON pin,downstate,delay,rate,bytevariable,targetstate,address

funkce: Příkaz ke čtení tlačítka, odstranění zákmitů a simulaci opakovaného stisku (autorepeat). Aby správně fungoval, musí být periodicky vykonáván.

calibfreq (použitelné pro PICAXE: 08M, 18A, 18X)

syntaxe: CALIBFREQ {-} factor - factor je konstanta nebo proměnná, nabývající hodnot -31 až 31

funkce: Slouží k jemnému doladění interního oscilátoru. Po zapnutí napájení má konstanta hodnotu 0. Kladné hodnoty zvyšují kmitočet, záporné hodnoty snižují kmitočet oscilátoru. Tento příkaz má smysl pouze u mikrokontrolérů s interním oscilátorem – 08M, 18A a 18X.

count (použitelné pro PICAXE: 08M, 18X, 28X, 40X)

syntaxe: COUNT pin, period, variable - pin je proměnná nebo konstanta, určující, na kterém vstupu se počítají impulsy. - period je proměnná nebo konstanta, určující dobu měření (1-65535 ms při frekvenci oscilátoru 4 MHz). - variable je proměnná, do které se zaznamená výsledek (přednostně proměnná word – s rozsahem 0-65535).

funkce: Slouží k čítání impulsů na vstupu, počítá vzestupné hrany na určeném vstupu. Nejvyšší měřitelná frekvence vstupního signálu je 25 kHz (pokud je střída signálu 1:1) pro frekvenci oscilátoru 4MHz.

debug (použitelné pro všechny typy PICAXE)

syntaxe: DEBUG {var} - var je nepovinná proměnná, uvedená pouze z důvodu zpětné kompatibility, její hodnota nemá žádný vliv.

funkce: Zobrazí hodnoty všech proměnných v ladícím okně na monitoru PC. Musí být připojen komunikační kabel. Vzhledem k množství přenášených dat tento příkaz značně zpomaluje běh programu. Rychlejší selektivní výpis ladících informací umožňuje příkaz SERTXD.

data eeprom (použitelné pro všechny typy PICAXE)

syntaxe: DATA {location},(data,data...) EEPROM {location},(data,data...) - location je nepovinná konstanta (0-255), určující počáteční adresu paměti eeprom, kam se budou ukládat data. Pokud není počáteční adresa uvedena, ukládání pokračuje tam, kde předchozí příkaz skončil. Při prvním použití příkazu se začíná na adrese 0. - data jsou konstanty (0-255), které budou uloženy v paměti eeprom.

funkce: Příkazy DATA a EEPROM jsou synonyma, oba slouží k naplnění paměti eeprom konstantami při zavádění programu z PC. Tyto konstanty lze načíst v programu příkazem READ. Příkaz DATA či EEPROM neovlivňuje délku programu.

end (použitelné pro všechny typy PICAXE)

syntaxe: END

funkce: Ukončí běh programu a uvede kontroler do režimu s minimální spotřebou. Obnova běhu programu je možná pouze vypnutím napájení, přivedením nízké úrovně na vstup MCLR (resetem) nebo zavedením nového programu z PC. Příkaz END vypíná všechny časovače, po jeho provedení se ukončí činnost příkazů PWM a SERVO a kontrolér přejde do režimu s nízkým příkonem. Pokud je tento efekt nežádoucí, lze použít příkaz STOP.

for..next (použitelné pro všechny typy PICAXE)

syntaxe: FOR variable = start TO end {STEP {-}increment} .. příkazy programové smyčky .. NEXT {variable} - variable je proměnná, která je použita jako čítač cyklů - start je počáteční hodnota čítače - end je konečná hodnota čítače - increment je nepovinná hodnota kroku čítače. Pokud není uvedena použije se hodnota +1. Pokud je uvedena záporna hodnota, předpokládá se, že Start je větší nežli End a čítá se směrem dolů.

funkce: Slouží k opakovanému provádění kódu uvedeného mezi příkazy FOR a NEXT. Při použití proměnné byte je největší možný počet cyklů 255. Při každém provedení příkazu NEXT se hodnota čítače zvětší (nebo zmenší) o předepsaný krok a porovná se s konečnou hodnotou End. Pokud je čítač větší (nebo menší při záporném kroku) nežli End, smyčka se ukončí a program pokračuje dalším řádkem za NEXT. Příkaz FOR-NEXT může mít osm úrovní vnoření.

forward (použitelné pro PICAXE: 18, 18A, 18X, 28A, 28X, 40X)

syntaxe: FORWARD motor - motor je A nebo B

funkce: Spustí otáčení motoru dopředu. Tento příkaz je ekvivalentní high 4 low 5 pro motor A, nebo high 6 low 7 pro motor B. Bude fungovat správně na desce UMU rev. C (vyrobené v roce 2007). A je levý motor, B je pravý motor.

gosub (použitelné pro všechny typy PICAXE)

syntaxe: GOSUB address - address je návěští podprogramu, který příkaz GOSUB volá

funkce: Předává řízení programu na udanou adresu, po vykonání příkazu RETURN se vrátí vykonávání programu na řádek následující po příkazu GOSUB. Příkaz GOSUB se liší od příkazu GOTO v tom, že uchovává návratovou adresu. Po každém příkazu GOSUB musí následovat vykonání příkazu RETURN, jinak by došlo k přeplnění zásobníku návratových adres. Příkazy GOSUB mohou mít čtyři úrovně vnoření. Program kontrolérů 18X, 28X a 40X může obsahovat celkem 15 nebo 255 příkazů GOSUB, podle nastavení v menu Options. U ostatních kontrolérů je povoleno 15, případně 16 příkazů GOSUB v celém programu.

goto (použitelné pro všechny typy PICAXE)

syntaxe: GOTO address - address je návěští, na které se předá provádění programu – nepodmíněný skok na jiné místo v programu.

halt (použitelné pro PICAXE: 18, 18A, 18X, 28A, 28X, 40X)

syntaxe: HALT motor - motor je A nebo B

funkce: Zastaví otáčení motoru. Tento příkaz je ekvivalentní low 4 low 5 pro motor A, nebo low 6 low 7 pro motor B.

high (použitelné pro všechny typy PICAXE)

syntaxe: HIGH pin - pin je proměnná nebo konstanta, označuje výstup, který se použije

funkce: Nastaví vysokou výstupní úroveň. (U PICAXE-08 zároveň nastaví vývod jako výstupní.)

high portc (použitelné pro PICAXE: 28X, 40X)

syntaxe: HIGH PORTC pin - pin je proměnná nebo konstanta, označuje výstup na portu C, který se použije

funkce: Nastaví vysokou výstupní úroveň na výstupu portu C. (Pouze u kontrolérů 28X a 40X)

i2cslave (použitelné pro PICAXE: 18X, 28X, 40X)

syntaxe: I2CSLAVE slave, speed, address - slave je adresa zařízení na I2C sběrnici - speed je klíčové slovo i2cfast (400 kHz) nebo i2cslow (100 kHz) (krystal 4 MHz), určuje rychlost komunikace. Pokud je na sběrnici více zařízení, určuje se rychlost podle nejpomalejšího z nich – rychlejší periferie může pracovat s nižší rychlostí, naopak pracovat nelze. - address je klíčové slovo i2cbyte nebo i2cword, určuje, zda je adresa 8-bitová nebo 16-bitová.

funkce: Nastavuje parametry pro komunikaci po I2C sběrnici a konfiguruje vývody SCL a SDA jako vstupní. Komunikaci obstarávají příkazy READI2C, WRITEI2C.

if .. then
if .. and .. then
if .. or .. then (použitelné pro všechny typy PICAXE)

syntaxe: IF variable ?? value {AND/OR variable ?? value ...} THEN address - variable je proměnná. Bude porovnána s value - value může být proměnná nebo konstanta - address je návěští, na které se předá řízení programu. Pokud je podmínka splněna - ?? může být jeden z následujících operátorů: = rovná se is rovná se (alternativní zápis) <> nerovná se != nerovná se (alternativní zápis) > větší než >= větší nebo rovno < menší než <= menší nebo rovno

funkce: Příkaz porovnává dvě proměnné nebo proměnnou s konstantou a skočí na určené místo, pokud je podmínka splněna. Pokud není podmínka splněna, pokračuje se na daším řádku programu.

infrain (použitelné pro PICAXE: 18A, 18X, 28A, 28X, 40X)

syntaxe: INFRAIN

funkce: Čeká na příjem znaku z dálkového ovládání. Přijatý kód je v proměnné infrain. Vyžaduje připojení přijímače infračerveného signálu na vstup input0, používá protokol Sony.

infrain2 (použitelné pro PICAXE: 08M)

syntaxe: INFRAIN2

funkce: Obdoba předchozího příkazu pro PICAXE-08M. Vyžaduje připojení přijímače infračerveného signálu na vstup input3, používá protokol Sony.

infraout (použitelné pro PICAXE: 08M)

syntaxe: INFRAOUT device,data

funkce: Vyšle data protokolem Sony infračerveného dálkového ovládání, pouze na PICAXE-08M. Předpokládá připojení vysílací infračervené LED s omezovacím odporem na výstup 0.

input (použitelné pro PICAXE: 08, 08M)

syntaxe: INPUT pin - pin je proměnná nebo konstanta, označuje použitý vývod

funkce: Nastaví vývod jako vstupní. Po zapnutí napájení jsou všechny konfigurovatelné vývody nastaveny jako vstupní. Kromě příkazů k přímému nastavení (LET DIRS, INPUT, OUTPUT, REVERSE) se příslušné vývody nastavují také příkazy HIGH, LOW, TOGGLE, PULSOUT jako výstupní.

keyin (použitelné pro PICAXE: 18A, 18X, 28A, 28X, 40X)

syntaxe: KEYIN

funkce: Čeká na příjem znaku z počítačové klávesnice připojené přímo k mikrokontroléru. Přijatý kód je v proměnné keyin. Vyžaduje připojení klávesnice na vstupy input6 a input7 a zdvihací rezistory 4k7.

keyled (použitelné pro PICAXE: 18A, 18X, 28A, 28X, 40X)

syntaxe: KEYLED mask - mask je proměnná nebo konstanta, určuje stav LED na klávesnici.

funkce: Rozsvěcí nebo zhasíná LED na klávesnici PC. Vyžaduje připojení klávesnice na vstupy input6 a input7.

let (použitelné pro všechny typy PICAXE)

syntaxe: {LET} variable = {-} value ?? value... - variable je proměnná, které bude přiřazen výsledek početní operace - value jsou proměnné nebo konstanty spojené operátory Klíčové slovo LET je nepovinné

funkce: Provádí početní operace v celočíselné 16-bitové aritmetice (hodnoty 0 až 65535). Výrazy jsou vyhodnocovány zleva doprava bez upatnění přednosti operátorů. Všechna čísla jsou chápána jako kladná. Výsledek může být také 8-bitový nebo 1-bitový, v tom případě jsou vyšší bity oříznuty.

let dirs = (použitelné pro PICAXE: 08, 08M) let dirsc = (použitelné pro PICAXE: 28X, 40X)

syntaxe: {LET} dirs = value {LET} dirsc = value - value jsou proměnné nebo konstanty, jejichž hodnota je uložena do proměnné dirs (dirsc).

funkce: Konfiguruje vývody kontroléru jako vstupní nebo výstupní (let dirs, na PICAXE-08/08M) Konfiguruje vývody kontroléru na portu C jako vstupní nebo výstupní (let dirsc, na PICAXE-28X/40X). Hodnota 1 příslušného bitu značí vstup, hodnota 0 značí výstup.

let pins = (použitelné pro všechny typy PICAXE) let pinsc = (použitelné pro PICAXE: 28X, 40X)

syntaxe: {LET} pins = value {LET} pinsc = value - value je proměnná nebo konstanta, jejíž hodnota je uložena do proměnné pins (pinsc).

funkce: Tento příkaz nastavuje současně všechny výstupy kontroléru individuálně na vysokou nebo nízkou úroveň, u kontrolérů PICAXE-28X/40X lze takto nastavit též všechny vývody portu C. Klíčové slovo LET je nepovinné. K individuálnímu nastavení jednotlivých výstupů lze použít příkazy high a low. Příkaz LET PINS umožňuje hromadné nastavení všech osmi výstupů současně.

lookdown (použitelné pro všechny typy PICAXE)

syntaxe: LOOKDOWN target,(value0,value1...valueN),variable - target je proměnná nebo konstanta, která se porovnává s řadou hodnot v závorce. - value0... jsou proměnné nebo konstanty - variable obsahuje výsledek porovnávání.

funkce: Porovnává target se seznamem hodnot v závorce, pokud najde stejnou hodnotu, uloží do proměnné za závorkou pořadové číslo shodné hodnoty. Číslování začíná nulou. Pokud se shoda nenajde, proměnná za závorkou zůstane beze změny.

www:

SW: PICAXE Programming Editor

SW: AXEpad

Programování PICAXE - Úvod

Programování PICAXE

Programování PICAXE - 1. lekce

PICAXE – příručka programátora

Nejčastěji pokládané dotazy

How to make your first Robot

PICAXE – příručka programátora