Operácie

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

Z SensorWiki

(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…“)
 
 
(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....