PICAXE: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Mrojik (diskuse | příspěvky)
Bez shrnutí editace
Bez shrnutí editace
 
(Není zobrazeno 21 mezilehlých verzí od 2 dalších uživatelů.)
Řádek 1: Řádek 1:
[[Soubor:MAT-POZADAVKY-PRA-ROBOT-UMIK.jpg|thumb|Robot Umík]]
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 30em"
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''PICAXE'''''


[[Soubor:PICAXE_18.jpg|thumb|PICAXE 18 z PIC16F88]]
|- style="vertical-align: top;"
|


[[Soubor:PICAXE_01.jpg|thumb|Zapojení programovacího konektoru]]
Download SW:
[https://picaxe.com/software/obsolete/picaxe-programming-editor/index.html PICAXE]
[http://www.picaxe.com/Software/PICAXE/PICAXE-Programming-Editor/ PICAXE]
[http://www.picaxe.com/Software/PICAXE/AXEpad/ AXEpad]  


[[Soubor:Robot-umík-sch.jpg|thumb|Schéma zapojení robota Umíka]]
Tutoriály:


[[Soubor:Robot-umík-dps.jpg|thumb|Deska plošných spojů]]
* [[Soubor:programujte.jpg|200px|link=http://programujte.com/clanek/2010082700-programovani-picaxe-uvod/]]


== Základní příkazy a syntaxe: ==
[http://programujte.com/clanek/2010082700-programovani-picaxe-uvod/ Programování PICAXE]
* [[Soubor:Icon-pdf.gif]] [[:Media:PICAXE-2-220_man_cz.pdf|PICAXE – příručka programátora]] [http://www.hobbyrobot.cz/PDF/PICAXE_basic_man_cz.pdf mirror]
* [[Soubor:hobbyrobot.jpg|200px|link=http://www.hobbyrobot.cz/mikrokontrolery/prikazy-jazyka-basic/]]


<source lang="qbasic">
REM Tohle je první jednoduchý program


start: pause 1000
[http://www.hobbyrobot.cz/mikrokontrolery/prikazy-jazyka-basic/ Syntaxe jazyka BASIC]
* [[PICAXE - BASIC commands]]
* [http://www.joliebrisemodels.co.uk/picaxe/ PICAXE - Microprocessor Tutorial]


goto start
</source>


{{#widget:YouTube|id=fRvAgDKbAD0|height=180|width=240|Popis|right}}


== Náměty:==
{{#widget:YouTube|id=_veeeMj-64Q|height=180|width=240|Popis|right}}
|}


{|
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 30em"
|-
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Tasks'''''
| '''Běžící had'''
[[Soubor:PICAXE_bezici_had.jpg|200px]]
|
<source lang="qbasic"> 
pins = %11111111  ;zhasne všechny diody main:


pause 1000
|- style="vertical-align: top;"
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
</source> 
|-
| '''Robot Umík'''
[[Soubor:MAT-POZADAVKY-PRA-ROBOT-UMIK.jpg|200px]]
|
|
je postaven na podvozku UMU-01 Lze sestavit v konfiguraci stopař pro sledování čáry nebo minisumo
# [http://www.linuxsoft.cz/article.php?id_article=1971 Posuvný bod]
* Čidlo okraje arény: 2x QRD1114 pro Minisumo
# [http://www.linuxsoft.cz/article.php?id_article=1971 Změna jasu diody]
* Čidlo čáry: 3x QRD1114 pro sledování čáry
# [http://www.bristolwatch.com/picaxe/picaxe_led_display.htm Using 7-Segment Displays]
* Čidlo soupeře / překážky: SFH5110 + 2x IR-LED20
# [http://www.bristolwatch.com/picaxe/74hc164_demo.htm Using the 74HC165 Shift Register]
* Elektronika s PICAXE-18X
# [http://www.bristolwatch.com/picaxe/picaxe_h_bridge.htm H-Bridge DC Motor Control]
* Programování v Basicu
# [http://www.bristolwatch.com/picaxe/myservo.htm Connecting a Servo]
* Ovládání motorů můstkem L293D
# [[Soubor:Icon-pdf.gif]] [http://www.picaxe.com/docs/axe105.pdf ELECTRONIC DICE]
* [[Soubor:Icon-pdf.gif]] [[:Soubor:Robot-Umík-dokumentace.pdf|dokumentace]]  
# [[Soubor:Icon-pdf.gif]] [http://www.picaxe.com/docs/axe120.pdf PICAXE MICRO-ROBOT]
 
