M♪o 之學習筆記本《編者跋》

光陰荏苒,歲月匆匆已經到了為《M♪o 之學習筆記本》寫跋之時。若是沒有西伯利亞『小雪鶴奇妙因緣,想來也無法給讀者們介紹這本有趣的筆記。說事當求完整齊全,特講《M♪o 之學習筆記本》的封底中有如下之圖文︰

派生碼訊

學而‧堯曰

,不知是『印』上去的,還是 M♪o 『刻』寫的,彷彿意有所指似的 。也許編者幾十日與 M♪o 的文字為伍,受到她詩樣般情懷的感染,也學會一些疑猜?此一筆記應在《春的祭典》之前,卻是偶然拾於

Re: TinyIoT 踢呦ㄊㄜˋ From: M♪o@Tux.Anywhere

之後。或許,冥冥之中眇眇之意,難解難測,終將歸之於平淡自然的吧!最後再一次效法 M♪o 之『訊』,代之以為《跋》跋,向她樂知分享之心禮敬。

 

訊 ︰☿ 把酒飛斝是同道,欲法荀子《勸學篇》趁年少︰

君子曰:學不可以已。青,取之於藍而青於藍;冰,水為之而寒於水。以喻學則才過其本性也。木直中繩,輮以為輪,其曲中規,雖有槁暴,不復挺者,輮使之然也。輮,屈。槁,枯。曓,乾。挻,宜也。《晏子春秋》作「不復贏也」。故木受繩則直,金就礪則利,君子博學而日參省乎己,則知明而行無過矣。參,三也。曾子曰︰「日三省吾身。」知,讀爲智。行,下孟反。故不登高山,不知天之高也;不臨深谿,不知地之厚也;不聞先王之遺言,不知學問之大也。大,謂有益於人。干、越、夷、貉之子,生而同聲,長而異俗,教使之然也。干、越,猶言吳、越。《呂氏春秋》「荊有次非得寶劍於干、越」,高誘曰︰「吳邑也。」貉,東北夷。同聲,謂啼聲同。貉,莫革反。《詩》曰:「嗟爾君子,無恆安息。靖共爾位,好是正直。神之聽之,介爾景福。」《詩》,《小雅‧小明》之篇。靖,謀。介,助。景,大也。無恆安息,戒之不使懷安也。言能謀恭其位,好正宜之道,則神聽而助之福,引此詩以喻勤學也。神莫大於化道,福莫長於無禍。爲學則自化道,故神莫大焉。修身則自無禍,故福莫長焉。吾嘗終日而思矣,不如須臾之所學也,吾嘗跂而望矣,不如登高之博見也 。跂,舉足也。登高而招,臂非加長也,而見者遠;順風而呼,聲非加疾也,而聞者彰。假輿馬者,非利足也,而致千里;假舟楫者,非能水也,而絕江河。能,善。絶,過。君子生非異也,善假於物也。皆以喻修身在假於學。生非異,言與衆人同也。南方有鳥焉,名曰蒙鳩,以羽為巢而編之以髮,繫之葦苕,風至苕折,卵破子死。巢非不完也 ,所繫者然也。蒙 鳩,鷦鷯也。苕,葦之秀也,今巧婦鳥之巢至精密,多繫於葦竹之上是也。「蒙」當爲「蔑」。《方言》雲︰「鷦鷯,關而西謂之桑飛,或謂之蔑雀。」或曰︰一名 蒙鳩,亦以其愚也。言人不知學問,其所置身亦猶繫葦之危也。《說苑》︰「客謂孟嘗君曰︰『鷦鷯巢於葦苕,箸之髮毛,可謂完堅矣,大風至則苕折卵破子死者何 也?其所託者然也。』西方有木焉,名曰射干,莖長四寸,生於高山之上,而臨百仞之淵,木莖非能長也,所立者然也 。《本草》藥名有射干,一名烏扇。陶弘景雲︰「花白莖長,如射人之執竿。」又引阮公詩云「射干臨層城」,是生於高處也。據《本草》在《草部》中,又生南陽川穀,此雲「西方有木」,未詳。或曰︰「長四寸」卽是草,雲木,誤也。蓋生南陽,亦生西方也。射音夜。蓬生麻中,不扶而直。蘭槐之根是爲芷。其漸之滫,君子不近,庶人不服,其質非不美也,所漸者然也。蘭槐,香草,其根是爲芷也。《本草》︰「白芷一名白茝。」陶弘景雲︰「卽《離騷》所謂蘭茝也。」葢苗名蘭茝,根名芷也。弱槐當是蘭茝別名,故云「蘭槐之根是爲芷」也。漸,漬也,染也。滫,溺也。言雖香草,浸漬於溺中,則可惡也。漸,子廉反。滫,思酒反。故君子居必擇鄉,遊必就士,所以防邪僻而近中正也。物類之起,必有所始。榮辱之來,必象其德。肉腐出蟲,魚枯生蠹。怠慢忘身,禍災乃作。強自取柱,柔自取束。凡物強則以爲柱而任勞,柔則見束而約急,皆其自取也。邪穢在身,怨之所構。構,結也。言亦所自取。施薪若一,火就燥也;布薪於地,均若一,火就燥而焚之矣。平地若一,水就溼也。草木疇生,禽獸羣焉,物各從其類也。疇與儔同,類也。是故質的張而弓矢至焉,林木茂而斧斤至焉,所謂召禍也。質,射矦。的,正鵠也。樹成蔭而衆鳥息焉,醯酸而蜹聚焉。喻有德則慕之者衆。故言有召禍也,行有招辱也,君子慎其所立乎!禍福如此,不可不慎所立。所立,卽謂學也。

