diff --git a/.github/makecode/blocks.png b/.github/makecode/blocks.png
index 30e028d..482fb2e 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
deleted file mode 100644
index 3ea8b98..0000000
Binary files a/.github/makecode/blocksdiff.png and /dev/null differ
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index 936b43f..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2021 Alexander Davis
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
diff --git a/README.md b/README.md
index f114122..2104502 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-> Open this page at [https://alexanderedavis.github.io/Binary-Light-Box/](https://alexanderedavis.github.io/Binary-Light-Box/)
+> Open this page at [https://alexanderedavis.github.io/binary-light-box/](https://alexanderedavis.github.io/binary-light-box/)
## Use as Extension
diff --git a/main.blocks b/main.blocks
index 9067326..188fb55 100644
--- a/main.blocks
+++ b/main.blocks
@@ -1 +1 @@
-DenaryitemcolumnscolumnValuesitem2sensePinsreadySerialPin.P0SerialPin.P16BaudRate.BaudRate9600sensePins0FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEcolumns0FALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEFALSEcolumnValues01248163264128256Denary01Denaryready0TRUEupdateNumberDenary0item0MINUS0columns1TRUEcolumns0itemDenary0columnValues0item1DenaryupdateColumnitem20MINUS0columns11item2TRUEsensePins0item2switchSensorsTRUEEQ0DigitalPin.P11sensePins0TRUETRUEEQ0DigitalPin.P10sensePins0FALSETRUEEQ0DigitalPin.P21sensePins1TRUETRUEEQ0DigitalPin.P20sensePins1FALSETRUEEQ0DigitalPin.P31sensePins2TRUETRUEEQ0DigitalPin.P30sensePins2FALSETRUEEQ0DigitalPin.P41sensePins3TRUETRUEEQ0DigitalPin.P40sensePins3FALSETRUEEQ0DigitalPin.P61sensePins4TRUETRUEEQ0DigitalPin.P60sensePins4FALSETRUEEQ0DigitalPin.P71sensePins5TRUETRUEEQ0DigitalPin.P70sensePins5FALSETRUEEQ0DigitalPin.P81sensePins6TRUETRUEEQ0DigitalPin.P80sensePins6FALSETRUEEQ0DigitalPin.P91sensePins7TRUETRUEEQ0DigitalPin.P90sensePins7FALSETRUEEQ0DigitalPin.P101sensePins8TRUETRUEEQ0DigitalPin.P100sensePins8FALSEupdateFlagcolumnflagTRUEflagcolumns0columnTRUETRUETRUEflagcolumns0columnFALSEupdateDisplaynumber/numberTRUEready
\ No newline at end of file
+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
diff --git a/main.py b/main.py
index a2e5c48..a7c5141 100644
--- a/main.py
+++ b/main.py
@@ -1,94 +1,91 @@
-function updateNumber () {
- Denary = 0
- for (let item = 0; item <= columns.length - 1; item++) {
- if (columns[item]) {
- Denary += columnValues[item]
- }
- }
- updateDisplay(Denary)
-}
-function updateColumn () {
- for (let item = 0; item <= columns.length - 1; item++) {
- updateFlag(item, sensePins[item])
- }
-}
-function switchSensors () {
- if (pins.digitalReadPin(DigitalPin.P1) == 1) {
- sensePins[0] = true
- } else if (pins.digitalReadPin(DigitalPin.P1) == 0) {
- sensePins[0] = false
- }
- if (pins.digitalReadPin(DigitalPin.P2) == 1) {
- sensePins[1] = true
- } else if (pins.digitalReadPin(DigitalPin.P2) == 0) {
- sensePins[1] = false
- }
- if (pins.digitalReadPin(DigitalPin.P3) == 1) {
- sensePins[2] = true
- } else if (pins.digitalReadPin(DigitalPin.P3) == 0) {
- sensePins[2] = false
- }
- if (pins.digitalReadPin(DigitalPin.P4) == 1) {
- sensePins[3] = true
- } else if (pins.digitalReadPin(DigitalPin.P4) == 0) {
- sensePins[3] = false
- }
- if (pins.digitalReadPin(DigitalPin.P6) == 1) {
- sensePins[4] = true
- } else if (pins.digitalReadPin(DigitalPin.P6) == 0) {
- sensePins[4] = false
- }
- if (pins.digitalReadPin(DigitalPin.P7) == 1) {
- sensePins[5] = true
- } else if (pins.digitalReadPin(DigitalPin.P7) == 0) {
- sensePins[5] = false
- }
- if (pins.digitalReadPin(DigitalPin.P8) == 1) {
- sensePins[6] = true
- } else if (pins.digitalReadPin(DigitalPin.P8) == 0) {
- sensePins[6] = false
- }
- if (pins.digitalReadPin(DigitalPin.P9) == 1) {
- sensePins[7] = true
- } else if (pins.digitalReadPin(DigitalPin.P9) == 0) {
- sensePins[7] = false
- }
- if (pins.digitalReadPin(DigitalPin.P10) == 1) {
- sensePins[8] = true
- } else if (pins.digitalReadPin(DigitalPin.P10) == 0) {
- sensePins[8] = false
- }
-}
-function updateFlag (column: number, flag: boolean) {
- if (flag) {
- columns[column] = true
- } else if (!(flag)) {
- columns[column] = false
- }
-}
-function updateDisplay (number: number) {
- serial.writeString("/")
- serial.writeNumber(number)
-}
-let Denary = 0
-let columnValues: number[] = []
-let columns: boolean[] = []
-let sensePins: boolean[] = []
-serial.redirect(
-SerialPin.P0,
-SerialPin.P16,
-BaudRate.BaudRate9600
-)
-sensePins = [false, false, false, false, false, false, false, false, false]
-columns = [false, false, false, false, false, false, false, false, false]
-columnValues = [1, 2, 4, 8, 16, 32, 64, 128, 256]
+def changes2(difference: number, flag: 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
+ 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
-updateDisplay(Denary)
-let ready = true
-basic.forever(function () {
- if (ready) {
- switchSensors()
- updateColumn()
- updateNumber()
- }
-})
+serial.redirect(SerialPin.P0, SerialPin.P16, BaudRate.BAUD_RATE9600)
+columns = [0, 0, 0, 0, 0, 0, 0, 0, 0]
+Denary = 0
+Display(Denary)
+
+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)
+basic.forever(on_forever)
diff --git a/main.ts b/main.ts
index 74c646a..f819b30 100644
--- a/main.ts
+++ b/main.ts
@@ -1,94 +1,62 @@
-function updateNumber () {
- Denary = 0
- for (let item = 0; item <= columns.length - 1; item++) {
- if (columns[item]) {
- Denary += columnValues[item]
- }
- }
- updateDisplay(Denary)
+function updateNumber (flag: number, column: number, difference: number) {
+ Denary += difference
+ columns[column] = flag
+ Display(Denary)
}
-function updateColumn () {
- for (let item2 = 0; item2 <= columns.length - 1; item2++) {
- updateFlag(item2, sensePins[item2])
- }
-}
-function switchSensors () {
- if (pins.digitalReadPin(DigitalPin.P1) == 1) {
- sensePins[0] = true
- } else if (pins.digitalReadPin(DigitalPin.P1) == 0) {
- sensePins[0] = false
- }
- if (pins.digitalReadPin(DigitalPin.P2) == 1) {
- sensePins[1] = true
- } else if (pins.digitalReadPin(DigitalPin.P2) == 0) {
- sensePins[1] = false
- }
- if (pins.digitalReadPin(DigitalPin.P3) == 1) {
- sensePins[2] = true
- } else if (pins.digitalReadPin(DigitalPin.P3) == 0) {
- sensePins[2] = false
- }
- if (pins.digitalReadPin(DigitalPin.P4) == 1) {
- sensePins[3] = true
- } else if (pins.digitalReadPin(DigitalPin.P4) == 0) {
- sensePins[3] = false
- }
- if (pins.digitalReadPin(DigitalPin.P6) == 1) {
- sensePins[4] = true
- } else if (pins.digitalReadPin(DigitalPin.P6) == 0) {
- sensePins[4] = false
- }
- if (pins.digitalReadPin(DigitalPin.P7) == 1) {
- sensePins[5] = true
- } else if (pins.digitalReadPin(DigitalPin.P7) == 0) {
- sensePins[5] = false
- }
- if (pins.digitalReadPin(DigitalPin.P8) == 1) {
- sensePins[6] = true
- } else if (pins.digitalReadPin(DigitalPin.P8) == 0) {
- sensePins[6] = false
- }
- if (pins.digitalReadPin(DigitalPin.P9) == 1) {
- sensePins[7] = true
- } else if (pins.digitalReadPin(DigitalPin.P9) == 0) {
- sensePins[7] = false
- }
- if (pins.digitalReadPin(DigitalPin.P10) == 1) {
- sensePins[8] = true
- } else if (pins.digitalReadPin(DigitalPin.P10) == 0) {
- sensePins[8] = false
- }
-}
-function updateFlag (column: number, flag: boolean) {
- if (flag) {
- columns[column] = true
- } else if (!(flag)) {
- columns[column] = false
- }
-}
-function updateDisplay (number: number) {
+function Display (number: number) {
serial.writeString("/")
serial.writeNumber(number)
}
let Denary = 0
-let columnValues: number[] = []
-let columns: boolean[] = []
-let sensePins: boolean[] = []
+let columns: number[] = []
+let ready = false
serial.redirect(
SerialPin.P0,
SerialPin.P16,
BaudRate.BaudRate9600
)
-sensePins = [false, false, false, false, false, false, false, false, false]
-columns = [false, false, false, false, false, false, false, false, false]
-columnValues = [1, 2, 4, 8, 16, 32, 64, 128, 256]
+columns = [0, 0, 0, 0, 0, 0, 0, 0, 0]
Denary = 0
-updateDisplay(Denary)
-let ready = true
+Display(Denary)
+ready = true
basic.forever(function () {
if (ready) {
- switchSensors()
- updateColumn()
- updateNumber()
+ if (pins.digitalReadPin(DigitalPin.P1) == 1 && columns[0] == 0) {
+ updateNumber(1, 0, 1)
+ } else if (pins.digitalReadPin(DigitalPin.P1) == 0 && columns[0] == 1) {
+ updateNumber(0, 0, -1)
+ } else if (pins.digitalReadPin(DigitalPin.P2) == 1 && columns[1] == 0) {
+ updateNumber(1, 1, 2)
+ } else if (pins.digitalReadPin(DigitalPin.P2) == 0 && columns[1] == 1) {
+ updateNumber(0, 1, -2)
+ } else if (pins.digitalReadPin(DigitalPin.P3) == 1 && columns[2] == 0) {
+ updateNumber(1, 2, 4)
+ } else if (pins.digitalReadPin(DigitalPin.P3) == 0 && columns[2] == 1) {
+ updateNumber(0, 2, -4)
+ } else if (pins.digitalReadPin(DigitalPin.P4) == 1 && columns[3] == 0) {
+ updateNumber(1, 3, 8)
+ } else if (pins.digitalReadPin(DigitalPin.P4) == 0 && columns[3] == 1) {
+ updateNumber(0, 3, -8)
+ } else if (pins.digitalReadPin(DigitalPin.P6) == 1 && columns[4] == 0) {
+ updateNumber(1, 4, 16)
+ } else if (pins.digitalReadPin(DigitalPin.P6) == 0 && columns[4] == 1) {
+ updateNumber(0, 4, -16)
+ } else if (pins.digitalReadPin(DigitalPin.P7) == 1 && columns[5] == 0) {
+ updateNumber(1, 5, 32)
+ } else if (pins.digitalReadPin(DigitalPin.P7) == 0 && columns[5] == 1) {
+ updateNumber(0, 5, -32)
+ } else if (pins.digitalReadPin(DigitalPin.P8) == 1 && columns[6] == 0) {
+ updateNumber(1, 6, 64)
+ } else if (pins.digitalReadPin(DigitalPin.P8) == 0 && columns[6] == 1) {
+ updateNumber(0, 6, -64)
+ } else if (pins.digitalReadPin(DigitalPin.P9) == 1 && columns[7] == 0) {
+ updateNumber(1, 7, 128)
+ } else if (pins.digitalReadPin(DigitalPin.P9) == 0 && columns[7] == 1) {
+ updateNumber(0, 7, -128)
+ } else if (pins.digitalReadPin(DigitalPin.P10) == 1 && columns[8] == 0) {
+ updateNumber(1, 8, 256)
+ } else if (pins.digitalReadPin(DigitalPin.P10) == 0 && columns[8] == 1) {
+ updateNumber(0, 8, -256)
+ }
}
})
diff --git a/pxt.json b/pxt.json
index 968d92b..0792477 100644
--- a/pxt.json
+++ b/pxt.json
@@ -1,9 +1,9 @@
{
"name": "Binary Box",
- "version": "2.0.0",
"description": "",
"dependencies": {
"core": "*",
+ "radio": "*",
"microphone": "*"
},
"files": [
@@ -12,7 +12,9 @@
"README.md",
"main.py"
],
- "testFiles": [],
+ "testFiles": [
+ "test.ts"
+ ],
"supportedTargets": [
"microbit"
],