# [[Soubor:Icon-pdf.gif]] [http://letsmakerobots.com/files/lmr-Start.pdf How to make your first Robot]
|-
| [[Soubor:technologystudent.gif|200px]]
| [http://www.technologystudent.com/pics/picdex1.htm PICAXE MICROCONTROLLERS]  
|-
| [[Soubor:PICAXE-dataloger.jpg|200px]]
| [http://profmason.com/?page_id=99 PicAXE data logger] [http://profmason.com/wp-content/uploads/2006/11/datalogger.txt source]
|-
 
 


|}
|}


== Příkazy: ==


=====Abecední seznam příkazů=====
[[Soubor:PICAXE_18.jpg|thumb|PICAXE 18 z PIC16F88]]
[[Soubor:PICAXE_01.jpg|thumb|Zapojení programovacího konektoru]]


'''backward''' (použitelné pro PICAXE: 18, 18A, 18X, 28A, 28X, 40X)<br />


''syntaxe:''
<gallery>
BACKWARD motor
Soubor:D10_HW_picaxe_01.jpg|PICAXE - vývojová deska
- motor je A nebo B<br />
Soubor:D10_HW_picaxe_02.jpg|PICAXE - popis vývojové desky
Soubor:ProfiCAD_PICAXE.png|PICAXE - blokové schéma
Soubor:D10_HW_picaxe_03.jpg|PICAXE - schéma vývojové desky
</gallery>


''funkce:''
<gallery>
Spustí otáčení motoru dozadu. Tento příkaz je ekvivalentní low 4, high 5 pro motor A, nebo low 6, high 7
Soubor:MAT-POZADAVKY-PRA-ROBOT-UMIK.jpg|Robot Umík
pro motor B.
Soubor:Umik-popis.png|Umík - popis
Bude fungovat správně na desce UMU rev. C (vyrobené v roce 2007). A je levý motor, B je pravý motor.<br /><br />
Soubor:Umik-blok-schema.png|Umík - blokové schéma
Soubor:Robot-umík-sch.jpg|Schéma zapojení robota Umíka
Soubor:Robot-umík-dps.jpg|Deska plošných spojů
</gallery>


'''branch''' (použitelné pro všechny typy PICAXE)<br />
<Gallery>
Soubor:PICAXE-vyv-diagram_01.jpg|Blik
Soubor:PICAXE-vyv-diagram_02.jpg|DICE
Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT
</gallery>


''syntaxe:''
== Náměty:==
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.<br />