積土成山,風雨興焉;積水成淵,蛟龍生焉;積善成德,而神明自得,聖心備焉。神明自得,謂自通於神明。故不積蹞步,無以千里;半步曰蹞。蹞與跬同。不積小流,無以成江海。騏驥一躍,不能十步;駑馬十駕,言駑馬十度引車,則亦及騏驥之一躍。據下雲「駑馬十駕,則亦及之」,此亦當同,疑脫一句。功在不舍。鍥而舍之,朽木不折;鍥而不舍 ,金石可鏤。言立功在於不舍。舍與捨同。鍥,刻也,苦結反。《春秋傳》曰「陽虎借邑人之車,鍥其軸」也。螾無爪牙之利,筋骨之強,上食埃土,下飲黃泉,用心一也。螾與蚓同,蚯蚓也。蟹八跪而二螯,非虵蟺之穴無可寄託者,用心躁也。跪,足也。《韓子》以刖足爲刖跪。螫,蟹首上如鉞者。許叔重《說文》雲「蟹六足二螫」也。是故無冥冥之志者無昭昭之明 ,無惛惛之事者無赫赫之功。冥冥、惛惛,皆專默精誠之謂也。行衢道者不至,事兩君者不容。《爾雅》雲︰「四達謂之衢。」孫炎雲︰「衢,交道四出也。」或曰︰衢道,兩道也。不至,不能有所至。下篇有「楊朱哭衢塗」。今秦俗猶以兩爲衢,古之遺言歟?目不能兩視而明,耳不能兩聽而聰。螣蛇無足而飛,《爾雅》云:「螣,螣蛇。」郭璞雲「龍類,能興雲霧而遊其中」也。梧鼠五技而窮。「梧鼠」當爲「鼫鼠」,蓋本誤爲「鼯」字,傳寫又誤爲「梧」耳。技,才能也。言技能雖多而不能如螣蛇專一,故窮。五技,謂能飛不能上屋,能緣不能窮木,能游不能渡谷,能穴不能掩身,能走不能先人。《詩》曰 :「屍鳩在桑,其子七兮。淑人君子,其儀一兮。其儀一兮,心如結兮。」故君子結於一也。《詩》,《曹風‧屍鳩》之篇。毛雲︰「屍鳩,鴶鞠也。屍鳩之養七子,旦從上而下,暮從下而上,平均如一。善人君子,其執義亦當如屍鳩之一。執義一則用心堅固。」故曰「心如結」也。

……

 

 

 

 

 

 

 

M♪o 之學習筆記本《巳》文章︰【䷜】樽酒簋貳

派生碼訊

巳 蛇

來氏《 易 》易註︰

六四,樽酒,簋貳,用缶,納約自牖,終无咎。

四變,中爻離巽,巽木離中虛,樽之象也。坎,水酒之象也。中爻震竹,簋乃竹器,簋之象 也。缶,瓦器所以盛酒漿者。比卦坤土中虛,初變震,有離象,故曰缶。離卦鼓缶 ,此變離,故曰缶,《漢書》「擊缶而歌烏烏」。貳者副也,言樽酒而簋,即副之 也。言一樽之酒,二簋之食,樂用瓦缶,皆菲薄至約之物也。納約自牖者,自進于牖下,陳列此至約之物而納進之也。在墻曰牖,在屋曰囪。牖乃受明之處,變離, 牖之象也。此與遇主于巷同意,皆其坎陷艱難之時,故不由正道也。蓋樽酒簋二用缶,見無繁文之設 。納約曰自見,無儐介之儀。世故多艱,非但君擇臣,臣亦擇 君,所以進麥飯者不以為簡,而雪夜幸其家,以嫂呼臣妻者,不以為瀆也。修邊幅之公孫,述宜乎為井底蛙矣。

六四柔順得正,當國家險難之時,近九五剛中之君,剛柔相濟,其勢易合,故有簡約相見之象。占者如此,庶能共謀出險之計。始雖險陷,終得无咎矣。

《象》曰:樽酒簋貳,剛柔際也。

剛五柔四。際者相接際也。五思出險而下求 ,四思出險而上交。此其情易合,而禮薄亦可以自通也。

︰習 坎 坎,重 險 險也。孚, 信 信也。 信 信而能唯心習 教事 事,故可出 坎 坎。然而一己之 力 力微薄,更需要合 同 同志 同 同道合者,齊 行 行以濟重 險 險。當此之時也 ,樽酒簋貳,納約自牖,怡然 安 安特。

例假日。

晨起無聊寄,明兒 同 樂 會 同樂會,亦悲亦是喜,喜大家鵬程萬里,悲今後或難再遇。須謹記,破 坎 坎突 險 險,還是有賴志 之 友與道 朋 朋。當懷念,同 學 學共 習 習之情誼。莫期望 ,倚靠 幸 幸 運 運。《 文 》 文說︰

幸,所以驚人也。从大从 辛 。一曰大聲也。凡幸之屬皆从幸。一曰讀若瓠。一曰俗語以盜不止爲幸,幸讀若籋。

運,迻徙也。从辵軍聲。

或應知, 幸 幸,古義枷鎖也。得脫鐐銬,何其有幸! 運 運,本講遷軍。若能安泰!運何能不好?皆因不祥事耶!!??

西諺講︰幸運女神衷情準備好了的人,莫要與之擦身而過;當上帝來敲門時,記得開門。

 

派如是想來,理性和感情的交融,確叫人 ZONK ?!

改不改??變不變!!》︰

金文大篆改

金文大篆變

 

教育的宗旨

』正思維的『誤謬』,『』化習性之『偏差』。

220px-Halperin

220px-Lets_make_a_deal_weekly_primetime

220px-2009lmadzonkgoat

一九六三年美國 NBC 電視台初次公演了由 Jay Stewart 和 Monty Hall 主持的『Let’s Make a Deal』成交約定遊戲。它有多種版本,典型的遊戲是︰

主持人向遊戲者展示了三扇門,其中一扇門之後是『樂透獎』,另外兩扇門之後是『安慰獎』。當然主持人事先就知道哪扇門背後有什麼獎品,遊戲過程分為三個階段︰
一、遊戲者先選擇一扇門,
二、主持人打開遊戲者未選之兩扇門中的某一扇安慰獎之門,
三.、主持人詢問著遊戲者是否仍堅持『原選之門』,還是願意改變選擇『另一扇未開的門』 ?這個『費疑猜』令人疲憊之 zonk 時刻已然到來!
到底是該
換,還是不換』的好呢??

一位『理性的』思考者也許會這樣論證︰

