Operácie

Datalogger cez rádiový prenos: Rozdiel medzi revíziami

Zo stránky SensorWiki

Balogh (diskusia | príspevky)
Vytvorená stránka „Žmurkajúci smajlík je jednoduchá animácia, v ktorej sa striedajú dva smajlíky - jeden normálny a jeden so zhasnutým očkom. Je to zároveň príklad na vytvoren…“
 
Balogh (diskusia | príspevky)
Bez shrnutí editace
 
(2 medziľahlé úpravy od rovnakého používateľa nie sú zobrazené.)
Riadok 1: Riadok 1:
Žmurkajúci smajlík je jednoduchá animácia, v ktorej sa striedajú dva smajlíky - jeden normálny a jeden so zhasnutým očkom. Je to zároveň príklad na vytvorenie vlastného obrázku, pretože ten jednooký sa medzi predpripravenými obrázkami nenachádza.  
Toto je základný príklad na bezdrôtový prenos dát. Jeden micro:bit je napájaný z batérie a vykonáva samotné merania, tie pošle cez rádiový kanál druhému micro:bitu, ktorý je pripojený k počítaču a všetky dáta, ktoré prijme hneď prepošle po sériovej linke (resp. USB) do počítača, kde ich môžeme sledovať buď priamo v MakeCode prostredí, alebo inom terminálovom programe.  


<gallery heights=200px mode="packed">  <!-- slideshow? -->
 
Image:microbit-WinkSmiley.png|''Program v blokovom jazyku''
<gallery heights=300px mode="packed">  <!-- slideshow? -->
Image:microbit-WinkSmileyRun.png|''a jeho funkcia''
Image:microbit-serialRadioNumberTx.png|''Program v blokovom jazyku pre vysielač''
Image:microbit-serialRadioNumberRx.png|''a pre prijímač''
</gallery>
</gallery>


Riadok 9: Riadok 10:
<tabs>
<tabs>
<tab name="Javascript"><source lang="javascript">
<tab name="Javascript"><source lang="javascript">
   
radio.onReceivedNumber(function on_received_number(receivedNumber: number) {
basic.forever(function () {
     serial.writeLine("" + ("" + receivedNumber))
     basic.showIcon(IconNames.Happy)
})
    basic.pause(100)
 
     basic.showLeds(`
let AccX = 0
        . . . . .
radio.setGroup(1)
        . # . . .
 
        . . . . .
basic.forever(function on_forever() {
        # . . . #
     radio.sendString("" + ("" + control.millis()) + "," + ("" + AccX))
        . # # # .
    led.toggle(2, 2)
        `)
     basic.pause(100)
     basic.pause(100)
})
})
Riadok 25: Riadok 25:
</source></tab>
</source></tab>
<tab name="MS Python"><source lang="python" style="background: LightBlue;">
<tab name="MS Python"><source lang="python" style="background: LightBlue;">
def on_received_number(receivedNumber):
    serial.write_line("" + str((receivedNumber)))
radio.on_received_number(on_received_number)
AccX = 0
radio.set_group(1)
def on_forever():
def on_forever():
     basic.show_icon(IconNames.HAPPY)
     global AccX
     basic.pause(500)
     AccX = input.acceleration(Dimension.X)
     basic.show_leds("""
     radio.send_number(AccX)
        . . . . .
        . # . . .
        . . . . .
        # . . . #
        . # # # .
        """)
     basic.pause(100)
     basic.pause(100)
   
basic.forever(on_forever)
basic.forever(on_forever)


</source></tab>
</source></tab>
<tab name="uPython"><source lang="python" style="background: LightBlue;">
<tab name="uPython"><source lang="python" style="background: LightBlue;">
from microbit import *


while True:
ToDo
  display.show(Image.HAPPY)   
  sleep(1000)
  display.show(Image('00000:'
                    '09000:'
                    '00000:'
                    '90009:'
                    '09990'))
  sleep(200)


</source></tab>
</source></tab>
<tab name="Arduino C++"><syntaxhighlight lang=c style="background: Cornsilk">
</tabs>
#include <Adafruit_Microbit.h>


Adafruit_Microbit_Matrix microbit;


const uint8_t SMILE_1[] =
Nasleduje drobná modifikácia, kde nebudeme posielať číslo, ale celý reťazec s viacerými meraniami, v tomto prípade oddelenými čiarkou.
{ B00000,
  B01010,
  B00000,
  B10001,
  B01110,
};


const uint8_t SMILE_2[] =
{ B00000,
  B01000,
  B00000,
  B10001,
  B01110,
};


void setup() {
<gallery heights=300px mode="packed">  <!-- slideshow? -->
  microbit.begin();
Image:microbit-serialRadioStringTx.png|''Program v blokovom jazyku pre vysielač''
}
Image:microbit-serialRadioStringRx.png|''a pre prijímač''
</gallery>


