Освой MicroPython играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

M5Stack: Двоичные числа (MicroPython)

По мотивам видео от M5Stack Micropython tutorial: Computer science basics - M5Stack Binary Calculator

Я пытался повторить в точности код из видео, но почему-то пример не работал. Пришлось немного переписать код.

Приложение позволяет вводить число в двоичном виде. Первая кнопка вводит 0, вторая 1. Третья кнопка конвертирует число в десятичный, шестнадцатеричный и символьный вид.


from m5stack import *
from m5ui import *
from uiflow import *

binaryNum = []

label0 = M5TextBox(10, 70, "", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label1 = M5TextBox(10, 100, "", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label2 = M5TextBox(10, 130, "", lcd.FONT_Default, 0xFFFFFF, rotate=0)
label3 = M5TextBox(10, 160, "", lcd.FONT_Default, 0xFFFFFF, rotate=0)
lcd.clear()

label0.setText(str(binaryNum))

btnA.wasPressed(buttonA_wasPressed)
btnB.wasPressed(buttonB_wasPressed)
btnC.wasPressed(buttonC_wasPressed)

def buttonA_wasPressed():
    binaryNum.append(0)
    label0.setText(str(binaryNum))
    pass

def buttonB_wasPressed():
    binaryNum.append(1)
    label0.setText(str(binaryNum))
    pass

def buttonC_wasPressed():
    value = 0

    for i in range(len(binaryNum)):
        digit = binaryNum.pop()
        if digit == 1:
            value = value + pow(2, i)
            label1.setText(str(value))
            label2.setText(str(hex(value)))
            label3.setText(str(chr(value)))
    pass
Binary Converter
Реклама