最初之時,每扇門後有『樂透獎』的機會都是 \frac {1}{3},所以『選中』的機會是 \frac {1}{3},『未選中』的機會是 \frac {2}{3}。然而現在主持人打開了一扇沒有『樂透獎』的門,這個『資訊』將使得未選中之『僅存之門』的機會成了 \frac {2}{3}。因此當然是『換的好』的了!

另一位『感性的』幸運者也許會這樣感覺︰

如果『會中』一選就中,如果『不會中』改選『也沒用』,所以還是維持原案『不換的好』的吧!

在『機會』的現象裡,人們因多次重複得到的某種『大數機率』,如果將之運用到『這一次』的選擇之時,那個『實際發生』的事實究竟是能不能『論斷』的呢?如果能,人們又為什麼會相信『莫非定律』是真的呢??

……

,只能悉聽尊便!?

 

生 ︰就此補足安裝環境溫度感測器方法︰

# /boot/config.txt 檔案底部加入一行︰
dtoverlay=w1-gpio

# 安裝派生三環境溫度感測器程式庫
sudo apt-get install python3-pip
sudo pip-3.2 install w1thermsensor

 

碼 ︰無 習 。明日息習。

 

行 習 行習︰以及 TuxIOme V0.1 版,參考原始碼︰

 

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import math
import operator
import string
import threading
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

開 = 亮 = 低 = 0
關 = 滅 = 高 = 1

from time import sleep
 
import tpg

if tpg.__python__ == 3:
    operator.div = operator.truediv
    raw_input = input

def make_op(op):
    return {
        '加'   : operator.add,
        '減'   : operator.sub,
        '乘'   : operator.mul,
        '除'   : operator.div,
        '剩'   : operator.mod,
        '^'   : lambda x,y:x**y,
        '**'  : lambda x,y:x**y,
        '餘弦' : math.cos,
        '正弦' : math.sin,
        '切弦' : math.tan,
        'acos': math.acos,
        'asin': math.asin,
        'atan': math.atan,
        '平方' : lambda x:x*x,
        '根號': math.sqrt,
        '正值' : abs,
        'norm': lambda x,y:math.sqrt(x*x+y*y),
    }[op]

數碼賦值 = [(滅, 亮, 亮, 滅, 滅, 滅, 亮, 滅), (滅, 滅, 滅, 滅, 亮, 亮, 亮, 滅), (滅, 亮, 亮, 滅, 滅, 滅, 亮, 滅),   (滅, 滅, 滅, 滅, 亮, 亮, 亮, 滅)
]

遲延 = 0.012

# 數碼管

四位數碼管位選一 = 17
四位數碼管位選二 = 27
四位數碼管位選三 = 22
四位數碼管位選四 = 10

LEDA = 21
LEDB = 16
LEDC = 19
LEDD = 6
LEDE = 5
LEDF = 20
LEDG = 26
LEDH = 13

# 初始態

GPIO.setup(四位數碼管位選一, GPIO.OUT, initial=關)
GPIO.setup(四位數碼管位選二, GPIO.OUT, initial=關)
GPIO.setup(四位數碼管位選三, GPIO.OUT, initial=關)
GPIO.setup(四位數碼管位選四, GPIO.OUT, initial=關)

GPIO.setup(LEDA, GPIO.OUT, initial=滅)
GPIO.setup(LEDB, GPIO.OUT, initial=滅)
GPIO.setup(LEDC, GPIO.OUT, initial=滅)
GPIO.setup(LEDD, GPIO.OUT, initial=滅)
GPIO.setup(LEDE, GPIO.OUT, initial=滅)
GPIO.setup(LEDF, GPIO.OUT, initial=滅)
GPIO.setup(LEDG, GPIO.OUT, initial=滅)
GPIO.setup(LEDH, GPIO.OUT, initial=滅)



def 數碼管執行緒():
    global 數碼賦值
    global 遲延

    數碼管 = [LEDA, LEDB, LEDC, LEDD, LEDE, LEDF, LEDG, LEDH]

    while True :

        for 單元 in range(0,4):
            if 單元 == 0 :
                GPIO.output(四位數碼管位選一, 開)
                GPIO.output(數碼管, 數碼賦值[單元])
                sleep(0.002)
                GPIO.output(四位數碼管位選一, 關)

            if 單元 == 1 :
                GPIO.output(四位數碼管位選二, 開)
                GPIO.output(數碼管, 數碼賦值[單元])
                sleep(0.002)
                GPIO.output(四位數碼管位選二, 關)

            if 單元 == 2 :
                GPIO.output(四位數碼管位選三, 開)
                GPIO.output(數碼管, 數碼賦值[單元])
                sleep(0.002)
                GPIO.output(四位數碼管位選三, 關)

            if 單元 == 3 :
                GPIO.output(四位數碼管位選四, 開)
                GPIO.output(數碼管, 數碼賦值[單元])
                sleep(0.002)
                GPIO.output(四位數碼管位選四, 關)

        sleep(遲延)

數碼緒 = threading.Thread(name="數碼", target=數碼管執行緒)
數碼緒.daemon = True
數碼緒.start()

數碼管輸出字典 = { "0" : (亮, 亮, 亮, 亮, 亮, 亮, 滅, 滅) ,
                   "1" : (滅, 亮, 亮, 滅, 滅, 滅, 滅, 滅) ,
                   "2" : (亮, 亮, 滅, 亮, 亮, 滅, 亮, 滅) ,
                   "3" : (亮, 亮, 亮, 亮, 滅, 滅, 亮, 滅) ,
                   "4" : (滅, 亮, 亮, 滅, 滅, 亮, 亮, 滅) ,
                   "5" : (亮, 滅, 亮, 亮, 滅, 亮, 亮, 滅) ,
                   "6" : (亮, 滅, 亮, 亮, 亮, 亮, 亮, 滅) ,
                   "7" : (亮, 亮, 亮, 滅, 滅, 滅, 滅, 滅) ,
                   "8" : (亮, 亮, 亮, 亮, 亮, 亮, 亮, 滅) ,
                   "9" : (亮, 亮, 亮, 亮, 滅, 亮, 亮, 滅) ,
                 }


