diff --git a/.github/makecode/blocks.png b/.github/makecode/blocks.png
index 482fb2e..479691c 100644
Binary files a/.github/makecode/blocks.png and b/.github/makecode/blocks.png differ
diff --git a/.github/makecode/blocksdiff.png b/.github/makecode/blocksdiff.png
new file mode 100644
index 0000000..c1de5c7
Binary files /dev/null and b/.github/makecode/blocksdiff.png differ
diff --git a/main.blocks b/main.blocks
index 188fb55..dc9f030 100644
--- a/main.blocks
+++ b/main.blocks
@@ -1 +1 @@
-Denarycolumn4column128column256column1column16column32column64column8columnscolumnValueslistreadyready0FALSESerialPin.P0SerialPin.P16BaudRate.BaudRate9600columns0000000000Denary01Denaryready0TRUETRUEreadyTRUEANDTRUEEQ0DigitalPin.P11TRUEEQ0columns00101TRUEANDTRUEEQ0DigitalPin.P10TRUEEQ0columns0100-1TRUEANDTRUEEQ0DigitalPin.P21TRUEEQ0columns10112TRUEANDTRUEEQ0DigitalPin.P20TRUEEQ0columns1101-2TRUEANDTRUEEQ0DigitalPin.P31TRUEEQ0columns20124TRUEANDTRUEEQ0DigitalPin.P30TRUEEQ0columns2102-4TRUEANDTRUEEQ0DigitalPin.P41TRUEEQ0columns30138TRUEANDTRUEEQ0DigitalPin.P40TRUEEQ0columns3103-8TRUEANDTRUEEQ0DigitalPin.P61TRUEEQ0columns401416TRUEANDTRUEEQ0DigitalPin.P60TRUEEQ0columns4104-16TRUEANDTRUEEQ0DigitalPin.P71TRUEEQ0columns501532TRUEANDTRUEEQ0DigitalPin.P70TRUEEQ0columns5105-32TRUEANDTRUEEQ0DigitalPin.P81TRUEEQ0columns601664TRUEANDTRUEEQ0DigitalPin.P80TRUEEQ0columns6106-64TRUEANDTRUEEQ0DigitalPin.P91TRUEEQ0columns7017128TRUEANDTRUEEQ0DigitalPin.P90TRUEEQ0columns7107-128TRUEANDTRUEEQ0DigitalPin.P101TRUEEQ0columns8018256TRUEANDTRUEEQ0DigitalPin.P100TRUEEQ0columns8108-256updateNumberflagcolumndifferenceDenary0differencecolumns0columnflag1DenaryDisplaynumber/number
\ No newline at end of file
+DenarycolumnsreadySerialPin.P0SerialPin.P16BaudRate.BaudRate9600columns0000000000Denary01Denaryready0TRUEupdateNumberflagcolumndifferenceDenary0differencecolumns0columnflag1DenaryDisplaynumber/numberTRUEreadyTRUEANDTRUEEQ0DigitalPin.P11TRUEEQ0columns00101TRUEANDTRUEEQ0DigitalPin.P10TRUEEQ0columns0100-1TRUEANDTRUEEQ0DigitalPin.P21TRUEEQ0columns10112TRUEANDTRUEEQ0DigitalPin.P20TRUEEQ0columns1101-2TRUEANDTRUEEQ0DigitalPin.P31TRUEEQ0columns20124TRUEANDTRUEEQ0DigitalPin.P30TRUEEQ0columns2102-4TRUEANDTRUEEQ0DigitalPin.P41TRUEEQ0columns30138TRUEANDTRUEEQ0DigitalPin.P40TRUEEQ0columns3103-8TRUEANDTRUEEQ0DigitalPin.P61TRUEEQ0columns401416TRUEANDTRUEEQ0DigitalPin.P60TRUEEQ0columns4104-16TRUEANDTRUEEQ0DigitalPin.P71TRUEEQ0columns501532TRUEANDTRUEEQ0DigitalPin.P70TRUEEQ0columns5105-32TRUEANDTRUEEQ0DigitalPin.P81TRUEEQ0columns601664TRUEANDTRUEEQ0DigitalPin.P80TRUEEQ0columns6106-64TRUEANDTRUEEQ0DigitalPin.P91TRUEEQ0columns7017128TRUEANDTRUEEQ0DigitalPin.P90TRUEEQ0columns7107-128TRUEANDTRUEEQ0DigitalPin.P101TRUEEQ0columns8018256TRUEANDTRUEEQ0DigitalPin.P100TRUEEQ0columns8108-256
\ No newline at end of file
diff --git a/main.py b/main.py
index a7c5141..5338fea 100644
--- a/main.py
+++ b/main.py
@@ -1,91 +1,55 @@
-def changes2(difference: number, flag: number):
+def updateNumber(flag: number, column: number, difference: number):
global Denary
Denary += difference
- Display(Denary)
-def changes4(difference: number, flag: number):
- global Denary
- Denary += difference
- column4 = flag
- Display(Denary)
-def changes128(difference: number, flag: number):
- global Denary
- Denary += difference
- column128 = flag
+ columns[column] = flag
Display(Denary)
def Display(number: number):
serial.write_string("/")
serial.write_number(number)
-def changes256(difference: number, flag: number):
- global Denary
- Denary += difference
- column256 = flag
- Display(Denary)
-def changes1(difference: number, flag: number):
- global Denary
- Denary += difference
- column1 = flag
- Display(Denary)
-def changes16(difference: number, flag: number):
- global Denary
- Denary += difference
- column16 = flag
- Display(Denary)
-def changes32(difference: number, flag: number):
- global Denary
- Denary += difference
- column32 = flag
- Display(Denary)
-def changes64(difference: number, flag: number):
- global Denary
- Denary += difference
- column64 = flag
- Display(Denary)
-def changes8(difference: number, flag: number):
- global Denary
- Denary += difference
- column8 = flag
- Display(Denary)
Denary = 0
+columns: List[number] = []
serial.redirect(SerialPin.P0, SerialPin.P16, BaudRate.BAUD_RATE9600)
columns = [0, 0, 0, 0, 0, 0, 0, 0, 0]
Denary = 0
Display(Denary)
+ready = True
def on_forever():
- if pins.digital_read_pin(DigitalPin.P1) == 1 and columns[0] == 0:
- changes1(1, 1)
- elif pins.digital_read_pin(DigitalPin.P1) == 0 and columns[0] == 1:
- changes1(-1, 0)
- elif pins.digital_read_pin(DigitalPin.P2) == 1 and columns[1] == 0:
- changes2(2, 1)
- elif pins.digital_read_pin(DigitalPin.P2) == 0 and columns[1] == 1:
- changes2(-2, 0)
- elif pins.digital_read_pin(DigitalPin.P3) == 1 and columns[2] == 0:
- changes4(4, 1)
- elif pins.digital_read_pin(DigitalPin.P3) == 0 and columns[2] == 1:
- changes4(-4, 0)
- elif pins.digital_read_pin(DigitalPin.P4) == 1 and columns[3] == 0:
- changes8(8, 1)
- elif pins.digital_read_pin(DigitalPin.P4) == 0 and columns[3] == 1:
- changes8(-8, 0)
- elif pins.digital_read_pin(DigitalPin.P6) == 1 and columns[4] == 0:
- changes16(16, 1)
- elif pins.digital_read_pin(DigitalPin.P6) == 0 and columns[4] == 1:
- changes16(-16, 0)
- elif pins.digital_read_pin(DigitalPin.P7) == 1 and columns[5] == 0:
- changes32(32, 1)
- elif pins.digital_read_pin(DigitalPin.P7) == 0 and columns[5] == 1:
- changes32(-32, 0)
- elif pins.digital_read_pin(DigitalPin.P8) == 1 and columns[6] == 0:
- changes64(64, 1)
- elif pins.digital_read_pin(DigitalPin.P8) == 0 and columns[6] == 1:
- changes64(-64, 0)
- elif pins.digital_read_pin(DigitalPin.P9) == 1 and columns[7] == 0:
- changes128(128, 1)
- elif pins.digital_read_pin(DigitalPin.P9) == 0 and columns[7] == 1:
- changes128(-128, 0)
- elif pins.digital_read_pin(DigitalPin.P10) == 1 and columns[8] == 0:
- changes256(256, 1)
- elif pins.digital_read_pin(DigitalPin.P10) == 0 and columns[0] == 1:
- changes256(-256, 0)
+ if ready:
+ if pins.digital_read_pin(DigitalPin.P1) == 1 and columns[0] == 0:
+ updateNumber(1, 0, 1)
+ elif pins.digital_read_pin(DigitalPin.P1) == 0 and columns[0] == 1:
+ updateNumber(0, 0, -1)
+ elif pins.digital_read_pin(DigitalPin.P2) == 1 and columns[1] == 0:
+ updateNumber(1, 1, 2)
+ elif pins.digital_read_pin(DigitalPin.P2) == 0 and columns[1] == 1:
+ updateNumber(0, 1, -2)
+ elif pins.digital_read_pin(DigitalPin.P3) == 1 and columns[2] == 0:
+ updateNumber(1, 2, 4)
+ elif pins.digital_read_pin(DigitalPin.P3) == 0 and columns[2] == 1:
+ updateNumber(0, 2, -4)
+ elif pins.digital_read_pin(DigitalPin.P4) == 1 and columns[3] == 0:
+ updateNumber(1, 3, 8)
+ elif pins.digital_read_pin(DigitalPin.P4) == 0 and columns[3] == 1:
+ updateNumber(0, 3, -8)
+ elif pins.digital_read_pin(DigitalPin.P6) == 1 and columns[4] == 0:
+ updateNumber(1, 4, 16)
+ elif pins.digital_read_pin(DigitalPin.P6) == 0 and columns[4] == 1:
+ updateNumber(0, 4, -16)
+ elif pins.digital_read_pin(DigitalPin.P7) == 1 and columns[5] == 0:
+ updateNumber(1, 5, 32)
+ elif pins.digital_read_pin(DigitalPin.P7) == 0 and columns[5] == 1:
+ updateNumber(0, 5, -32)
+ elif pins.digital_read_pin(DigitalPin.P8) == 1 and columns[6] == 0:
+ updateNumber(1, 6, 64)
+ elif pins.digital_read_pin(DigitalPin.P8) == 0 and columns[6] == 1:
+ updateNumber(0, 6, -64)
+ elif pins.digital_read_pin(DigitalPin.P9) == 1 and columns[7] == 0:
+ updateNumber(1, 7, 128)
+ elif pins.digital_read_pin(DigitalPin.P9) == 0 and columns[7] == 1:
+ updateNumber(0, 7, -128)
+ elif pins.digital_read_pin(DigitalPin.P10) == 1 and columns[8] == 0:
+ updateNumber(1, 8, 256)
+ elif pins.digital_read_pin(DigitalPin.P10) == 0 and columns[8] == 1:
+ updateNumber(0, 8, -256)
basic.forever(on_forever)
diff --git a/main.ts b/main.ts
index f819b30..f6a34fa 100644
--- a/main.ts
+++ b/main.ts
@@ -1,25 +1,23 @@
-function updateNumber (flag: number, column: number, difference: number) {
+function updateNumber(flag: number, column: number, difference: number) {
+
Denary += difference
columns[column] = flag
Display(Denary)
}
-function Display (number: number) {
+
+function Display(number: number) {
serial.writeString("/")
serial.writeNumber(number)
}
+
let Denary = 0
-let columns: number[] = []
-let ready = false
-serial.redirect(
-SerialPin.P0,
-SerialPin.P16,
-BaudRate.BaudRate9600
-)
+let columns : number[] = []
+serial.redirect(SerialPin.P0, SerialPin.P16, BaudRate.BaudRate9600)
columns = [0, 0, 0, 0, 0, 0, 0, 0, 0]
Denary = 0
Display(Denary)
-ready = true
-basic.forever(function () {
+let ready = true
+basic.forever(function on_forever() {
if (ready) {
if (pins.digitalReadPin(DigitalPin.P1) == 1 && columns[0] == 0) {
updateNumber(1, 0, 1)
@@ -58,5 +56,7 @@ basic.forever(function () {
} else if (pins.digitalReadPin(DigitalPin.P10) == 0 && columns[8] == 1) {
updateNumber(0, 8, -256)
}
+
}
+
})
diff --git a/pxt.json b/pxt.json
index 0792477..7544cc5 100644
--- a/pxt.json
+++ b/pxt.json
@@ -1,9 +1,9 @@
{
"name": "Binary Box",
+ "version": "1.0.0",
"description": "",
"dependencies": {
"core": "*",
- "radio": "*",
"microphone": "*"
},
"files": [
@@ -12,11 +12,9 @@
"README.md",
"main.py"
],
- "testFiles": [
- "test.ts"
- ],
+ "testFiles": [],
"supportedTargets": [
"microbit"
],
- "preferredEditor": "blocksprj"
+ "preferredEditor": "pyprj"
}