PICAXE: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Bez shrnutí editace
Bez shrnutí editace
 
(Není zobrazeno 17 mezilehlých verzí od stejného uživatele.)
Řá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]] [[:Soubor:Ukáza programu.jpg|Ukázka]]
|
<source lang="qbasic"
main: 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 />
 
'''lookup''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
LOOKUP offset,(data0,data1...dataN),variable
- offset je proměnná nebo konstanta, určuje, která položka z data0 až dataN se uloží do proměnné
variable.
- data jsou proměnné nebo konstanty
- variable předává výslednou hodnotu, nebo zůstává beze změny<br />
 
''funkce:''
Vybírá z pole hodnot podle zadaného ofsetu (indexu). Pokud je ofset mimo rozsah uvedených hodnot,
výstupní proměnná zůstává beze změny.<br /><br />
 
'''low''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
LOW pin
- pin je proměnná nebo konstanta, označuje výstup, který se použije<br />
 
''funkce:''
Nastaví nízkou výstupní úroveň. (U PICAXE-08 zároveň nastaví vývod jako výstupní.)<br /><br />
 
'''low portc''' (pro PICAXE: 28X, 40X)<br />
 
''syntaxe:''
LOW PORTC pin
- pin je proměnná nebo konstanta, označuje výstup na portu C, který se použije<br />
 
''funkce:''
Nastaví nízkou výstupní úroveň na výstupu portu C. (Pouze u kontrolérů 28X a 40X)<br /><br />
 
'''nap''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
NAP period
- period je proměnná nebo konstanta, určující dobu, na kterou přejde kontroler do režimu s nízkou
spotřebou. Rozsah 0 až 7.
Doba zpoždění:
0 18 ms
1 32 ms
2 72 ms
3 144 ms
4 288 ms
5 576 ms
6 1,152 s
7 2,304 s<br />
 
''funkce:''
Uvede kontroler do spánku na dobu 2^period*18 ms. Tento příkaz využívá watchdog timer s omezenou
přesností časování. Delší prodlevy lze dosáhnout příkazem Sleep.<br /><br />
 
'''output''' (použitelné pro PICAXE: 08, 08M)<br />
 
''syntaxe:''
OUTPUT pin
- pin je proměnná nebo konstanta, označuje použitý vývod<br />
 
''funkce:''
Nastaví vývod jako výstupní. Funguje pouze u kontrolérů 08 a 08M.<br /><br />
 
'''pause''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
PAUSE milliseconds
- milliseconds je proměnná nebo konstanta v rozsahu 0 až 65535, určuje dobu v jednotkách
milisekund, po kterou bude tento příkaz trvat. Toto platí pouze při nastavené
hodinové frekvenci 4 MHz. Při nastavení hodinové frekvence 8 MHz se čas
zkracuje na 0,5 ms a na 0,25 ms při nastavení hodinové frekvence na 16 MHz.<br />
 
''funkce:''
Zastaví běh programu na určenou dobu. Přesnost je odvozena od hodinového kmitočtu kontroleru.<br /><br />
 
'''peek''' (použitelné pro PICAXE: 08M, 18, 18A, 18X, 28A, 28X, 40X)<br />
 
''syntaxe:''
PEEK location,variable
- location je proměnná nebo konstanta, určující adresu registru. Platné hodnoty jsou 0 až 255.
- variable je 8bitová proměnná, ve které je navrácen obsah registru na udané adrese.<br />
 
''funkce:''
Čte data z registrů mikrokontroleru. Umožňuje obnovit data uschovaná příkazem POKE.<br /><br />
 
'''play''' (použitelné pro PICAXE: 08M)<br />
 
''syntaxe:''
PLAY tune,LED
- tune je proměnná nebo konstanta (0 - 3) určující, která skladba se zahraje:
0 - Happy Birthday
1 - Jingle Bells
2 - Silent Night
3 - Rudolf the Red Nosed Reindeer
- LED je proměnná nebo konstanta (0 -3) určující způsob blikání připojených LED během hraní:
0 - bez blikání
1 - výstup 0 se zapíná a vypíná
2 - výstup 4 se zapíná a vypíná
3 - výstupy 0 a 4 se střídavě zapínají a vypínají<br />
 
''funkce:''
Přehrává skladbu, pouze na PICAXE-08M. Výstupní signál se objeví na výstupu 2.<br /><br />
 
'''poke''' (použitelné pro PICAXE: 08M, 18, 18A, 18X, 28A, 28X, 40X)<br />
 
''syntaxe:''
POKE location,data
- location je proměnná nebo konstanta určující adresu registru. Platné hodnoty jsou 0 až 255.
- data je proměnná nebo konstanta obsahující data, která budou zapsána na uvednou adresu.<br />
 
''funkce:''
Zapisuje data do registrů kontroleru. Umožňuje uložit proměnné b0 až b13 do paměti a dále využít
hardware prostřednictvím SFR (podle dokumentace v katalogovém listu příslušného kontroleru).<br /><br />
 