def 輸出數碼管(數據) :
    global 數碼賦值
    global 數碼管輸出字典

    if 數據 > 999.9 :
        return "數值超過 999.9"
    else:

        字符串 = "%05.1f" %數據

        for 單元 in range(0,5):
            if 單元 == 0 :
                數碼賦值[單元] = 數碼管輸出字典[字符串[單元]]
            elif 單元 == 1 :
                數碼賦值[單元] = 數碼管輸出字典[字符串[單元]]
            elif 單元 == 2 :
                暫列 = list(數碼管輸出字典[字符串[單元]])
                暫列[7] = 亮
                數碼賦值[單元] = tuple(暫列)
            elif 單元 == 3 :
                continue
            else:
                數碼賦值[單元 - 1] = 數碼管輸出字典[字符串[單元]]

    return "完成"



GPIO.setup(11, GPIO.OUT, initial=GPIO.HIGH)
小哨子 = GPIO.PWM(11, 130.8)

def 啟動蜂鳴器():
        小哨子.start(100)
        return "蜂鳴器已啟動"

def 響聲控制(頻率):
        小哨子.ChangeFrequency(頻率)
        小哨子.start(50)
        return 頻率

def 噤聲控制(頻率):
        小哨子.ChangeFrequency(頻率)
        小哨子.start(100)
        return "噤聲"

def 控制蜂鳴器(op):
    return {
        '響聲'   : 響聲控制,
        '禁音'   : 噤聲控制,
   }[op]

def 輸入符碼(針碼):
        return GPIO.input(針碼)


def 輸出符碼(針碼, 賦值):
        GPIO.output(針碼, 賦值)
        return "輸出" + str(賦值)

def 出入定義(針碼, 入出):
        if 入出 == "出" :
            GPIO.setup(針碼, GPIO.OUT, initial = GPIO.HIGH)
        else:
            GPIO.setup(針碼, GPIO.IN, pull_up_down = GPIO.PUD_UP)
        return "定義完成"

def 出針定義(針碼):
    GPIO.setup(針碼, GPIO.OUT, initial = GPIO.HIGH)
    return "定義輸出完成"

def 入針定義(針碼):
    GPIO.setup(針碼, GPIO.IN, pull_up_down = GPIO.PUD_UP)
    return "定義輸入完成"


def 入出針定義(op):
    return {
        '入針'   : 入針定義,
        '出針'   : 出針定義,
   }[op]

import subprocess

重複次數 = 1

def 紅外線輸出(字碼):
    global 重複次數
    subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', 字碼,"--count=" +str(重複次數) ])
    return "已送出"

傳送重複 = 3

訊息編碼表 = {"0" : "KEY_0", "1" : "KEY_1", "2" : "KEY_2", "3" : "KEY_3", "4" : "KEY_4",
              "5" : "KEY_5", "6" : "KEY_6", "7" : "KEY_7", "8" : "KEY_8", "9" : "KEY_9",
             }

訊息解碼表 = {"0" : "0", "1" : "1", "2" : "2", "3" : "3", "4" : "4",
              "5" : "5", "6" : "6", "7" : "7", "8" : "8", "9" : "9",
              "SETUP" : "S", "ENTER" : "-", "BACK" : "E",
             }

def 紅外線發訊(四位數):
    global 傳送重複
    訊息串 = str(四位數)
    if len(訊息串) != 4 :
        return "訊息必須四位數"
    subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', "KEY_SETUP","--count=" +str(傳送重複) ])
    for 字碼 in 訊息串 :
        subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', 訊息編碼表[字碼],"--count=" +str(傳送重複) ])
        subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', "KEY_ENTER","--count=" +str(傳送重複) ])
    subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', "KEY_BACK","--count=" +str(傳送重複) ])
    return "已發訊"


import lirc
sockid = lirc.init("TuxIOme", blocking=False)

def 紅外線輸入():

    return lirc.nextcode()

def 紅外線收訊():
    空碼 = 0
    狀態 = 0
    字串 = ""
    while True:
        字碼 = 紅外線輸入()
        if 字碼 == [] :
            空碼 += 1
            if 空碼 < 10 :
                continue
            else:
                狀態 = 1
                break

        空碼 = 0
        字串 = 字串 + 訊息解碼表[字碼[0]]

    if 狀態 == 1 :
        return 字串
    else:
        return "錯誤"


def 讀取系統溫度():
    t = subprocess.check_output(['vcgencmd', 'measure_temp'])
    T = t.decode('utf-8')
    Tb = T.find('=')
    Te = T.find("'")
    return float(T[Tb + 1 : Te])

from w1thermsensor import W1ThermSensor
sensor = W1ThermSensor()

def 讀取環境溫度():
    return sensor.get_temperature()

import random

