ืึทื ืึทืจืืืงื ืืืขืื ืืื ืฆื ืฉืึทืคึฟื ืึท ืคึผืจืึธืืืจืึทืืึทืืึทื ืืึธืืืง ืงืึธื ืืจืึธืืืขืจ ืคึฟืื ืึท ืืืืืง ืืื ืขืืืฉ ืืืื. ืึทืืึท ืึท ืืืื ืืืขื ืืขืคึฟืื ืขื ืืืึทื ื ืืฆื ืืื ืฉืืื ืึธืืึทืืืืฉืึทื ืืื ืืื ืคึผืจืึทืงืืืฉ ืงืืืกื ืืื ืฉืืืข ืงืึธืืคึผืืืืขืจ ืืืืกื ืฉืึทืคึฟื.
ืคึฟืึทืจ ืืขืจืืึธื ืขื, ืื Sonoff Basic ืคึผืจืึธืืจืึทื ืึทืจืืขื ืืืจื ืคืขืืืงืืึทื ืืื ืึท ืจืืจืขืืืืืง ืึทืคึผืืึทืงืืืฉืึทื ืืืจื ืึท ืืื ืขืืืฉ ืืืึธืืงื ืืื ืกื; ื ืึธื ืื ืคืืจืืขืืืืื ืืึธืืืคืืงืึทืืืึธื, ืึทืืข ืืืืึทืืขืจ ืื ืืขืจืึทืงืฉืึทื ืืื ืืขื ืืืื ืืืขื ืืืื ืืขืืืขื ืืื ืืขื ืืืขืืขืจืขืจ.
ืึธืคึผืืืืืื ื I. ืงืึทื ืขืงืืื ื Sonoff ืฆื ืื MGT24 ืืื ืกื
ืฉืจืื 1: ืฉืึทืคึฟื ืึท ืงืึธื ืืจืึธื ืืึทืคืืืข
ืจืขืืืกืืจืืจื ืืืืฃ ืืขื ืคึผืืึทืฅ
ืืึธืืื
ืฆื ืฉืึทืคึฟื ืึท ืงืึธื ืืจืึธื ืืึทืคืืืข ืคึฟืึทืจ ืึท ื ืืึท ืืืื, ืืื ืื "+" ืงื ืขืคึผื.
ืืืึทืฉืคึผืื ืคืื ืงืจืืืืืื ื ืึท ืืึทืคืืืข
ืึทืืึธื ืื ืืึทืคืืืข ืืื ืืืฉืืคื, ืขืก ืืืขื ืืืื ืืขืืืืื ืืื ืืืื ืจืฉืืื ืคืื ืคึผืึทื ืึทืื.
ืืื ืื "ืกืขืืึทืคึผ" ืงืืืืื ืคืื ืื ืืืฉืืคื ืืึทืคืืืข, ืืขืคึฟืื ืขื ืื ืคืขืืืขืจ "ืืืืืืืก ืฉืืึทื" ืืื "ืึทืืืืึธืจืืืึทืืืึธื ืฉืืืกื"; ืืื ืืขืจ ืฆืืงืื ืคึฟื, ืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขื ืืืื ืคืืจืืื ืื ืืืขื ืืืจ ืืึทืฉืืขืืืงื ืื Sonoff ืืืื.
ืืึทื ืืืึทืฉืคึผืื
ืฉืจืื 2. ืจืขืคืืึทืฉ ืื ืืืื
ื ืืฆื ืื ื ืืฆื
ืฉืจืื 3: ืืึทืฉืืขืืืงื ืืืื ืืืื
ืึธื ืืืขื ืื ืืึทืื ืฆื ืื ืืืื, ื ืึธื ืื ืืขืคืืจื ืืืืฅ ืึทืจืืืฃ, ืืจืืงื ืื ืงื ืขืคึผื ืืื ืืึทืืื ืขืก ืืขืืจืืงื ืืื ืื ืืขืคืืจื ืืืืื ืฆื ืคืืึทืฉ ืคึผืืจืืึทืืืงืื ืืืืึทื ืื.
ืืื ืืขื ืืึธืืขื ื, ืึท ื ืืึท ืืื-ืคื ื ืขืฅ ืืขืจืืคึฟื "PLC Sonoff Basic" ืืืขื ืืขืจืฉืืึทื ืขื, ืคืึทืจืืื ืื ืืืื ืงืึธืืคึผืืืืขืจ ืฆื ืืขื ื ืขืฅ.
ืืขืจืงืืขืจืื ื ืคืื ืืขืคืืจื ืึธื ืืืืึทื
ืืขืคืืจื ืึธื ืืืืึทื
ืืืื ืกืืึทืืืก
ืคึผืขืจืืึธืืืฉ ืืึธืคึผื ืคืืึทืฉืื ื
ืงืืื ืงืฉืจ ืฆื ืจืึทืืืขืจ
ืฉืืื ื ืืกืืจ
ืคึฟืึทืจืืื ืืื ื ืืขืืจืื ืืขื ืืื ืื ืจืึทืืืขืจ
ืคึผืขืจืืึธืืืฉ ืืื ืืืจ ืคืืึทืฉืื ื
Wi-Fi ืึทืงืกืขืก ืคืื ื ืืึธืืข
ืืืืกืืขืืืฉื
ืงืืื ืืึทืื ืฆืืฉืืขืื
ืขืคึฟืขื ืขื ืึทื ืืื ืืขืจื ืขืฅ ืืืขืืขืจืขืจ ืืื ืึทืจืืึทื ืื ืืขืงืกื "192.168.4.1" ืืื ืื ืึทืืจืขืก ืืึทืจ, ืืืื ืฆื ืื ื ืขืฅ ืกืขืืืื ืืก ืืืึทื ืคืื ืื ืืืื.
ืคึผืืึธืืืืจื ืื ืคืขืืืขืจ ืืื ืืืื:
- "ื ืขืืืืึธืจืง ื ืึธืืขื" ืืื "ืฉืคึผืจืืืืืึธืจื" (ืฆื ืคืึทืจืืื ืื ืื ืืืื ืฆื ืืืื ืืืื Wi-Fi ืจืึทืืืขืจ).
- "ืืืื ืฉืืึทื" ืืื "ืึทืืืืึธืจืืืึทืืืึธื ืฉืืืกื" (ืฆื ืืขืจืืืืื ืื ืืืื ืืืืฃ ืื MGT24 ืืื ืกื).
ืืืึทืฉืคึผืื ืคืื ืืึทืฉืืขืืืงื ืืืื ื ืขืฅ ืคึผืึทืจืึทืืขืืขืจืก
ืืื ืื ืกืขืืืื ืืก ืืื ืจืขืืึธืึธื ืื ืืืื.
ืืึธ
ืฉืจืื 4. ืงืึทื ืขืงืืื ื ืกืขื ืกืึธืจืก (ืึทืคึผืฉืึทื ืึทื)
ืื ืงืจืึทื ื ืคืืจืืืืึทืจืข ืฉืืืฆื ืึทืจืืืฃ ืฆื ืคืืจ ืืก18ื20 ืืขืืคึผืขืจืึทืืืจ ืกืขื ืกืึธืจืก. ืืึธ
ืึธืคึผืืืืืื ื ืื. ืืืืกืืึทื ืคึผืจืึธืืจืึทืืืื ื
ืฉืจืื 1: ืฉืึทืคึฟื ืกืงืจืืคึผืก
ืืขืืืืื ื ืืื ืึท ืคึผืจืึธืืจืึทืืืื ื ืกืืืืืืข
ืืื ืฆืืืขืืขืื ืกืคึผืขืฉืึทืืืืื ืืืึทืงืก ืคึฟืึทืจ ืฉืจืืืื ืืื ืืืืขื ืขื ืืืื ืคึผืึทืจืึทืืขืืขืจืก. ืงืืื ืคึผืึทืจืึทืืขืืขืจ ืืื ืึทืงืกืขืกื ืืืจื ื ืึธืืขื. ืคึฟืึทืจ ืคึผืึทืจืึทืืขืืขืจืก ืคืื ืืืืึทื ืืขืืืืกืขืก, ืงืึทืืคึผืึทืื ื ื ืขืืขื ืืขื ืขื ืืขื ืืฆื: "parameter@device".
ืืจืึธืคึผืืึธืืื ืจืฉืืื ืคืื ืึธืคึผืฆืืขืก
ืืืึทืฉืคึผืื ืกืฆืขื ืึทืจ ืคึฟืึทืจ ืกืืืงืืืง ืกืืืืืฉืื ื ืืืืฃ ืืื ืึทืืืขืง ืื ืืึทืกืข (1 ืื):
ื ืืืืฉืคึผืื ืคืื ืึท ืฉืจืืคื ืกืื ืืงืจืึทื ืืื ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืฆืืืื ืืึทืืื ืืขืจ ืืขืืืืกืขืก. ื ืืืืื, ืื ืจืขืืข ืคืื โโืื ืฆืื ืืืื ืจืืคึผืืฅ ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืื ืจืขืืข ืคืื โโืื ืืืืึทื ืืืื.
ืกืฆืขื ืึทืจ ืคึฟืึทืจ ืืขืจืืึทืกืืึทื (ืึธื ืืืกืืขืจืขืกืืก):
ืฆื ืฉืึทืคึฟื ืืขืจ ืงืึธืืคึผืืืฆืืจื ืกืงืจืืคึผืก, ืืืจ ืงืขื ืขื ื ืืฆื ืืืขืจืืึทืืึทืื, ืืืคึผืก, ืคืึทื ืืงืฉืึทื ื (ืืื ืึทืจืืืืขื ืื) ืืื ืื ืืขืจืข ืงืึทื ืกืืจืึทืงืฉืึทื ื. ืืื ืืืขื ื ืืฉื ืืึทืฉืจืืึทืื ืึทืืข ืืขื ืืื ืืขืืึทื ืืึธ; ืขืก ืืื ืฉืืื ืืึทื ืฅ ืึท ืคึผืืึทืฅ ืืืืฃ ืื ื ืขืฅ.
ืฉืจืื 2: ืกืืจ ืคืื ืกืงืจืืคึผืก
ืืขืจ ืฉืจืืคื ืืืืคื ืึผืกืืจ, ืืื ืืื ืืึทืื ืืื ืขืก ืจืืืฉืึทื ืืืื ืกืืฃ, ืขืก ืืืืื ืืื ืืืืืขืจ. ืืื ืืขื ืคืึทื, ืขืก ืืขื ืขื ืฆืืืื ืืืึทืงืก ืืืึธืก ืงืขื ืขื ืืขืืคึผืขืจืขืจืึทืื ืคึผืืืืข ืื ืฉืจืืคื, "ืคืึทืจืืึทืืื" ืืื "ืคึผืืืืข".
ืื "ืคืึทืจืืึทืืื" ืืืึธืง ืืื ืืขื ืืฆื ืคึฟืึทืจ ืืืืืกืขืงืึธื ื ืึธืืขืจ ืืืงืจืึธืกืขืงืึธื ื ืืืืืื. ืืขื ืืืึธืง ืฉืืจืขื ื ืืืื ืืืื ื ืื ืฆืืื ืืขืืึทืืขื, ืืืึทืงืื ื ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืื ืืื ืฆืข ืืืื.
ืื "ืคึผืืืืข" ืืืึธืง ืืื ืืขื ืืฆื ืคึฟืึทืจ ืจืืข (ืึธืืขืจ ืืืืื ืืงืขืจ) ืืืืืื, ืืื ืขืก ืืื ื ืืฉื ืคืึทืจืฉืคึผืึทืจื ืื ืืืจืืคืืจืื ื ืคืื ืื ืืขืจืข ืคึผืจืึทืกืขืกืึทื ืืื ืื ืืืื.
ืืืื ืื ืฉืจืืคื ืืื ืึผืืื ืึท ืื ืคืึทื ืึทื ืฉืืืืฃ, ืืขืจ ืืืฃ ืคืื ืืืึธืก ืืื ื ืืฉื ืึทื ืืืึทืืื "ืคึผืืข", ืืขืจ ืืืขืจืืขืฆืขืจ ืื ืืืคึผืขื ืืึทื ืืื ืื ืืฉืืืืืื ืึท ืงืืจืฅ ืคึผืืืืข.
ืืืื ืื ืึทืืึทืงืืืืื ืืึผืจืื ืึธื ืืืืื ืืื ืืืกืืขืืึทืืขืจื, ืืขืจ ืืืขืจืืขืฆืขืจ ืืืขื ืืึทืืื ืขืงืกืึทืงืืืืื ื ืึทืืึท ืึท ืืึทืื ืืื ืืขืจืืง ืฉืจืืคื (ืืืื ืึธืคึผืืขืืื ืืื ืจืขืงืืจืกืืืืข ืคืึทื ืืงืฉืึทื ื).
ืฉืจืื 3: ืืืืึทืืื ื ืกืงืจืืคึผืก
ืฆื ืืืืื ืึท ืฉืจืืคื ืืืึธืก ืืื ืฉืืื ืืึธืืืื ืืื ืื ืืืื, ืืืจ ืงืขื ืขื ืืืืคื ืึท ืคึผืจืึธืืจืึทื ืฉืคึผืืจ ืฉืจืื ืืืจื ืฉืจืื. ืืึธืก ืงืขื ืืืื ืืึธืจ ื ืืฆืืง ืืืขื ืื ื ืึทืืืจ ืคืื ืื ืฉืจืืคื ืืื ืืขืืืขื ืึทื ืืขืจืฉ ืคืื ืืืึธืก ืืขืจ ืืืืจ ืืืขื. ืืื ืืขื ืคืึทื, ืืจืืืกืื ื ืึทืืึทืื ืืขืจ ืืืืจ ืฆื ืืขืฉืืืื ื ืืขืคึฟืื ืขื ืื ืืงืืจ ืคืื ืื ืคึผืจืึธืืืขื ืืื ืคืึทืจืจืืืื ืืขื ืืขืืช ืืื ืื ืฉืจืืคื.
ืกืฆืขื ืึทืจ ืคึฟืึทืจ ืงืึทืืงืืึทืืืืืื ื ืคืึทืงืืึธืจืืึทื ืืื ืืืืึทื ืืึธืืข:
ืื ืืืืึทื ืืขืฆืืึทื ืืื ืืืืขืจ ืคึผืฉืื ืืื ืืืฉืืืื ืคืื ืืจืื ืืืืคึผื ืงื ืขืคึผืืขื: "ืึธื ืืืื", "ืืืื ืฉืจืื ืคืึธืจืืืก" ืืื "ืืึทืืื" (ืืึธืืืจ ืืืื ื ืืฉื ืคืึทืจืืขืกื ืืืขืื "ืึทืจืืึทื" ืืื "ืึทืจืืืกืืึทื ื" ืืืืึทื ืืึธืืข). ืืื ืึทืืืฉืึทื ืฆื ืฉืจืื-ืืืจื-ืฉืจืื ืืจืืืกืื ื, ืืืจ ืงืขื ืขื ืฉืืขืื ืึท ืืจืืืงืคึผืืื ื ืืืืฃ ืงืืื ืืืึธืง (ืืืจื ืืขืื ืึท ืงืืืง ืืืืฃ ืืขื ืืืึธืง).
ืฆื ืืืืึทืื ืื ืงืจืึทื ื ืืืึทืืืขืก ืคืื ืคึผืึทืจืึทืืขืืขืจืก (ืกืขื ืกืึธืจืก, ืจืืืืื) ืืื ืื ืืึธื ืืืึธืจ, ื ืืฆื ืื "ืคึผืจืื ื" ืืืึธืง.
ืืึธ
ืึธืคึผืืืืืื ื ืคึฟืึทืจ ืื ืืฉืืงืึทืืืข. ืืืึธืก ืืื ืืื ืืขืจ ืื ืงืึทืคึผืืขืจ?
ืึผืื ืื ืกืงืจืืคึผืก ืืึธื ืึทืจืืขืื ืืืืฃ ืื ืฆืื ืืืื, ืึท ืืืืขืงืึธืืข ืืืขืจืืขืฆืขืจ ืืื ืึท ืึทืกืขืืืึทืืืขืจ ืืื 38 ืื ืกืืจืึทืงืฉืึทื ื ืืขื ืขื ืืขืืืขืืึธืคึผืขื. Blockly ืก ืืงืืจ ืงืึธื ืืื ืึท ืกืคึผืขืฉืึทืืืืื ืงืึธื ืืขื ืขืจืึทืืึธืจ ืืขืืืื ืืื ืขืก ืืืึธืก ืงืึทื ืืืขืจืฅ ืืืืืฉืึทืืืึทื ืืืึทืงืก ืืื ืคึฟืึทืจืืึทืืืื ื ืื ืกืืจืึทืงืฉืึทื ื. ืืขืจื ืึธื, ืืขื ืึทืกืขืืืืขืจ ืคึผืจืึธืืจืึทื ืืื ืงืึธื ืืืขืจืืขื ืืื ืืืืขืงืึธืืข ืืื ืืจืึทื ืกืคืขืจื ืฆื ืื ืืืื ืคึฟืึทืจ ืืืจืืคืืจืื ื.
ืื ืึทืจืงืึทืืขืงืืฉืขืจ ืคืื ืืขื ืืืืจืืืึทื ืืึทืฉืื ืืื ืืึทื ืฅ ืคึผืฉืื ืืื ืขืก ืืื ืงืืื ืืึทืืื ืืขืจ ืคืื ื ืืื ืืืกืงืจืืืืื ื ืขืก; ืืืืฃ ืื ืืื ืืขืจื ืขื ืืืจ ืืืขื ืืขืคึฟืื ืขื ืคืืืข ืึทืจืืืงืืขื ืืืขืื ืืืืืื ืื ื ืื ืกืืืคึผืืึทืกื ืืืืจืืืึทื ืืืฉืื ืขื.
ืืื ืืืืฉืึทืืืึทืื ืึทืืึทืงืืื 1000 ืืืืขืก ืคึฟืึทืจ ืื ืึธื ืืืืื ืคืื ืืืื ืืืืจืืืึทื ืืึทืฉืื, ืืืึธืก ืืื ืืขื ืื ืฆื ืกืคึผืขืจ. ืคืื ืงืืจืก, ืืืฃ ืจืขืงืืจืกืืึธื ืก ืงืขื ืขื ืืืกืืึทืืขืจื ืงืืื ืึธื ืืืืื, ืึธืืขืจ ืืื ืืขื ืขื ืึทื ืืืืงืื ืฆื ืืึธืื ืงืืื ืคึผืจืึทืงืืืฉ ื ืืฆื.
ืื ืจืืืึทืืืื ื ืืืืขืงืึธืืข ืืื ืืึทื ืฅ ืกืึธืืื. ืืื ืึท ืืืึทืฉืคึผืื, ืื ืืืืขืงืึธืืข ืคึฟืึทืจ ืงืึทืืงืืึทืืืืืื ื ืืขืจ ืืขืืืืงืขืจ ืคืึทืงืืึธืจืืึทื ืืื ืืืืื 49 ืืืืขืก. ืืึธืก ืืื ืืืึทื ืืืืืฉืึทืืืึทื ืคืึธืจืขื:
ืืื ืืึธืก ืืื ืืืื ืึทืกืขืืืึทืืขืจ ืคึผืจืึธืืจืึทื:
shift -1
ldi 10
call factorial, 1
print
exit
:factorial
ld_arg 0
ldi 1
gt
je 8
ld_arg 0
ld_arg 0
ldi 1
sub
call factorial, 1
mul
ret
ldi 1
ret
ืืืื ืื ืคึฟืึทืจืืึทืืืื ื ืคืึธืจืขื ืคืื ืคืึทืจืืจืขืืื ื ืืื ืงืืื ืคึผืจืึทืงืืืฉ ืืืขืจื, ืื ืงืืืืื "ืืืฉืึทืืืึทืกืงืจืื", ืืืืฃ ืื ืคืึทืจืงืขืจื, ืืื ืึท ืืขืจ ืืึทืงืึทื ื ืงืืง ืืื ืืืืืฉืึทืืืึทื ืืืึทืงืก:
function factorial(num) {
if (num > 1) {
return num + factorial(num - 1);
}
return 1;
}
window.alert(factorial(10));
ืืืขืื ืคืึธืจืฉืืขืืื ื. ืืืขื ืืื ืืืืคื ืื ืกืืืคึผืืึทืกื ืคืืึทืฉืขืจ ืฉืจืืคื, ืืื ืืึทื ืึท 47 ืื ืงืืืึทืืจืึทื ืืืืึทืืืข ืืืืฃ ืื ืึทืกืึทืืึธืกืงืึธืคึผืข ืคืึทืจืฉืืขืื (ืืื ืึท ืคึผืจืึทืกืขืกืขืจ ืืืืืขืจ ืืืืงืืึทื ืคืื 80 ืืื).
ืืื ืืจืึทืืื ืืึธืก ืืื ืึท ืืื ืจืขืืืืืึทื, ืืื ืืื ืืกืืขืจ ืื ืืืืงืืึทื ืืื ืึผืืขื ืฆืขื ืืื ืคืึทืกืืขืจ ืืื
ืืขืฆื ืืืื
ืฆื ืกืึทืืขืจืืื, ืืื ืืืขื ืืึธืื ืึทื ืื ื ืืฆื ืคืื ืกืงืจืืคึผืก ืึทืืึทืื ืืื ืื ื ืื ืืืืื ืฆื ืคึผืจืึธืืจืึทื ืื ืืึธืืืง ืคืื ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืึท ืืึทืืื ืืขืจ ืืืื, ืึธืืขืจ ืืืื ืืืื ืขืก ืืขืืืขื ืฆื ืคืึทืจืืื ืื ืขืืืขืืข ืืขืืืืกืขืก ืืื ืึท ืืืื ืืขืงืึทื ืืืึทื, ืืื ืขืืืขืืข ืืขืืืืกืขืก ืืืคึผืืึทืืขื ืึทื ืื ื ืึทืืืจ ืคืื ืื ืืขืจืข.
ืืื ืืืื ืืึธื ืึทื ืื ืืืืกืืขืจืืืืืืืข ืืืคึฟื ืคืื ืกืืึธืจืื ื ืกืงืจืืคึผืก (ืืืจืขืงื ืืื ืื ืืขืืืืกืขืก ืืื, ืืื ื ืืฉื ืืืืฃ ืื ืกืขืจืืืขืจ) ืกืืืคึผืืึทืคืืื ืื ืกืืืืืฉืื ื ืคืื ืฉืืื ืืจืืขืื ืืขืืืืกืขืก ืฆื ืื ืื ืืขืจ ืกืขืจืืืขืจ, ืืืฉื ืฆื ืึท ืืืื Raspberry, ืืึธ
ืืึธืก ืืื ืึทืืข, ืืื ืืืขื ืืืื ืฆืืคืจืืื ืฆื ืืขืจื ืขืฆืืช ืืื ืงืึทื ืกืืจืึทืงืืืื ืงืจืืืืง.
ืืงืืจ: www.habr.com