''funkce:''
<gallery>
Tento příkaz umožňuje větvení programu podle proměnné offset. Pokud je její hodnota 0, skočí se na
Image:D10 HW PICAXE-08M.jpg| [[PICAXE]]-08M MCU pro programování v Basicu. [http://shop.snailinstruments.com/index.php?main_page=advanced_search_result&search_in_description=1&zenid=f7ce17dec68c901d159d6c3ad334677f&keyword=picaxe]
první návěští, pokud je hodnota 1, skočí se na druhé atd. Pokud je hodnota větší nežli odpovídá
</gallery>
poslednímu uvedenému návěští, neprovede se žádný skok a program pokračuje na dalším řádku.<br /><br />


'''button''' (použitelné pro všechny typy PICAXE)<br />
{|
|-
| '''PICAXE8 LED'''
[[Soubor:PICAXE-PICAXE80.jpg|200px]]
[[Soubor:PICAXE-PICAXE80_1.jpg|200px]]
|
<source lang="qbasic">
init:
      let b0 = 0
main:
      if pin3 = 1 then add      'i/o pin 3 = physical ic pin 4
      if pin3 = 0 then low 1
      endif
      goto main
add:
      pause 100
      let b0 = b0 + 1
      if b0 < 5 then main
      high 1                      'i/o pin 1 = physical pin 6
      goto main
</source>
[http://www.joliebrisemodels.co.uk/picaxe/ PICAXE Microprocessor Tutorial]
|-
| '''PICAXE81'''
[[Soubor:PICAXE-PICAXE81.jpg|200px]]
|
<source lang="qbasic">


''syntaxe:''
</source>
BUTTON pin,downstate,delay,rate,bytevariable,targetstate,address<br />
[ info]


''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.<br /><br />


'''calibfreq''' (použitelné pro PICAXE: 08M, 18A, 18X)<br />
<gallery>
Image:D10_HW_picaxe.jpg| Modul s [[PICAXE]]-18X. Programování v Basicu a [[SD20]]. [http://shop.snailinstruments.com/index.php?main_page=advanced_search_result&search_in_description=1&zenid=f7ce17dec68c901d159d6c3ad334677f&keyword=picaxe]
</gallery>


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


''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.<br /><br />


'''count''' (použitelné pro PICAXE: 08M, 18X, 28X, 40X)<br />


''syntaxe:''
{|
COUNT pin, period, variable
|-
- pin je proměnná nebo konstanta, určující, na kterém vstupu se počítají impulsy.
| '''LED blikání'''
- period je proměnná nebo konstanta, určující dobu měření (1-65535 ms při frekvenci oscilátoru 4
[[Soubor:PICAXE_LED.jpg|200px]]
MHz).
|
- variable je proměnná, do které se zaznamená výsledek (přednostně proměnná word – s rozsahem
<source lang="qbasic"> 
0-65535).<br />
main:
 
  low 0      ' PIN 0 set OFF, LED will be shine
            ' linka 0 se vynuluje, LED bude svítit
  pause 500  ' wait 500 ms/ čekání 500 ms  
  high 0    ' PIN 0 set ON, LED will not be shine
  ' linka 0 se nastavi do log. "1", LED nebude svítit
  pause 500  ' čekání 200 ms


''funkce:''
  GOTO main  'jump to label main
Slouží k čítání impulsů na vstupu, počítá vzestupné hrany na určeném vstupu. Nejvyšší měřitelná
            'skok na návěští main
frekvence vstupního signálu je 25 kHz (pokud je střída signálu 1:1) pro frekvenci oscilátoru 4MHz.<br /><br />
</source>
|-


'''debug''' (použitelné pro všechny typy PICAXE)<br />


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


''funkce:''
| '''Běžící had'''
Zobrazí hodnoty všech proměnných v ladícím okně na monitoru PC. Musí být připojen komunikační
[[Soubor:PICAXE_bezici_had.jpg|200px]]
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.<br /><br />


'''data eeprom''' (použitelné pro všechny typy PICAXE)<br />
[[Soubor:Ukáza programu.jpg|Ukázka|200px]]
|
<source lang="qbasic">


''syntaxe:''
pins = %11111111  ;zhasne všechny diody
DATA {location},(data,data...)
main:  
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.<br />


''funkce:''
  pause 1000 ' čekání 1 000 ms = 1 s
Příkazy DATA a EEPROM jsou synonyma, oba slouží k naplnění paměti eeprom konstantami při
  low 0      ' linka 0 se vynuluje log. "0"
zavádění programu z PC. Tyto konstanty lze načíst v programu příkazem READ. Příkaz DATA či
  pause 200  ' čekání 200 ms
EEPROM neovlivňuje délku programu.<br /><br />
  high 0    ' linka 0 se nastavi do log. "1"
  low 1 pause 200 high 1 'dále postupně přepíná s 200 ms pauzou
  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  'skok na návěští main
</source>
|-
| '''Robot Umík'''
[[Soubor:MAT-POZADAVKY-PRA-ROBOT-UMIK.jpg|200px]]
|
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
* [[Soubor:Icon-pdf.gif]] [[:Soubor:Robot-Umík-dokumentace.pdf|dokumentace]]


'''end''' (použitelné pro všechny typy PICAXE)<br />
|-
| [[Soubor:technologystudent.gif|200px]]
| [http://www.technologystudent.com/pics/picdex1.htm PICAXE MICROCONTROLLERS]
|-
| '''PICAXE02'''
[[Soubor:PICAXE-Buuton-LED.jpg|200px]]
[[Soubor:PICAXE-Button-LED_1.jpg|200px]]
|
<source lang="qbasic">
init: b2 = 0 ' reset targetbyte before the loop


''syntaxe:''
' input C.0, active high, jump to ‘pushed’ label when = 1
END<br />


''funkce:''
myloop: button C.0,1,200,100,b2,1,pushed ' jump to cont when C.0 = 1
Ukončí běh programu a uvede kontroler do režimu s minimální spotřebou. Obnova běhu programu je
low B.7 ' output off
možná pouze vypnutím napájení, přivedením nízké úrovně na vstup MCLR (resetem) nebo zavedením
pause 10 ' loop delay time
nového programu z PC.
goto myloop
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.<br /><br />


'''for..next''' (použitelné pro všechny typy PICAXE)<br />
pushed: high B.7 ' output on
goto myloop


''syntaxe:''
</source>
FOR variable = start TO end {STEP {-}increment}
[http://www.picaxe.com/BASIC-Commands/Digital-InputOutput/button/ info]
..
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ů.<br />


''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
| '''Push Switch'''
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
[[Soubor:PICAXE-Buuton-LED.jpg|200px]]
zmenší) o předepsaný krok a porovná se s konečnou hodnotou End. Pokud je čítač větší (nebo menší při
[[Soubor:PICAXE-Button-LED_2.jpg|200px]]
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í.<br /><br />
<source lang="qbasic">


'''forward''' (použitelné pro PICAXE: 18, 18A, 18X, 28A, 28X, 40X)<br />
init: let b0 = 0


''syntaxe:''
main: if pinC.7 = 1 then add
FORWARD motor
        low B.7
- motor je A nebo B<br />
goto main


''funkce:''
add: pause 100 'short delay
Spustí otáčení motoru dopředu. Tento příkaz je ekvivalentní high 4 low 5 pro motor A, nebo high 6 low 7
let b0 = b0 + 1
pro motor B.
if b0 < 5 then main
Bude fungovat správně na desce UMU rev. C (vyrobené v roce 2007). A je levý motor, B je pravý motor.<br /><br />
high B.7
goto main


'''gosub''' (použitelné pro všechny typy PICAXE)<br />
</source>
[http://www.picaxe.com/Circuit-Creator/Switches/Push-Switch/ info]


''syntaxe:''
|-
GOSUB address
| '''For..Next'''
- address je návěští podprogramu, který příkaz GOSUB volá<br />
[[Soubor:PICAXE-Counter.jpg|200px]]
|
<source lang="qbasic">
symbol counter = b0 ‘ 'define the variable “counter”
symbol dp = 7 ‘      'define pin 7 with the name “dp”


''funkce:''
main:
Předává řízení programu na udanou adresu, po vykonání příkazu RETURN se vrátí vykonávání programu
  for counter = 1 to 15 ‘ 'start a for...next loop
na řádek následující po příkazu GOSUB. Příkaz GOSUB se liší od příkazu GOTO v tom, že uchovává
    high dp ‘    ‘‘        'switch pin 7 high
návratovou adresu. Po každém příkazu GOSUB musí následovat vykonání příkazu RETURN, jinak by
    pause 500 ‘          'wait for 0.5 second
došlo k přeplnění zásobníku návratových adres. Příkazy GOSUB mohou mít čtyři úrovně vnoření.
    low dp ‘              'switch pin 7 low
Program kontrolérů 18X, 28X a 40X může obsahovat celkem 15 nebo 255 příkazů GOSUB, podle
    pause 500 ‘          'wait for 0.5 second
nastavení v menu Options. U ostatních kontrolérů je povoleno 15, případně 16 příkazů GOSUB v celém
  next counter ‘          'end of for...next loop
programu.<br /><br />
end ‘                      'end program
</source>
[[Soubor:Icon-pdf.gif]] [http://robotics.ee.uwa.edu.au/eyejr/pic-controller/PICAXE-tutorial.pdf info]


'''goto''' (použitelné pro všechny typy PICAXE)<br />
|-
| '''PICAXE03'''
[[Soubor:PICAXE-PICAXE03.jpg|200px]]
|
<source lang="qbasic">
symbol counter = b0  'define the variable counter
symbol dp = 7        'define pin 7 with the name dp
main:
  FOR counter = 1 TO 20  'start a for...next loop
    pins = %11000000    ' symbol 0
    pause 100            'wait for 0.1 second
    pins = %11111001    ' symbol 1
    pause 100           
    pins = %10010100    ' symbol 2
    pause 100           
    pins = %10001111    ' symbol 3
    pause 100           
    pins = %10011001    ' symbol 4
    pause 100           
    pins = %11101101    ' symbol 5
    pause 100           


''syntaxe:''
   
GOTO address
    NEXT counter        'end of for...next loop
- address je návěští, na které se předá provádění programu – nepodmíněný skok na jiné místo v
END
programu.<br /><br />
</source>
[ info]
|-
| '''PICAXE04'''
[[Soubor:PICAXE-PICAXE04.jpg|200px]]
|
<source lang="qbasic">
symbol counter = b0  'define the variable counter
symbol dp = 7        'define pin 7 with the name dp
w1 = %00000000


'''halt''' (použitelné pro PICAXE: 18, 18A, 18X, 28A, 28X, 40X)<br />
main:
  FOR counter = 1 TO 255  'start a for...next loop
    pins =  w1      'start
    pause 100            'wait for 0.1 second
    w1 = w1 + 1          'incrementace
         
    NEXT counter        'end of for...next loop
END
</source>
[ info]


''syntaxe:''
|-
HALT motor
| '''Counter'''
- motor je A nebo B<br />
[[Soubor:PICAXE-PICAXE04.jpg|200px]]
|
<source lang="qbasic">
rst:
w1 = %00000000
pins =  w1


''funkce:''
main:   if pinC.6 = 1 then rst
Zastaví otáčení motoru. Tento příkaz je ekvivalentní low 4 low 5 pro motor A, nebo low 6 low 7 pro
if pinC.7 = 1 then add
motor B.<br /><br />
goto main
add: pause 50 ' short delay
let b0 = b0 + 1
if b0 < 5 then main
pins =  w1    ' symbol 0
    w1 = w1 + 1
       
    goto main       
end
</source>
[ info]
|-


'''high''' (použitelné pro všechny typy PICAXE)<br />
| '''Servo'''
[[Soubor:PICAXE-PICAXE_servo.jpg|200px]]
|
<source lang="qbasic">


''syntaxe:''
servo 4, 150      ' start servo on pin four and move to center
HIGH pin
- pin je proměnná nebo konstanta, označuje výstup, který se použije<br />


''funkce:''
main:
Nastaví vysokou výstupní úroveň. (U PICAXE-08 zároveň nastaví vývod jako výstupní.)<br /><br />
    pause 500        ' wait a half second
    servopos 4, 200  ' move servo clockwise
    pause 500        ' wait a half second
    servopos 4, 150  ' move servo to center
    pause 500        ' wait a half second
    servopos 4, 100  ' move servo counter-clockwise
    pause 500        ' wait a half second
    servopos 4, 150  ' move servo to center


'''high portc''' (použitelné pro PICAXE: 28X, 40X)<br />
  goto main          ' return to main program loop


''syntaxe:''
</source>
HIGH PORTC pin
[http://picaxe.hobbizine.com/servo.html info]
- pin je proměnná nebo konstanta, označuje výstup na portu C, který se použije<br />
|-
 
|}
''funkce:''
Nastaví vysokou výstupní úroveň na výstupu portu C. (Pouze u kontrolérů 28X a 40X)<br /><br />
 
'''i2cslave''' (použitelné pro PICAXE: 18X, 28X, 40X)<br />
 
''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á.<br />
 
''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.<br /><br />
 
'''if .. then'''<br />
'''if .. and .. then'''<br />
'''if .. or .. then''' (použitelné pro všechny typy PICAXE)<br />
 
''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<br />
 
''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.<br /><br />
 
'''infrain''' (použitelné pro PICAXE: 18A, 18X, 28A, 28X, 40X)<br />
 
''syntaxe:''
INFRAIN<br />
 
''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.<br /><br />
 
'''infrain2''' (použitelné pro PICAXE: 08M)<br />
 
''syntaxe:''
INFRAIN2<br />
 
''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.<br /><br />
 
'''infraout''' (použitelné pro PICAXE: 08M)<br />
 
''syntaxe:''
INFRAOUT device,data<br />
 
''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.<br /><br />
 
'''input''' (použitelné pro PICAXE: 08, 08M)<br />
 
''syntaxe:''
INPUT pin
- pin je proměnná nebo konstanta, označuje použitý vývod<br />
 
''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í.<br /><br />
 
'''keyin''' (použitelné pro PICAXE: 18A, 18X, 28A, 28X, 40X)<br />
 
''syntaxe:''
KEYIN<br />
 
''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.<br /><br />
 
'''keyled''' (použitelné pro PICAXE: 18A, 18X, 28A, 28X, 40X)<br />
 
''syntaxe:''
KEYLED mask
- mask je proměnná nebo konstanta, určuje stav LED na klávesnici.<br />
 
''funkce:''
Rozsvěcí nebo zhasíná LED na klávesnici PC. Vyžaduje připojení klávesnice na vstupy input6 a input7.<br /><br />
 
'''let''' (použitelné pro všechny typy PICAXE)<br />
 
''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é<br />
 
''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.<br /><br />
 
'''let dirs =''' (použitelné pro PICAXE: 08, 08M)
'''let dirsc =''' (použitelné pro PICAXE: 28X, 40X)<br />
 
''syntaxe:''
{LET} dirs = value
{LET} dirsc = value
- value jsou proměnné nebo konstanty, jejichž hodnota je uložena do proměnné dirs (dirsc).<br />
 
''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.<br /><br />
 
'''let pins =''' (použitelné pro všechny typy PICAXE)
'''let pinsc =''' (použitelné pro PICAXE: 28X, 40X)<br />
 
''syntaxe:''
{LET} pins = value
{LET} pinsc = value
- value je proměnná nebo konstanta, jejíž hodnota je uložena do proměnné pins (pinsc).<br />
 
''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ě.<br /><br />
 
'''lookdown''' (použitelné pro všechny typy PICAXE)<br />
 
''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í.<br />
 
''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.<br /><br />
 
== www: ==
 
[http://www.picaxe.com/Software/PICAXE/PICAXE-Programming-Editor/ SW: PICAXE Programming Editor]
 
[http://www.picaxe.com/Software/PICAXE/AXEpad/ SW: AXEpad]
 
[http://programujte.com/clanek/2010082700-programovani-picaxe-uvod/ Programování PICAXE - Úvod]
 
[http://programujte.com/clanek/2010071900-programovani-picaxe-08m/ Programování PICAXE]
 
[http://programujte.com/clanek/2010090300-programovani-picaxe-1-lekce/ Programování PICAXE - 1. lekce]
 
[[Soubor:Icon-pdf.gif]] [http://www.hobbyrobot.cz/PDF/PICAXE_basic_man_cz.pdf PICAXE – příručka programátora]
 
[[Soubor:Icon-pdf.gif]] [http://www.hobbyrobot.cz/PDF/picaxe_technical_faq_cz.pdf Nejčastěji pokládané dotazy]
 
[[Soubor:Icon-pdf.gif]] [http://letsmakerobots.com/files/lmr-Start.pdf How to make your first Robot]
 
[[Soubor:Icon-pdf.gif]] [[:Media:PICAXE-2-220_man_cz.pdf|PICAXE – příručka programátora]]

Aktuální verze z 23. 2. 2021, 13:48

PICAXE

Download SW: PICAXE PICAXE AXEpad

Tutoriály:

Programování PICAXE


Syntaxe jazyka BASIC


Tasks
  1. Posuvný bod
  2. Změna jasu diody
  3. Using 7-Segment Displays
  4. Using the 74HC165 Shift Register
  5. H-Bridge DC Motor Control
  6. Connecting a Servo
  7. ELECTRONIC DICE
  8. PICAXE MICRO-ROBOT
  9. How to make your first Robot


PICAXE 18 z PIC16F88
Zapojení programovacího konektoru


Náměty:

PICAXE8 LED

init: 
      let b0 = 0 
 
main: 
      if pin3 = 1 then add       'i/o pin 3 = physical ic pin 4 
      if pin3 = 0 then low 1 
      endif 
      goto main 
 
add: 
      pause 100 
      let b0 = b0 + 1 
      if b0 < 5 then main 
      high 1                       'i/o pin 1 = physical pin 6 
      goto main

PICAXE Microprocessor Tutorial

PICAXE81

Soubor:PICAXE-PICAXE81.jpg

[ info]



LED blikání

Soubor:PICAXE LED.jpg

  
main:
  
  low 0      ' PIN 0 set OFF, LED will be shine
             ' linka 0 se vynuluje, LED bude svítit
  pause 500  ' wait 500 ms/ čekání 500 ms 
  high 0     ' PIN 0 set ON, LED will not be shine
   		 ' linka 0 se nastavi do log. "1", LED nebude svítit
  pause 500  ' čekání 200 ms

  GOTO main  'jump to label main
             'skok na návěští main
Běžící had

Chyba při vytváření náhledu: Chybějící soubor

  

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

  pause 1000 ' čekání 1 000 ms = 1 s
  low 0      ' linka 0 se vynuluje log. "0"
  pause 200  ' čekání 200 ms
  high 0     ' linka 0 se nastavi do log. "1"
  low 1 pause 200 high 1 'dále postupně přepíná s 200 ms pauzou
  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   'skok na návěští 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
PICAXE02

init:	b2 = 0	' reset targetbyte before the loop

' input C.0, active high, jump to ‘pushed’ label when = 1

myloop:	button C.0,1,200,100,b2,1,pushed	' jump to cont when C.0 = 1
	low B.7					' output off
	pause 10				' loop delay time
	goto myloop

pushed:	high B.7				' output on
	goto myloop

info

Push Switch

init:	let b0 = 0

main:	if pinC.7 = 1 then add
        low B.7
	goto main

add:	pause 100 		'short delay
	let b0 = b0 + 1
	if b0 < 5 then main
	high B.7
	goto main

info

For..Next

Soubor:PICAXE-Counter.jpg

symbol counter = b0 ‘ 'define the variable “counter”
symbol dp = 7 ‘       'define pin 7 with the name “dp”

main: 
   for counter = 1 to 15 ‘ 'start a for...next loop
     high dp ‘     ‘‘        'switch pin 7 high
     pause 500 ‘           'wait for 0.5 second
     low dp ‘              'switch pin 7 low
     pause 500 ‘           'wait for 0.5 second
   next counter ‘          'end of for...next loop
end ‘                      'end program

info

PICAXE03

symbol counter = b0  'define the variable counter
symbol dp = 7        'define pin 7 with the name dp
 
main: 
   FOR counter = 1 TO 20  'start a for...next loop
     pins = %11000000     ' symbol 0
     pause 100            'wait for 0.1 second
     pins = %11111001     ' symbol 1
     pause 100            
     pins = %10010100     ' symbol 2
     pause 100            
     pins = %10001111     ' symbol 3
     pause 100            
     pins = %10011001     ' symbol 4
     pause 100            
     pins = %11101101     ' symbol 5
     pause 100            

     
     NEXT counter         'end of for...next loop
END

[ info]

PICAXE04

symbol counter = b0  'define the variable counter
symbol dp = 7        'define pin 7 with the name dp
w1 = %00000000 

main: 
   FOR counter = 1 TO 255  'start a for...next loop
     pins =  w1    	   'start
     pause 100             'wait for 0.1 second
     w1 = w1 + 1           'incrementace
          
     NEXT counter         'end of for...next loop
END

[ info]

Counter

rst: 
	w1 = %00000000 
	pins =  w1

main:   if pinC.6 = 1 then rst
	if pinC.7 = 1 then add
	goto main
	
add:	pause 50		' short delay	
	let b0 = b0 + 1
	if b0 < 5 then main
	pins =  w1    		' symbol 0
     	w1 = w1 + 1
     	    
     	goto main        
end

[ info]

Servo

Soubor:PICAXE-PICAXE servo.jpg

servo 4, 150      ' start servo on pin four and move to center

main:
    pause 500         ' wait a half second
    servopos 4, 200   ' move servo clockwise
    pause 500         ' wait a half second
    servopos 4, 150   ' move servo to center
    pause 500         ' wait a half second
    servopos 4, 100   ' move servo counter-clockwise
    pause 500         ' wait a half second
    servopos 4, 150   ' move servo to center

  goto main           ' return to main program loop

info