class 實習機板(tpg.Parser, dict):
    r"""
    此為實習基板入出針語言 TuxIOme 0.1,自 Calc.py 擴充而來。由於使用中文之故,
    不能使用預設的 NamedGroupLexer 。
    文法定義如下 ::

        set lexer = CacheLexer

        separator space '\s+' ;

        token 指數運算    '\^|\*\*'                                               make_op         token 入出設定    '(入針|出針)\b' 入出針定義
        token 聲音控制    '(響聲|禁音)\b'                                                   控制蜂鳴器         token 加減運算    '[加|減]' make_op
        token 乘除運算    '[乘|除|剩]'                                                 make_op         token 函數一    '(餘弦|正弦|切弦|acos|asin|atan|平方|根號|正值)\b' make_op
        token 函數二    '(norm)\b'                                              make_op         token real      '(\d+\.\d*|\d*\.\d+)([eE][-+]?\d+)?|\d+[eE][-+]?\d+' float
        token integer   '\d+'                                                   int         token VarId     '\w*'                                                    ;          START/e ->                 '變元' e=self.記憶()
            |   VarId/v '=' Expr/e      self[v]=e             |   Expr/e #            |   '定義' Expr/p '出' e=出入定義(p, '出')
#            |   '定義' Expr/p '入'             e=出入定義(p, '入')             |   '入出針'  Expr/p 入出設定/op e=op(p)
            |   '讀入' Expr/p                  e=輸入符碼(p)             |   '寫出' Expr/p '開' e=輸出符碼(p, 0)
            |   '寫出' Expr/p '關'                 e=輸出符碼(p, 1)             |   "打開蜂鳴器" e=啟動蜂鳴器()
            |   "蜂鳴器" 聲音控制/op Expr/p       e = op(p)             |   "顯示" Expr/p e = 輸出數碼管(p)
            |   "IRTX" VarId/s                    e = 紅外線輸出(s)             |   "IRRX" e = 紅外線輸入()
            |   "系統溫度"                        self["CPU溫度"] = e = 讀取系統溫度()             |   "環境溫度" self["周遭溫度"] = e = 讀取環境溫度()
            |   "發訊" Expr/p                     e = 紅外線發訊(p)             |   "收訊" e = 紅外線收訊()
        ;

        Var/self.get(v,0) -> VarId/v ;

        Expr/e -> Term/e ( 加減運算/op Term/t     e=op(e,t)                          )*         ;         Term/t -> Fact/t ( 乘除運算/op Fact/f t=op(t,f)
                         )*
        ;

        Fact/f ->
                加減運算/op Fact/f                f=op(0,f)             |   Pow/f         ;          Pow/f -> Atom/f ( 指數運算/op Fact/e f=op(f,e)
                        )?
        ;

        Atom/a ->
                real/a
            |   integer/a
            |   Function/a
            |   Var/a
            |   '' Expr/a ''
            |   Random/a
        ;

        Function/y ->
                函數一/f '' Expr/x ''               y = f(x)             |   函數二/f '<img src="http://www.freesandal.org/wp-content/ql-cache/quicklatex.com-5618a7a7b23dfd84e41ef622fed8142e_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="' Expr/x1 ',' Expr/x2 '" title="Rendered by QuickLaTeX.com" height="19" width="165" style="vertical-align: -5px;"/>' y = f(x1,x2)
        ;

        Random/x -> "四位亂數"                          x = random.randint(0, 9999)         ;      """      def __init__(self):         super().__init__()         self.名稱 = "實習機板"         self["一藍"] = 5         self["二藍"] = 6         self["三藍"] = 13         self["四藍"] = 19         self["五綠"] = 0         self["六綠"] = 1         self["七黃"] = 7         self["八紅"] = 8         self["按鍵一"] = 23         self["按鍵二"] = 18         self["撥碼一"] = 24         self["撥碼二"] = 25        def 記憶(self):         vars = sorted(self.items())         memory = [ "%s = %s"%(var, val) for (var, val) in vars ]         return "\n\t" + "\n\t".join(memory)    print("Calc (TPG example)") 實習機 = 實習機板() while 1:     try:        l = raw_input("\n:")     except UnicodeDecodeError:        continue       if l:         try:             print(實習機(l))         except Exception:             print(tpg.exc())     else:         break   # 數碼緒._stop()  GPIO.cleanup()  </pre>    初步測試如下︰ <pre class="lang:python decode:true ">pi@raspberrypi ~ sudo ./TuxIOme 
Calc (TPG example)

:系統溫度
50.8

:環境溫度
36.875

:變元

	CPU溫度 = 50.8
	一藍 = 5
	七黃 = 7
	三藍 = 13
	二藍 = 6
	五綠 = 0
	八紅 = 8
	六綠 = 1
	周遭溫度 = 36.875
	四藍 = 19
	按鍵一 = 23
	按鍵二 = 18
	撥碼一 = 24
	撥碼二 = 25

:顯示 CPU溫度
完成

:顯示 周遭溫度
完成

:四位亂數
6398

:四位亂數 
5724

:發訊 5200
已發訊

:收訊
S55--22--0-E

:發訊 1314
已發訊

:收訊
S11--33--11--4-EE

:

 

,以為臨別珍重

 

訊 ︰☿ 曾同學共習之回憶。

系統溫度

系統溫度

環境溫度

環境溫度

 

 

 

 

 

 

 

 

M♪o 之學習筆記本《巳》文章︰【䷪】有戎勿恤

派生碼訊

巳 蛇

來氏《 易 》易註︰

九二,惕號,莫夜有戎,勿恤。

惕恤,皆憂懼也。剛居柔地,內而憂懼之象也。又變離錯坎,為加憂,亦憂懼之象也。號,呼眾人也。乾為言,外而呼號之象也。二為地位,離日在地下,莫夜之象也。又離為戈兵,坎為盜,又為夜,又本卦大象震,莫夜盜賊,戈兵震動,莫夜有戎之象也。本卦五陽一連,重剛,有戎象,所以卦爻爻辭皆言戎,非真有戎也。決小人之時,喻言小人不測之禍也。狄仁傑拳拳以復廬陵王為憂者惕也,密結五王者號也,卒能反周為唐,是亦有戎勿恤矣。

九二,當夬之時,以剛居柔,又得中道,故能憂惕號呼,以自戒備,思慮周而黨與眾,是以莫夜有戎,變出于不測,亦可以无患矣 。故教占者以此。

《象》曰:有戎勿恤,得中道也。

得中道者,居二之中也。得中,則不恃其剛,而能揚號,不忘備戒,所以有戎勿恤。

︰夬 ䷪ 決之綜卦為姤 ䷫ 遇,遇決之時,決遇之事,難免矣。

夏日晨起天光好,微風吹花氣味佳,忽而 眼皮 皮直跳,不知是何兆?欲法 梅花 花心易,急讀《 觀 水 》觀水之法︰

』是生命三要素── 陽光空氣 ──之一,中國古人認為『天地的大德曰』,強調『生生不息』,或許是喜歡『論水』的重要原因。這三要素包括在『伏羲八卦』的『卦象』裡︰

之後又把『』比之『離之火』,『』擬之『坎之水』;於是在時空中,自然社會的舞台上,述說著『人事物』的故事。由於每個人的感知經驗不同,使得每一個人的世界大異其趣。對於這樣的錯綜複雜之人事物『萬象』,又要如何去理解呢?既然萬象坐落在時空裡,就很經久不變』;而又為人感知哪能夠『沒有異同』。也就是說自然和社會構成的『現象世界』即使人人相同,每個人心中的『印象世界』卻是各各不同,習染個人的風采與印記 ,選擇自己的信仰和道路。試想『科學的實驗』雖然人人時時都可以『驗證』,尚且不免有理論對錯的爭議;那麼『感受的社會』由於刻刻彼此間的『差異』,或許只能求同存異,致力於中和之道了!!在制器尚象一文中,我們主要談的是『』,這裡將說說『觀象』之觀。首先要如何看待卦象呢?【易繫辭‧第七章孔子說