'''pulsin''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
PULSIN pin,state,variable
- pin je proměnná nebo konstanta (0-7), určující, který vývod bude použit.
- state je proměnná nebo konstanta (0 nebo 1), určující, která hrana se musí první objevit před
začátkem měření.
- variable obsahuje výsledek měření (1 - 65535) v jednotkách 10 μs.<br />
 
''funkce:''
Měří délku vstupního pulsu v jednotkách 10 μs. Jestliže se puls neobjeví do 0,65536 s, příkaz končí a
výsledek je 0. Pokud je proměnná state = 1, měří se délka pulsu ve vysoké úrovni, měření začíná
vzestupná hrana a končí sestupná hrana. Pokud je proměnná state = 0, měří se délka pulsu v nízké úrovni,
měření začíná sestupná hrana a končí vzestupná hrana. Výstupní proměnná se obvykle používá 16bitová.<br /><br />
 
'''pulsout''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
PULSOUT pin,time
- pin je proměnná nebo konstanta (0-7) určující, který vývod bude použit.
- time je proměnná nebo konstanta určující dobu trvání pulsu (0-65535) v jednotkách 10 μs.<br />
 
''funkce:''
Vyšle impuls zadané délky. Polarita impulsu je určená počátečním stavem pinu, během pulsu se stav
invertuje a po skončení se vrátí na původní úroveň.<br /><br />
 
'''pwm''' (použitelné pro PICAXE: 08, 08M)<br />
 
''syntaxe:''
PWM pin,duty,cycles
- pin je proměnná nebo konstanta (0-7), určující, který vývod bude použit.
- duty je proměnná nebo konstanta (0-255), určující činitel plnění PWM (dobu, kterou výstup
setrvá ve stavu 1)
- cycles je proměnná nebo konstanta (0-255), určující počet cyklů PWM, které na určeném vývodu
proběhnout. Každý cyklus trvá asi 5 ms.<br />
 
''funkce:''
Tento příkaz se používá zřídka, vhodnější je použít PWMOUT. Příkaz PWM ukončí svoji činnost po
zadaném počtu cyklů, neprobíhá na pozadí jako příkaz PWMOUT. Ve spojení s RC filtrem může
napodobit analogový výstup na kontroléru PICAXE-08. Příkaz musí být volán opakovaně.<br /><br />
 
'''pwmout''' (použitelné pro PICAXE: 08M, 18X, 28X, 40X)<br />
 
''syntaxe:''
PWMOUT pin,period,duty cycles
- pin je proměnná nebo konstanta určující, který vývod bude použit.
(pouze vývod 3 na 18X, pouze vývod 2 na 08M, vývod 1 nebo 2 na 28X a 40X)
- period je proměnná nebo konstanta (0-255) určující periodu pulsně šířkové modulace (PWM)
- duty je proměnná nebo konstanta (0-1023) určující činitel plnění PWM (dobu, kterou výstup
setrvá ve stavu 1)
Generuje pulsně modulovaný výstupní signál na zvoleném vývodu s využitím interního hardware
kontroleru. Tento signál zůstává aktivní i po ukončení příkazu PWMOUT. Pokud je třeba signál zrušit,
použije se příkaz PWMOUT s periodou 0.<br /><br />
 
'''random''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
RANDOM wordvariable
- wordvariable slouží zároveň jako výsledek i jako pracovní proměnná (násada) pro příští použití
příkazu. Musí být použita proměnná typu word a její hodnota se nesmí do dalšího
použití příkazu změnit.
Vytváří sekvenci pseudonáhodných čísel mezi 0 a 65535.<br /><br />
 
'''readadc''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
READADC channel,variable
- channel je proměnná nebo konstanta, určující vstup (0-7)
- variable obsahuje výsledek A/D převodu<br />
 
''funkce:''
Příkaz čte napětí na analogovém vstupu a převádí ho na osmibitové číslo. Pouze některé vstupy mohou
sloužit jako analogové. Na některých kontrolerech jsou analogové a digitální vstupy sdílené, mohou plnit
obě funkce.<br /><br />
 
'''readadc10''' (použitelné pro PICAXE: 08M, 18X, 28X, 40X)<br />
 
''syntaxe:''
READADC10 channel,wordvariable
- channel je proměnná nebo konstanta určující vstup (0-7)
- wordvariable obsahuje výsledek A/D převodu<br />
 
''funkce:''
Příkaz čte napětí na analogovém vstupu a převádí ho na 10bitové číslo, proto se výsledek musí ukládat do
16bitové proměnné. Pouze některé vstupy mohou sloužit jako analogové. Na některých kontrolerech jsou
analogové a digitální vstupy sdílené, mohou plnit obě funkce. Při použití příkazu DEBUG může
komunikace s PC narušit výsledek A/D převodu. V tom případě se doporučuje doplnit obvod o
Schottkyho diodu, která tento efekt potlačí.<br /><br />
 
'''readi2c''' (použitelné pro PICAXE: 18X, 28X, 40X)<br />
 
''syntaxe:''
READI2C location,(variable,...)
- location je proměnná nebo konstanta, určující adresu z které se bude číst.
- variable proměnné, které po provedení příkazu obsahují data přečtená z uvedené adresy.<br />
 