void loop() {
  microbit.show(SMILE_1);
  delay(1000);
  microbit.show(SMILE_2);
  delay(200);
}</syntaxhighlight></tab>
<tab name="mBED C++"><syntaxhighlight lang=c style="background: Cornsilk">
#include "MicroBit.h"


MicroBit uBit;
<tabs>
<tab name="Javascript"><source lang="javascript">
radio.onReceivedString(function on_received_string(receivedString: string) {
    serial.writeLine(receivedString)
})


MicroBitImage SMILEY1("0,1,0,1,0 \n"
let AccX = 0
                      "0,1,0,1,0 \n"
radio.setGroup(1)
                      "0,0,0,0,0 \n"
                      "1,0,0,0,1 \n"
                      "0,1,1,1,0 \n");


MicroBitImage SMILEY2("0,0,0,1,0 \n"
basic.forever(function on_forever() {
                      "0,0,0,1,0 \n"
   
                      "0,0,0,0,0 \n"
    AccX = input.acceleration(Dimension.X)
                      "1,0,0,0,1 \n"
    radio.sendNumber(AccX)
                      "0,1,1,1,0 \n");
    basic.pause(100)
})
 
</source></tab>
<tab name="MS Python"><source lang="python" style="background: LightBlue;">


int main()
def on_received_number(receivedNumber):
{
    serial.write_line("" + str((receivedNumber)))
  uBit.init();  // setup
radio.on_received_number(on_received_number)
 
  while(1)      // loop
  {
    uBit.display.print(SMILEY1);
    uBit.sleep(1000);
    uBit.display.print(SMILEY2);
    uBit.sleep(200);
  }


}</syntaxhighlight></tab>
def on_received_string(receivedString):
    serial.write_line(receivedString)
radio.on_received_string(on_received_string)
 
AccX = 0
radio.set_group(1)
 
def on_forever():
    radio.send_string("" + str(control.millis()) + "," + str(AccX))
    led.toggle(2, 2)
    basic.pause(100)
basic.forever(on_forever)
 
def on_forever2():
    global AccX
    AccX = input.acceleration(Dimension.X)
    radio.send_number(AccX)
    basic.pause(100)
basic.forever(on_forever2)
 
 
</source></tab>
<tab name="uPython"><source lang="python" style="background: LightBlue;">
 
ToDo
 
</source></tab>
</tabs>
</tabs>


Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]
Späť na [[Kurz micro:bit#Zbierka príkladov|zoznam príkladov....]]

Aktuálna revízia z 17:53, 18. marec 2024

Toto je základný príklad na bezdrôtový prenos dát. Jeden micro:bit je napájaný z batérie a vykonáva samotné merania, tie pošle cez rádiový kanál druhému micro:bitu, ktorý je pripojený k počítaču a všetky dáta, ktoré prijme hneď prepošle po sériovej linke (resp. USB) do počítača, kde ich môžeme sledovať buď priamo v MakeCode prostredí, alebo inom terminálovom programe.



radio.onReceivedNumber(function on_received_number(receivedNumber: number) {
    serial.writeLine("" + ("" + receivedNumber))
})

let AccX = 0
radio.setGroup(1)

basic.forever(function on_forever() {
    radio.sendString("" + ("" + control.millis()) + "," + ("" + AccX))
    led.toggle(2, 2)
    basic.pause(100)
})
def on_received_number(receivedNumber):
    serial.write_line("" + str((receivedNumber)))
radio.on_received_number(on_received_number)

AccX = 0
radio.set_group(1)

def on_forever():
    global AccX
    AccX = input.acceleration(Dimension.X)
    radio.send_number(AccX)
    basic.pause(100)
basic.forever(on_forever)
ToDo


Nasleduje drobná modifikácia, kde nebudeme posielať číslo, ale celý reťazec s viacerými meraniami, v tomto prípade oddelenými čiarkou.



radio.onReceivedString(function on_received_string(receivedString: string) {
    serial.writeLine(receivedString)
})

let AccX = 0
radio.setGroup(1)

basic.forever(function on_forever() {
    
    AccX = input.acceleration(Dimension.X)
    radio.sendNumber(AccX)
    basic.pause(100)
})
def on_received_number(receivedNumber):
    serial.write_line("" + str((receivedNumber)))
radio.on_received_number(on_received_number)

def on_received_string(receivedString):
    serial.write_line(receivedString)
radio.on_received_string(on_received_string)

AccX = 0
radio.set_group(1)

def on_forever():
    radio.send_string("" + str(control.millis()) + "," + str(AccX))
    led.toggle(2, 2)
    basic.pause(100)
basic.forever(on_forever)

def on_forever2():
    global AccX
    AccX = input.acceleration(Dimension.X)
    radio.send_number(AccX)
    basic.pause(100)
basic.forever(on_forever2)
ToDo


Späť na zoznam príkladov....