之為不可遠,為屢遷,變動不居,周流六虛,上下無常,剛柔相易,不可為典要唯變所適。其出入以度,外內使知懼,又明於憂患與故。无有師保,如臨父母。初率其辭其方,既有典常。苟非其人,道不虛行。《易》之為也,原始要終,以為也。六爻相雜,唯其時物也。其初難知,其上易知,本末也。初辭擬之,卒成之終。若夫雜物撰德,辯是與非,則非其中爻不備。噫亦要存亡吉凶,則居可知矣。知者觀其彖辭,則思過半矣。

教育之旨重在『啟蒙』,那就藉著『山水蒙』來談談『與時變遷』的卦象── 時物 ──,的『卦變』之法︰

掛名卦象
上下
卦象
左右
卦變
山水蒙
☶ ☵所觀之象
澤火革
☱ ☲錯卦
水雷屯
☵ ☳綜卦
火風鼎
☲ ☴綜卦之錯
地雷復
☷ ☳交互卦
天風姤
☰ ☴交互卦之錯
山地剝
☶ ☷交互卦之綜
澤天夬
☱ ☰交互卦之綜卦之錯
水山蹇
☵ ☶外內反卦
火澤睽
☲ ☱外內反卦之錯
雷水解
☳ ☵外內反卦之綜
風火家人
☴ ☲外內反卦之綜卦之錯

易經有六十四卦,一卦『六爻』,由下往上數,第一爻叫『』,這是因為現象流變不停,『此時』之觀不能夠『窮究』象來之因緣,所以說其初難知。『』比之擬之是『』的模型,可以用來『推敲』象的變化因果,所以把第六爻稱作『』,以至於說其上易知。古有三易之說,連山歸藏周易,這個模型尚且『為道屢遷』,所以不可拘泥於『典要』,必須要『為變所適』。這個『時中』── 時空現象中獨立自主的人 ──就是孔子主張的『中觀』精神。

再將這六爻,兩兩一對從下至上分成『三才』,象徵著,期待能如乾卦九三所說的『終日乾乾』,此處說的是處於上下兩卦,意味著蛻變之義;而乾卦九四所講的『或躍在淵』,表述著人各有志抉擇的行業也就不同。所以一個人如果上下不分顛三倒四的『志‧行』混亂,勢成為俗語稱作的不三不四。而這三四兩爻位總是位於卦之中,或想說著人的存亡吉凶』自來自『是與非之辯』。那要如何『審時度勢』呢?用『』── 當‧機立斷 ──;那又要如何『當‧機』呢?觀『錯綜複雜』又『上下無常』的『卦變』。

【 錯】︰將一卦六爻,陰陽相反,陽變陰,陰變陽

成坤;離為坎。這就是一般人們常說的『立場不同』,雖然『所求之事』未必不同。也許『兩極的對話』當是『相反相成』!!

【 綜】︰一卦的鏡象

物理定律,即使『時間倒流』依然不變;雖然愛因斯坦的『相對論』打破了現象的『同時性』,把『觀察者』帶進了物理世界。綜卦將一個卦『翻面』,以至於原卦之『』成了新卦之『』,彷彿『逆果導因』,鏡裡看著現象

【 交互】︰一卦去掉初‧上,將所剩四爻,以【五‧四‧三】作上卦,以【四‧三‧二】為下卦形成的卦

觀『』字,所象就是以 ── 三‧四 ──為中心,立於地上 ── ──,位於天之下── ──,的象中看象。;不知能否清楚『來龍去脈』。

【 外內反】︰一卦的上下兩體交換

天地轉眼成了地天水火既濟瞬間變作火水未濟。從三才人的角度看,『四』化為新卦之『』,『三』轉作新卦之『』,到底何謂『起點』?又哪是『終點』?真不知如何說『輸贏』的『起跑點』或『終止線』;反而誤將教育的『啟蒙』變成學習的『蹇難』!!

細看卦變之法,何止眼觀四面耳聽八方,如果知道人人太極事事太極以及物物太極,觀『卦』的『心法』就是觀『』── 關鍵點轉捩點槓桿點、…… ──。

宋朝邵康節安樂先生,居地叫做『安樂窩』,著有『皇極經世』一書,將歷史紀年『卦象化』說能推知數百千年的現象;傳聞又有『梅花心易』一本,專講『見機』起卦之法,其中用著『京房八宮卦』,論斷之準真真神乎其技!!歷史上『科學』雖與『巫術』有千絲萬縷的關聯,當細思

子不語:怪、力、亂、神。

季路問事鬼神。子曰:未能事人,焉能事鬼?敢問死?曰:末知生,焉知死?

;然而【易繫辭】裡卻又有

易與天地準,故能彌綸天地之道。天文地理。是故知幽明之故原始反終故知死生之說。是故君子所者,易之序也,所者,爻之辭也。是故觀其象,而玩其辭觀其變玩其占,是以自天佑之吉無不利

這個『死生之說』怎麼說?這是從大自然一年四季的循環,草木的一歲一枯榮,『原始反終』推論而知,絲毫沒有『迷信』的色彩。

……

, 眼 眼為離 ䷝ 目,左通心,其跳吉。跳者 眉 眉居離眼上,或是喜上眉梢之兆。剛過夏至日,兆體取為乾 ䷀ ,目離變二爻,眉梢動上爻,樹欲靜,風不止,定前後。蓋指夬 ䷪ 之革 ䷰ ,當是『己日乃革』,『君子豹變』之象。

因是速往學堂。剛上迴廊,就見課堂外擺著桌子,三五同學看到我來,忙向前導引桌前,在那『未曾有』的『簽到簿』上 畫卯 卯,還得『工筆』寫句『勵志』語,只覺興筆寫下

學  而 時 習 之 不 亦 悅 乎

