8月29日 第1回
はじめての micro:bit
# Imports go at the top
from microbit import *
# Code in a 'while True:' loop repeats forever
while True:
display.show(Image.HEART)
sleep(1000)
display.scroll('Hello')
はじめての Maqueen ― LEDの点滅
# Imports go at the top from microbit import * # Code in a 'while True:' loop repeats forever while True: pin12.write_digital(1) sleep(1000) pin12.write_digital(0) sleep(1000)
時間が余ったときの Maqueen
from microbit import *
import music
music.play(music.ENTERTAINER)
9月5日 第2回 ロボット講座 ― Python Editor の使い方 ―
はじめての micro:bit(復習)
# Imports go at the top
from microbit import *
# Code in a 'while True:' loop repeats forever
while True:
display.show(Image.HEART_SMALL)
sleep(1000)
display.scroll('Rui')
LEDディスプレイに色々表示してみる
from microbit import *
display.show(Image.HEART)
sleep(500)
display.show(Image.HAPPY)
sleep(500)
display.show(Image.YES)
sleep(500)
while 文を使った指定回数の反復処理
from microbit import * count = 0 while count <= 5: display.scroll(count) count = count + 1
BBC micro:bit MicroPython ドキュメンテーション
https://microbit-micropython.readthedocs.io/ja/v2-docs/
このドキュメンテーションにはすべてのバージョンのmicro:bitの情報が含まれています。授業で使用しているmicro:bitはV1ですので、V2と書かれた項目には対応していません。
9月12日 第3回 ロボット講座 ― モータ制御 ―
右車輪を軸に時計回りに回転
from microbit import *
i2c.write(16, bytes([0, 0, 50]))
i2c.write(16, bytes([2, 0, 0]))
micro:Maqueen を走らせる
from microbit import *
i2c.write(16, bytes([0, 0, 50]))
i2c.write(16, bytes([2, 0, 50]))
sleep(500)
i2c.write(16, bytes([0, 0, 0]))
i2c.write(16, bytes([2, 0, 0]))
その場で180度回転(一部空白)
from microbit import *
i2c.write(16, bytes([0, , 50]))
i2c.write(16, bytes([2, , 50]))
sleep( )
i2c.write(16, bytes([0, 0, 0]))
i2c.write(16, bytes([2, 0, 0]))
9月19日 第4回 ロボット講座 ― 条件分岐 ―
光センサで光の強度を確認
from microbit import * while True: lv = display.read_light_level() print(lv) sleep(100)
はじめての分岐処理?
from microbit import * if display.read_light_level() > 50: display.show(Image.HAPPY) else: display.show(Image.SAD)
はじめての分岐処理!
from microbit import * while True: if display.read_light_level() > 50: display.show(Image.HAPPY) else: display.show(Image.SAD)
光の強度に応じてMaqueenを制御
from microbit import * while True: if display.read_light_level() > 50: i2c.write(16, bytes([0, 0, 50])) i2c.write(16, bytes([2, 1, 50])) else: i2c.write(16, bytes([0, 0, 0])) i2c.write(16, bytes([2, 1, 0]))
条件が複数ある分岐処理
from microbit import *
while True:
if button_a.is_pressed():
display.show(Image.HAPPY)
elif button_b.is_pressed():
display.show(Image.SAD)
else:
display.clear()
if 文の中にif 文(入れ子)
from microbit import *
while True:
if button_a.is_pressed():
if button_b.is_pressed():
display.show(Image.DUCK)
else:
display.clear()
else:
display.clear()
論理演算のある分岐処理
from microbit import *
while True:
if button_a.is_pressed() and button_b.is_pressed():
display.show(Image.DUCK)
else:
display.clear()
光の強度を時計の針で表示
from microbit import * while True: lv = display.read_light_level() lv = (lv / 255) * 11 lv = int(lv) display.show(Image.ALL_CLOCKS[lv]) sleep(100)
9月26日 第5回 ロボット講座 ― 超音波センサ ―
超音波センサで距離を測定
from microbit import * import machine pin2.read_digital() while True: pin1.write_digital(1) sleep(1) pin1.write_digital(0) t = machine.time_pulse_us(pin2, 1) d = int(t * 340 / 20000) print(t, d)
超音波センサで障害物で停止(解答例)
この下に課題の解答例が掲載されています。
from microbit import * import machine pin2.read_digital() while True: pin1.write_digital(1) sleep(1) pin1.write_digital(0) t = machine.time_pulse_us(pin2, 1) d = int(t * 340 / 20000) print(t, d) if d < 10: i2c.write(16, bytes([0, 0, 0])) i2c.write(16, bytes([2, 0, 0])) sleep(100) else: i2c.write(16, bytes([0, 0, 50])) i2c.write(16, bytes([2, 0, 50]))
超音波センサで障害物を回避(解答例)
この下に課題の解答例が掲載されています。
from microbit import * import machine pin2.read_digital() while True: pin1.write_digital(1) sleep(1) pin1.write_digital(0) t = machine.time_pulse_us(pin2, 1) d = int(t * 340 / 20000) print(t, d) if d < 10: i2c.write(16, bytes([0, 0, 50])) i2c.write(16, bytes([2, 1, 50])) sleep(1000) else: i2c.write(16, bytes([0, 0, 50])) i2c.write(16, bytes([2, 0, 50]))
10月3日 第6回 ロボット講座 ― 赤外線センサ ―
黒線を検出したら停止
from microbit import * while True: irL = pin13.read_digital() irR = pin14.read_digital() if irL == 0 and irR == 0: i2c.write(16, bytes([0, 0, 0])) i2c.write(16, bytes([2, 0, 0])) else: i2c.write(16, bytes([0, 0, 30])) i2c.write(16, bytes([2, 0, 30])) sleep(5)
ON-OFF制御ライントレース
from microbit import * while True: irL = pin13.read_digital() irR = pin14.read_digital() if irL == 0: i2c.write(16, bytes([0, 1, 30])) i2c.write(16, bytes([2, 0, 90])) else: i2c.write(16, bytes([0, 0, 90])) i2c.write(16, bytes([2, 1, 30])) sleep(5)
黒線の検出状態に応じて矢印を表示
from microbit import * while True: irL = pin13.read_digital() irR = pin14.read_digital() if irL == 0 and irR == 0: display.show(Image.ARROW_N) elif irL == 0: display.show(Image.ARROW_E) elif irR == 0: display.show(Image.ARROW_W) else: display.show(Image.ARROW_S)