''funkce:''
Čte data z I2C sběrnice a ukládá je do proměnné (proměnných).
Adresa zařízení na I2C sběrnici je určená příkazem I2CSLAVE, location udává adresu v rámci tohoto
zařízení, například adresu dat v (externí) EEPROM nebo RTC obvodu apod.<br /><br />
 
'''read''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
READ location,variable
- location je proměnná nebo konstanta, určující 8bitovou adresu v interní EEPROM (0-255).
- variable obsahuje přečtená data<br />
 
''funkce:''
Příkaz READ načítá data z EEPROM. Obsah této paměti je zachován i po vypnutí napájení. Tato data
jsou zapisována při každém zavedení nového programu do mikrokontroléru, podle definice v příkazu
DATA/EEPROM. Za běhu programu mohou být tato data přepisována pomocí příkazu WRITE.<br /><br />
 
'''readtemp''' (použitelné pro PICAXE: 08M, 18A, 18X, 28A, 28X, 40X)<br />
 
''syntaxe:''
READTEMP pin,variable
- pin je proměnná nebo konstanta, určující, který vývod bude použit.
- variable obsahuje přečtená data (byte).<br />
 
''funkce:''
Příkaz přečte teplotu z digitálního čidla DS18B20 a uloží ji do proměnné. Převod může trvat až 750 ms.
Teplota se předává v celých stupních celsia. Senzor pracuje v rozmezí teplot -55 až +125°C.<br /><br />
 
'''readtemp12''' (použitelné pro PICAXE: 08M, 18X, 28X, 40X)<br />
 
''syntaxe:''
READTEMP12 pin,wordvariable
- pin je proměnná nebo konstanta, určující, který vývod bude použit.
- wordvariable obsahuje přečtená data (12 bitů).<br />
 
''funkce:''
Příkaz přečte teplotu v surovém 12 bitovém formátu z digitálního čidla DS18B20 a uloží ji do proměnné.
Převod může trvat až 750ms.<br /><br />
 
'''readowsn''' (použitelné pro PICAXE: 08M, 18A, 18X, 28A, 28X, 40X)<br />
 
syntaxe:
READOWSN pin
- pin je proměnná nebo konstanta (0-7), určující, který vývod bude použit.<br />
 
''funkce:''
Přečte sériové číslo z obvodu připojeného na jednodrátovou sběrnici firmy Dallas. Může číst například z
teplotního senzoru DS18B20, obvodu reálného času DS2415 nebo identifikačního obvodu DS1990A
(iButton). U DS1990A je sériové číslo také vypálené laserem na pouzdru obvodu.<br /><br />
 
'''return''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
RETURN<br />
 
''funkce:''
Návrat z podprogramu. Příkaz return smí být použit pouze po předchozím příkazu gosub. Příkaz navrací
běh programu do místa, odkud byl podprogram vyvolán. Pokud by byl příkaz return použit bez
předchozího gosub, program havaruje.<br /><br />
 
'''reverse''' (použitelné pro PICAXE: 08, 08M)<br />
 
''syntaxe:''
REVERSE pin
- pin je proměnná nebo konstanta, určující, který vývod bude použit.<br />
 
''funkce:''
Změní směr signálu na vývodu – původně vstup nastaví jako výstup a původně výstup nastaví jako vstup.
Funguje pouze u kontrolérů 08 a 08M.<br /><br />
 
'''serin''' (použitelné pro všechny typy PICAXE)<br />
 
''syntaxe:''
SERIN pin,baudmode,(qualifier,qualifier...)
SERIN pin,baudmode,(qualifier,qualifier...),{#}variable,{#}variable...
SERIN pin,baudmode,{#}variable,{#}variable...
- pin je proměnná nebo konstanta (0-7) určující, který vývod bude použit.
- baudmode je proměnná nebo konstanta (0-7) která určuje přenosovou rychlost a polaritu signálu.
Všechny přenosové rychlosti se vztahují k hodinovému kmitočtu 4 MHz:
T2400 normální polarita (True, klidová úroveň vysoká)
T1200 normální polarita
T600 normální polarita
T300/T4800 normální polarita
N2400 obrácená polarita (Negated, klidová úroveň nízká)
N1200 obrácená polarita
N600 obrácená polarita
N300/N4800 obrácená polarita
- data jsou proměnné nebo konstanty (0-255), jejichž hodnoty budou vyslány na určený
výstup.
Nepovinný znak # signalizuje, že se následující hodnota má odeslat jako číslo v desítkové soustavě,
nikoliv jako jeden znak. Textový řetězec může být uveden v uvozovkách („Hello“).
Vysílá sériová data ve formátu 8N1 (8 datových bitů, bez parity, 1 stop bit).<br />
 
''funkce:''
Příkaz serout vysílá data asynchronním sériovým přenosem na určeném výstupu mikrokontroléru. Nelze
ho použít s vývodem Sout, určeném ke komunikaci při zavádění nového programu. Na tomto vývodu
pracuje příkaz sertxd.
Pin určuje na kterém vstupu se budou sériová data vysílat.
Baudmode určuje přenosovou rychlost a polaritu signálu.<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