,卻瞧見同學搔首笑說︰這可是句 畫 『畫』。趕緊添補上一筆

學而時習之不亦悅乎。

一進教室大吃一驚,桌子圍成了『圓』,拱著講桌而排,中央拼作『方』,上有派生碼訊,正播放著學習日子裡的點點滴滴,甚至還配著音樂呢!?一時如在夢中,以為今兒已經是『禮拜一』了,將要開『同樂會』??正惶惑間,……學長走進了教室

 

派︰同學們,大家好。【彷彿一點都不驚訝】

今天的課堂佈置,嗯!天圓而地方,這可不是那『孔方』,擺明了要『化緣』,也罷!!請這兩位同學,出外跑一遭,將『下』星期一才辦的 同 樂 會 同樂會,先行個籌備會,排演一番。在此等

『吃』的之際,正好回顧彼此相聚的短暫時光。…

沒多久,大家的桌上,擺著各樣點心、糖果、飲料,零零種種的有一整桌。祇聽學長講︰今兒,出『錢』的與出『力』的都不講課,大家都來『聽』課,聽 M♪o 講這學期的『最後一堂課』。………【熱烈鼓掌,久久不歇】

原來是學長帶頭『作怪』,看來不上『講台』,這掌聲是不會歇的了。

 

生 ︰☿ 長 長︰既然大家這麼殷勤,無非是想聽『故』事。不說那『圓桌武士』傳奇,就講個《科赫傳說!!》︰

 

KochSnowflakeDiff

MetatronKoch2

antisnowflake

Koch Antisnowflake-construction

在那遙遠的銀河裡,有一個科赫王國。那裡的初始之王是一位大智慧者,許下宏願建造永不退轉之國︰本國之土逐年增長,本國之人亦逐年增長,以至無量之無窮無有盡期。不知如此過了幾千千萬萬年,每代之王都謹尊聖諭,於冬至日祭、夏至日祀天上的『雪花之神』, 如是傳到了科赫國王。這個新王想知道聖諭它是真是假?欲明白雪花之神是有是無?於是招集舉國聰明之人有智之士商議調查之法。此舉震驚了全國,大部分的國民 都嚇壞了,說︰這是對神的大不敬;毀壞歷代立下的規矩;不尊重先王的傳統。科赫國王無奈之餘只能禪讓以息民怨,自己踏上了求解之路!他想我要怎麼才能知道 『國土逐年增長』是個事實的呢?於是他首先拜訪了精通『土地丈量』 的人,那丈量人告訴他︰我家無數代以來從事丈量,就我所知的確土地逐年增長。科赫問︰那能知道新增與舊有的差異嗎?丈量人答︰人人舊有的都沒有差異,新土 在之間發生。一番對談後科赫雖心中覺得這事奇怪,但是也無法再多知道些什麼,於是再度踏上旅程。一路上餐風露宿,心理奇怪著為何幼時認得的老人他家還沒到 呢?終於抵達了那稽古老人之住處。問訊之下,老人家身康體泰甚是健談。他聽那老人家抱怨道︰行走都不方便啦!子孫所居山頭相距一代比一代更遠,怕是再過數 年想見都見不著啦!!科赫心頭一震,詳細詢知了老人家的子孫何代幾時是相距多少路程,然後辭別進入山裡沉思不知所蹤。原來科赫自幼喜歡數學,但不知他自己 『身在』雪花中,能否發現『答案』就是『雪花』的呢?知道那個王國要是再經歷無窮世代後,也許會變成『行不得』之國??

後來傳聞科赫國王花了數十年抵達『初始之王』的墓陵,進入墳中關掉了那台年復一年『擴張一步』的『國土製造圖靈機』,並且又再度稱王。這樣想來,或許科赫國王終究找到了『答案』;然而另一個『反科赫王國』大概情況不妙,也許最終凶多吉少,不知是否會有個睿智之王起身自救的嗎??

 

碼 ︰會 習 。會習。野外 會 會餐。不 習 習無不利。

 

訊 衷情寄語 友 友與 朋 朋,日後將

過故人莊‧孟浩然

故人具雞黍,
邀我至田家;
綠樹村邊合,
青山郭外斜。
開筵面場圃,
把酒話桑麻;
待到重陽日,
還來就菊花。

☿ 

 

 

 

 

 

 

 

M♪o 之學習筆記本《巳》文章︰【䷡】藩決不羸

派生碼訊

巳 蛇

來氏《 易 》易註︰

九四,貞吉,悔亡。藩決不羸,壯于大輿之輹。

貞吉悔亡者,惟正則吉,而悔亡也。決,破也,藩決不羸,承上文而言也。三前有四之阻隔,猶有藩焉。四前二陰,則藩決而可前進矣。震為大塗,兌為附決,藩決之象也。輹與輻同,車輪之中幹也。車之敗,常在折輹,輹壯則車強。四變坤,大輿之象也。壯于大輿之輹,言尚往而可進也。此二句,又貞吉悔亡之象也。

九四當大壯之時,以陽居陰,不極其剛,前無困阻,而可以尚往矣,故其占中之象如此 。

《象》曰:藩決不羸,尚往也。

尚往者,前無困阻,而可以上進也。

︰《 易 》易《序卦》說:遯者退也,物不可以終遯,故受之以大壯。

今天學堂的氣氛輕鬆活潑。有的教室內外忙來忙去,試驗紅外線的發射與接收距離與失誤率。有的三五成群的作主題討論和程式研習 。也許因為昨兒受到學長的 鼓舞 舞,以及 啟發 發,激起了彼此之好奇心與共同探索的熱情。

只見學長跟著幾位同學從休息室那邊走來。

 

派︰同學們,大家好。【漸次歸座,安靜下來】

學長笑著講︰今早有幾位同學跑到休息室搗蛋,說是驗證遙控器的『靈敏度』,不過倒像是考察學長有沒有『 密 密而藏私』。就請你們說說發現了什麼?同學們答︰遙控器在休息室裡,操作的比較順暢正常。那你們是說︰果然我有不傳之 秘 秘的咯!其實昨天要大家『研究』

一、為何沒有 KEY_LEFT、KEY_RIGHT、KEY_UP、KEY_DOWN 卻還能左右上下的呢?

