Denníček - december 2022: Rozdiel medzi revíziami

Zo stránky Robotický krúžok
Skočit na navigaci Skočit na vyhledávání
Bez shrnutí editace
dBez shrnutí editace
Riadok 27: Riadok 27:
Tadeáš naprogramoval SPIKE kalkulačku v mikropythone:
Tadeáš naprogramoval SPIKE kalkulačku v mikropythone:


<syntaxhighlight>
<syntaxhighlight lang="python">
from spike import PrimeHub, LightMatrix, Button, StatusLight, ForceSensor, MotionSensor, Speaker, ColorSensor, App, DistanceSensor, Motor, MotorPair
from spike import PrimeHub, LightMatrix, Button, StatusLight, ForceSensor, MotionSensor, Speaker, ColorSensor, App, DistanceSensor, Motor, MotorPair
from spike.control import wait_for_seconds, wait_until, Timer
from spike.control import wait_for_seconds, wait_until, Timer

Verzia z 16:11, 9. december 2022

Nové úlohy:

  1. počítanie čiar: robot sa rozbehne, vždy keď prejde ponad čiernu čiaru zapíska, a keď sa dostane k prekážke, zastane a potom znovu zapíska toľkokrát, koľko čiar prešiel
  2. zapamätanie rytmu: používateľ stláča tlačidlo v nejakom rytme, keď ho prestane stláčať, tak robot odpípa ten istý rytmus naspäť
  3. rozpoznávanie vzorov: robot prejde ponad čierne čiary, ktoré sa od seba nachádzajú v rôznych vzdialenostiach, príkad: |...|..|.|.|......| a zapamätá si tento vzor. Potom sa rovnakým spôsobom (po stlačení šípky vpravo) naučí druhý podobný vzor, kde sú čiary v iných rozostupoch (je ich rovnako veľa). Napokon robot načíta tretí vzor - ktorý sa buď podobá na prvý z nich alebo na druhý z nich alebo ani na jeden - a podľa toho oznámi na displeji číslo 1, 2, alebo nič.

Benjamin s Michalom nakoniec vyriešili úlohu o metre:

Program metro.png

Katka, Barbora a Matej pokračovali s Arduinom, tu je semafor, ktorý naprogramovala Katka:

Arduino praca.jpg

Chlapci vylepšovali lokomotívu

Lokomotiva2.jpg

Mišo s Brunom pokračovali na stavbe plotra.


Tadeáš naprogramoval SPIKE kalkulačku v mikropythone:

from spike import PrimeHub, LightMatrix, Button, StatusLight, ForceSensor, MotionSensor, Speaker, ColorSensor, App, DistanceSensor, Motor, MotorPair
from spike.control import wait_for_seconds, wait_until, Timer
from math import *
from time import *

hub = PrimeHub()
number = 0

page = 0

function = ''
selNum1 = 0
selNum2 = 0


def plus(a, b):
    return a + b

def minus(a, b):
    return a - b

def multiply(a, b):
    return a * b

def divide(a, b):
    return a / b


operations = ['-', '+', '*', '/']
calculations = [minus, plus, multiply, divide]




def show_number(nmr):
    hub.light_matrix.write(str(nmr))


def show_operation(oper):
    hub.light_matrix.write(operations[oper])

def selectSomething(max, showFn):
    page = 0
    showFn(page)
    while True:
        if hub.left_button.is_pressed():
            while hub.left_button.is_pressed():
                if hub.right_button.is_pressed():
                    while hub.left_button.is_pressed() or hub.right_button.is_pressed():
                        continue
                    return page
            if page > 0:
                page -= 1
                showFn(page)

        if hub.right_button.is_pressed():
            while hub.right_button.is_pressed():
                if hub.left_button.is_pressed():
                    while hub.left_button.is_pressed() or hub.right_button.is_pressed():
                        continue
                    return page
            if page < max:
                page +=1
                showFn(page)

selNum1 = selectSomething(9, show_number)
operation = selectSomething(3, show_operation)
selNum2 = selectSomething(9, show_number)

result = calculations[operation](selNum1, selNum2)
hub.light_matrix.write("Result:")
hub.light_matrix.write(str(result))