二、遙控器難以操控的原因?

三、可以用 irsend 來控制嗎?

那些『問題』, 就已經講出了『答案』。

假使觀察 LIRC 開機訊息

pi@raspberrypi ~ $ dmesg | grep lirc
[    5.266731] lirc_dev: IR Remote Control driver registered, major 246 
[    5.273095] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.
[    6.226176] lirc_rpi: auto-detected active low receiver on GPIO pin 9
[    6.226741] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0
[    6.226763] lirc_rpi: driver registered!
[    7.636280] input: lircd as /devices/virtual/input/input2

,你將看到『/devices/virtual/input/input2』 這個『虛擬鍵盤』類的輸入裝置。這也就是問題一與二的主要原由。一旦設定了 Kodi 之遙控器支援檔案『Lircmap.xml』和『remote.xml』,每按一次鍵, Kodi 將能從兩方各收到一次按鍵,這就是難以操控的原因。只要將那兩個檔案『刪除』就好了!

『知識』往往因為

好奇 → 探索 → 疑問 → 研究 → 而發現

,關鍵常常來自『疑問』,與『已知的』或『熟悉的』衝突。通常需要審慎的分辨。

至於第三個問題,並非單問 irsend 可以不可以?當然可以,如果看 TuxIOme 的 irsend 程式片段︰

重複次數 = 1

def 紅外線輸出(字碼):
    global 重複次數
    subprocess.call(['irsend', 'SEND_ONCE', 'tuxiome', 字碼,"--count=" +str(重複次數) ])
    return "已送出"

 

,預設是『送一次』,可能發生『收不到』的問題;若是『送多次 』又可能發生『收多次』的麻煩!這就造成類似 Kodi 這種程式操作的不順暢!!所以會有 軟體『過濾器』 ── 去除不要的資訊 ── 以及『轉換器』 ── 將此種型態的輸入轉成彼類型態的輸出 ── 等等想法,試圖解決那個『兩難』。就像用 IREXECXDOTOOL 這些工具解決『問題』一樣。

如果將此處的『解析』,用於論述『明文』或『密訊』的『發文』與『收文』之程式,將可知『收發規範』的『必要性』,否則訊息『內容』的『對錯』根本就沒有 譜 譜了的。思考如下︰

《起始碼》+   【《資料碼》+   《空白碼》+ 】*    《結束碼》+

《KEY_SETUP》+   [《KEY_0 … KEY_9》+  《KEY_ENTER》+ ] *     《KEY_BACK》+

之規範目的,也許方是設計『穩定性』高的『傳輸』程式的第一步 。

用自己能『理解』以及能『驗證』的方式寫程式;就像用『通熟』和『清楚』的文字作表達一樣。這也就是跟,面對『未知』時,『科學家』也是藉著『實驗』與『假設』的『思維方法』相同。

 

生 ︰同學們下禮拜一將舉行 同 樂 會同樂會 ,拋帽大喊 ─ 我畢業了─ 。現在就請大家繼續 遊 習 遊習。 散會。

DS18B20 Digital temperature sensor

  • Description

    These 1-wire digital temperature sensors are fairly precise (±0.5°C over much of the range) and can give up to 12 bits of precision from the onboard digital-to-analog converter. They work great with any microcontroller using a single digital pin, and you can even connect multiple ones to the same pin, each one has a unique 64-bit ID burned in at the factory to differentiate them. Usable with 3.0-5.0V systems.The only downside is they use the Dallas 1-Wire protocol, which is somewhat complex, and requires a bunch of code to parse out the communication. There’s a great Arduino library for 1-Wire, but some microcontrollers do not have support for 1-Wire so be sure to check!

    We toss in a 4.7k resistor, which is required as a pullup from the DATA to VCC line when using the sensor. We don’t have a detailed tutorial up yet but you can get started by using the Dallas Temperature Control Arduino library which requires also the OneWire Library.

  • Technical Details

    Technical specs:

    • Usable temperature range: -55 to 125°C (-67°F to +257°F)
    • 9 to 12 bit selectable resolution
    • Uses 1-Wire interface- requires only one digital pin for communication
    • Unique 64 bit ID burned into chip
    • Multiple sensors can share one pin
    • ±0.5°C Accuracy from -10°C to +85°C
    • Temperature-limit alarm system
    • Query time is less than 750ms
    • Usable with 3.0V to 5.5V power/data

    Downloads:

    DS18B20 Datasheet

……

 

Overview

The Occidentalis Linux distribution for Raspberry Pi (and Raspbian as of Dec 2012) includes support for the DS18B20 1-wire temperature sensor. These sensors come in a small three pin package like a transistor and are accurate digital devices.

In this lesson, you will learn how to use a DS18B20 with the Raspberry Pi to take temperature readings.

Since the Raspberry Pi has no ADC (Analog to Digital Converter), it cannot directly use an analog temperature sensor like the TMP36, making the DS18B20 a good choice for temperature sensing.

……

W1ThermSensor

Gitter

This little pure python module provides a single class to get the temperature of a w1 therm sensor
It can be easily used on are Rasperry Pi over the GPIO interface.


Build Status

Author: Timo Furrer tuxtimo@gmail.com
Version: 0.2.2

Supported devices

The following w1 therm sensor devices are supported:

  • DS18S20
  • DS1822
  • DS18B20

Setup

You just need a w1 therm sensor.
Some of them can be bought here: Adafruit: DS18B20
I’ve used a Raspberry Pi with an GPIO Breakout (Pi Cobbler)

Installation

From Source

git clone https://github.com/timofurrer/w1thermsensor.git && cd w1thermsensor
python setup.py install

Note: maybe root privileges are required

From PIP

pip install w1thermsensor

Note: maybe root privileges are required

……

 

碼 ︰園 園 習 。☿ 長 長︰同學們請安靜。既然學長說了 遊 習 遊習,我們何不效法『古風』 ── 校際觀摩 ── 之法 ,大家各以『主題』自立 旗 旗幟,來個『決藩』 園 園習!看看到底『羸還不羸』的呢?【鼓掌通過】

……
訊 ︰☿ 又誰不知即將各自西東?卻為南北相隔彼此情痛!