W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之 A.I. 篇

一場人機對奕, AlphaGo

Alphago_logo.svg

AlphaGo阿爾法圍棋,又暱稱阿爾法狗[1]阿法狗[2])是由英國倫敦Google DeepMind開發的人工智慧圍棋程式。2015年10月,它成為第一個無需讓子,即可在19路棋盤上擊敗圍棋職業棋士電腦圍棋程式。[3][4]2016年3月,在一場五番棋比賽中,AlphaGo於前三局以及最後一局均擊敗頂尖職業棋手李世乭,成為第一個不藉助讓子而擊敗圍棋職業九段棋士的電腦圍棋程式。[5]五局賽後韓國棋院授予AlphaGo為有史以來第一位名譽職業九段[6]

專業術語上來說,AlphaGo其做法是使用了蒙地卡羅樹狀搜尋與兩個深度神經網路相結合方法,其中一個是以估值網路來評估大量的選點,而以走棋網路來選擇落子。在這種設計下,電腦可以結合樹狀圖的長遠推斷,又可像人類的大腦一樣自發學習進行直覺訓練,以提高下棋實力。[7][8]

歷史

一般認為,電腦要在圍棋中取勝比在西洋棋等遊戲中取勝要困難得多,因為圍棋的分支因子大大多於其他遊戲,諸如暴力搜尋法Alpha-beta剪枝啟發式搜尋的傳統人工智慧方法在圍棋中很難奏效。[3][9]在1997年IBM的電腦「深藍擊敗俄籍世界西洋棋冠軍加里·卡斯帕羅夫之後,經過18年的發展,棋力最高的人工智慧圍棋程式才大約達到業餘5段圍棋棋手的水平,[10]且在不讓子的情況下,仍無法擊敗職業棋手。[3][4][11]2012年,在4台PC上執行的Zen程式在讓5子和讓4子的情況下兩次擊敗日籍九段棋士武宮正樹[12]。2013年,Crazy Stone在讓4子的情況下擊敗日籍九段棋士石田芳夫[13]

AlphaGo和之前的圍棋程式相比表現出顯著提升。在和Crazy Stone和Zen等其他圍棋程式的500局比賽中[14],單機版AlphaGo(執行於一台電腦上)僅輸一局[15]。而在其後的對局中,分散式版AlphaGo(以分散式運算執行於多台電腦上)在500局比賽中全部獲勝,且對抗運行在單機上的 AlphaGo 有 77% 的勝率。2015年10月的分散式運算版本AlphaGo使用1,202塊CPU及176塊GPU[10]

───

 

改寫了人工智慧的里程碑!!不知古之『奕秋』能有多少勝算??

論語.陽貨篇

宰我問:『三年之喪,期【時間】已久矣。君子三年不為禮禮必壞;三年不為樂樂必崩。舊穀既沒,新穀既升,鑽燧火,【一年】可已矣。』子曰:『食夫稻,衣夫錦,於女【你】安乎? 』曰:『。』『女安則為之!夫君子之居喪,食【脂】不甘,聞 ㄩㄝˋ 不樂 ㄌㄜˋ ,居處不安,故不為也。今女安,則為之!』宰我出。子曰:『予【宰我】之不仁也!子生三年,然後免於父母之懷。夫三年之喪,天下之通喪也。予也,有三年之於其父母乎?』

子曰:『飽食終日,無所用心,難矣哉!不有博弈者乎,為之猶乎已。』

。作者不知那編撰論語者是否有意這樣的安排篇章次序,彷彿孔老夫子以為宰我該去學學下圍棋,怎麼連個慎始敬終的棋理都不通的呢!如此看來圍棋起源實在很古早,有學者推測時間大約是公元前六世紀左右。據稱戰國時之弈秋是史籍記載的第一位高手,君不見《孟子‧告子上》有言︰

孟子曰:『無或乎王之不智也,雖有天下易生之物也,一日暴【曝】之,十日寒之,未有能生者也。吾見亦罕矣,吾退而寒之者至矣。吾如有萌焉何哉?今夫之為小數也;不專心致志,則不得也弈秋,通國之善弈者也。使弈秋二人,其一人專心致志弈秋之為;一人雖聽之,一心以為有鴻鵠將至,思援弓繳而射之,雖與之俱學,弗若之矣。為是其智弗若與?曰:非然也。』

於是乎圍棋成為古代知識分子修身養性的『必修課』,是為『琴棋書畫』四藝之一。這門古老的『博奕之術』有經典的嗎?在此僅舉北宋仁宗時的皇祐中翰林學士張擬所著《棋經》以饗讀者︰

張擬‧《棋經

論局
夫萬物之數,從一而起。局之路,三百六十有一。一者,生數之主,據其極而運四方也。三百六十,以象周天之數。分而為四,以象四時。隅各九十路,以象其日。外周七二路,以象其候。枯棋三百六十,白黑相半,以法陰陽。局之線道,謂之枰。線道之間,謂之罫。局方而靜,棋圓而動。自古及今,弈者無同局。《》曰:『日日新。』故宜用意深而存慮精,以求其勝負之由,則至其所未至矣

得算
棋者,以正合其勢,以權制其敵。故計定於內而勢成於外。戰未合而算勝者,得算多也。算不勝者,得算少也。戰已合而不知勝負者,無算也。兵法曰:『多算勝,少算不勝,而況於無算乎?由此觀之,勝負見矣。』

權輿
權輿者,弈棋布置,務守綱格。先於四隅分定勢子,然後拆二斜飛,下勢子一等。立二可以拆三,立三可以拆四,與勢子相望可以拆五。近不必比,遠不必乖。此皆古人之論,後學之規,捨此改作,未之或知。詩曰:『靡不有初,鮮克有終。

合戰
博弈之道,貴乎謹嚴。高者在腹,下者在邊,中者佔角,此棋家之常然。法曰:寧輸數子,勿失一先。有先而後,有後而先。擊左則視右,攻後則瞻前。兩生勿斷,皆活勿連。闊不可太疏,密不可太促。與其戀子求生,不若棄子取勢,與其無事強行,不若因之自補。彼眾我寡,先謀其生。我眾彼寡,務張其勢。善勝者不爭,善陣者不戰。善戰者不敗,善敗者不亂。夫棋始以正合,終以奇勝。必也,四顧其地,牢不可破,方可出人不意,掩人不備。凡敵無事而自補者,有侵襲之意也。棄小而不就者,有圖大之心也。隨手而下者,無謀之人也。不思而應者,取敗之道也。詩云:『惴惴小心,如臨于谷。

虛實
夫弈棋,緒多則勢分,勢分則難救。投棋勿逼,逼則使彼實而我虛。虛則易攻,實則難破。臨時變通,宜勿執一。《》曰:『見可而進,知難而退。

自知
夫智者見於未萌,愚者暗於成事。故知己之害而圖彼之利者,勝。知可以戰不可以戰者,勝。識眾寡之用者,勝。以虞待不虞者,勝。以逸待勞者,勝。不戰而屈人之棋者,勝。《老子》曰:『自知者明。

審局
夫弈棋布勢,務相接連。自始至終,著著求先。臨局離爭,雌雄未決,毫釐不可以差焉。局勢已贏,專精求生。局勢已弱,銳意侵綽。沿邊而走,雖得其生者,敗。弱而不伏者,愈屈。躁而求勝者,多敗。兩勢相違,先蹙其外。勢孤援寡,則勿走。機危陣潰,則勿下。是故棋有不走之走,不下之下。誤人者多方,成功者一路而已。能審局者多勝。》曰:『窮則變,變則通,通則久。

度情
人生而靜,其情難見;感物而動,然後可辨推之於棋,勝敗可得而先驗。持重而廉者多,輕易而貪者多。不爭而自保者多,務殺而不顧者多。因敗而思者,其勢;戰勝而驕者,其勢退。求己弊不求人之弊者,;攻其敵而不知敵之攻己者,。目凝一局者,其思周;心役他事者,其慮散。行遠而正者,機淺而詐者。能畏敵者,謂人莫己若者。意旁通者,心執一者。語默有常,使敵難量。動靜無度,招人所惡。《》云:『他人之心,予時度之。

斜正
或曰:『棋以變詐為務,劫殺為名,豈非詭道耶?』予曰:『不然。』《》云:『師出以律,否藏凶。兵本不尚詐,謀言詭行者,乃戰國縱橫之說。棋雖小道,實與兵合。故棋之品甚繁,而弈之者不一。得品之下者,舉無思慮,動則變詐。或用手以影其勢,或發言以泄其機。得品之上者,則異於是。皆沉思而遠慮,因形而用權。神遊局內,意在子先圖勝於無朕,滅行於未然。豈假言辭喋喋,手勢翩翩者哉?《》曰:『正而不譎。』其是之謂歟?

洞微
凡棋有益之而損者,有損之而益者。有侵而利者,有侵而害者。有宜左投者,有宜右投者。有先著者,有後著者。有緊避者,有慢行者。粘子勿前,棄子思後。有始近而終遠者,有始少而終多者。欲強外先攻內,欲實東先擊西。路虛而無眼,則先覷。無害于他棋,則做劫。饒路則宜疏,受路則勿戰。擇地而侵,無礙而進。此皆棋家之幽微也,不可不知也。《》曰:『非天下之至精,其孰能與於此。

名數
夫弈棋者,凡下一子,皆有定名棋之形勢、死生、存亡,因名而可見。有沖,有斡,有綽,有約,有飛,有關,有劄,有粘,有頂,有尖,有覷,有門,有打,有斷,有行,有捺,有立,有點,有聚,有蹺,有夾,有拶,有避,有刺,有勒,有撲,有徵,有劫,有持,有殺,有松,有盤。圍棋之名,三十有二,圍棋之人,意在可周。臨局變化,遠近縱橫,吾不得而知也。用倖取勝,難逃此名。《》曰:『必也,正名乎棋!

品格
夫圍棋之品有九。一曰入神,二曰坐照,三曰具體,四曰通幽,五曰用智,六曰小巧,七曰斗力,八曰若愚,九曰守拙。九品之外不可勝計,未能入格,今不復云。《》曰:『生而知之者,上也;學而知之者,次也;困而學之又其次也。

雜說
夫棋邊不如角,角不如腹。約輕於捺,捺輕於避。夾有虛實,打有情偽。逢綽多約,遇拶多粘。大眼可贏小眼,斜行不如正行。兩關對直則先覷,前途有礙則勿徵。施行未成,不可先動。角盤曲四,局終乃亡。直四扳六,皆是活棋,花聚透點,多無生路。十字不可先紐,勢子在心,勿打角圖。弈不欲數,數則怠,怠則不精弈不欲疏,疏則忘,忘則多失勝不言,敗不語。振廉讓之風者,君子也;起忿怒之色者,小人也。高者無亢,卑者無怯。氣和而韻舒者,喜其將勝也。心動而色變者,憂其將敗也。赧莫赧於易,恥莫恥於盜。妙莫妙於用松,昏莫昏於複劫。凡棋直行三則改,方聚四則非。勝而路多,名曰贏局;敗而無路,名曰輸籌。皆籌為溢,停路為芇。打籌不得過三,淘子不限其數。劫有金井、轆轤,有無休之勢,有交遞之圖。弈棋者不可不知也。凡棋有敵手,有半先,有先兩,有桃花五,有北斗七。夫棋者有無之相生,遠近之相成,強弱之相形,利害之相傾,不可不察也。是以安而不泰,存而不驕。安而泰則危,存而驕則亡。》曰:『君子安而不忘危,存而不忘亡。

─── 摘自《物理哲學·中中

 

難道 AlphaGo 『演算法』之精良已出《棋經》之右也!!??深得『智慧』之三昧乎??!!

如果想知道『人工智慧』的滋味,探究它的『功夫火侯』,何不就自己飲水,或可以從此開始︰

About TensorFlow

TensorFlow™ is an open source software library for numerical computation using data flow graphs. Nodes in the graph represent mathematical operations, while the graph edges represent the multidimensional data arrays (tensors) communicated between them. The flexible architecture allows you to deploy computation to one or more CPUs or GPUs in a desktop, server, or mobile device with a single API. TensorFlow was originally developed by researchers and engineers working on the Google Brain Team within Google’s Machine Intelligence research organization for the purposes of conducting machine learning and deep neural networks research, but the system is general enough to be applicable in a wide variety of other domains as well.

What is a Data Flow Graph?

Data flow graphs describe mathematical computation with a directed graph of nodes & edges. Nodes typically implement mathematical operations, but can also represent endpoints to feed in data, push out results, or read/write persistent variables. Edges describe the input/output relationships between nodes. These data edges carry dynamically-sized multidimensional data arrays, or tensors. The flow of tensors through the graph is where TensorFlow gets its name. Nodes are assigned to computational devices and execute asynchronously and in parallel once all the tensors on their incoming edges becomes available.

tensors_flowing

……

Who Can Use TensorFlow?

TensorFlow is for everyone. It’s for students, researchers, hobbyists, hackers, engineers, developers, inventors and innovators and is being open sourced under the Apache 2.0 open source license.

TensorFlow is not complete; it is intended to be built upon and extended. We have made an initial release of the source code, and continue to work actively to make it better. We hope to build an active open source community that drives the future of this library, both by providing feedback and by actively contributing to the source code.

……

Why Did Google Open Source This?

If TensorFlow is so great, why open source it rather than keep it proprietary? The answer is simpler than you might think: We believe that machine learning is a key ingredient to the innovative products and technologies of the future. Research in this area is global and growing fast, but lacks standard tools. By sharing what we believe to be one of the best machine learning toolboxes in the world, we hope to create an open standard for exchanging research ideas and putting machine learning in products. Google engineers really do use TensorFlow in user-facing products and services, and our research group intends to share TensorFlow implementations along side many of our research publications.

───

 

看看是否能將樹莓派『聰明化』??能把 IOT 『智慧化』的耶!!

Installing TensorFlow on Raspberry Pi 3 (and probably 2 as well)

Intro

We did it! It took a lot of head-banging and several indirect passings-of-the-torch, but we finally got TensorFlow compiled and running properly on the Raspberry Pi! Hopefully this will enable more hardware-based machine learning projects, as well as making the distributed aspects of TensorFlow more accessible.

Contents

Installing from Pip

Note: These are unofficial binaries (though built from the minimally modified official source), and thus there is no expectation of support from the TensorFlow team. Please don’t create issues for these files in the official TensorFlow repository.

This is the easiest way to get TensorFlow onto your Raspberry Pi 3. Note that currently, the pre-built binary is targeted for Raspberry Pi 3 running Raspbian 8.0, so this may or may not work for you.

───

 

 

 

 

 

 

 

 

 

 

 

 

 

 

W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之 VLC 篇

或許因為『 omxplayer

About

OMXPlayer is a commandline OMX player for the Raspberry PI.
It was developed as a testbed for the XBMC Raspberry PI implementation and is quite handy to use standalone.

OMXPlayer has big dependencies that take long to compile on Raspberry Pi and usually without sucess, so I decided to make a build-bot for creating binary distributions for Raspbian (Debian with hard-float for RPi).

I didn’t wrote the code, I just provide the binary packages. If you have any problem with them you can contact me in different ways and I will try to help:

  • E-Mail: skgsergio [at] gmail [dot] com
  • Twitter: @skgsergio
  • IRC: [SkG] @ irc.freenode.net (usually online at #raspberrypi, #raspbian and many others.)

───

 

是個『命令列』程式。然而人們總是想要有個『圖形界面』的應用程式,於是許久以來,就有人開始嘗試

Tutorial: Compile VLC with HW acceleration – Jessie, RPi 2/3

by gkreidl » Sat Nov 02, 2013 8:30 am
Update March 14th, 2016:
This is now finally working again! This tutorial is for Raspbian Jessie and the RPi 2 and 3 only!If you have already VLC installed, remove it now (all packages belonging to it).
If not, it might be a good idea, to install it first and remove it again (all packages belonging to it) to get all the program dependencies installed.1) Download and unpack:
http://download.videolan.org/vlc/2.2.2/vlc-2.2.2.tar.xzFor everything else we’ll use a terminal.2) Installing the dependencies for building

……

This will also take a few minutes.

After starting VLC for the first time, change the following options:
Settings, simple, Audio: make sure, ALSA and bcm2835 are selected
Settings, simple, Video, output: select “OpenMAX IL video output”
VLC will remember these settings.

Video is displayed in an overlay, similar to omxplayer, not inside a window. On both RPi2 and 3 it will play up to 1080p video.

If audio is jerky and out of sync, check, if pulseaudio is installed on your system and remove it (only the main application package).

Enjoy!

───

 

後來友人寫了樹莓派二『 vlc 安裝 』一文,作者一旦需要首先也就這麼編譯的了。雖說如今還是『依樣畫葫蘆』,卻請讀者注意那個文本中有一行,應如下︰

./configure –-prefix=/usr –-enable-rpi-omxil –-disable-ogg –-disable-mux_ogg –-disable-mmal-codec

 

果然結果很成功的哩!僅簡單以圖為證︰

VLC 媒體播放器

 

VLC 關於

 

VLC 簡易偏好設定

 

如果問為什麼要作這件事呢?大概由於過去有人問

Do I still need to purchase the MPEG-2 and VC-1 license keys for the Raspberry Pi 2?

 

。即使這在樹莓派 3 之 KODI

 

1.9 Enabling additional video codecs

Link
You can buy additional video codecs (VC-1 – used in some bluray discs, and MPEG-2) from the Raspberry Pi Foundation online shop. After purchase the keys are emailed to you, looking like this (invalid keys used for example):

decode_MPG2=0x1cc591c7
decode_WVC1=0x8aa09876

In order to enable additional video codecs you should modify /boot/config.txt and add these lines literally. The method may vary per distribution:

  • Manual: Open /boot/config.txt with a text editor like nano or vi, and add the keys.
  • XBian: You can add/remote your keys using XBian-config. After reboot your keys will be entered and ready to use.
  • OSMC: Go in to My OSMC -> Pi Config. Navigate to Codecs and enter your keys with the on-screen keyboard. After a reboot your keys will be entered and ready to use.
  • OpenELEC: Type mount /flash -o remount,rw to remount the boot partition in read/write mode. The file to edit is located in /flash/config.txt, and contains stubs for the license keys. Add the keys using nano or vi. There is also an unofficial add-on which can be used to enter the codec information.

 

官方版的驗證下也是需要??!!

雖然『  Jessie 』的 VLC 也已經很新的了︰

pi@raspberrypi ~ apt-cache show vlc Package: vlc Version: 2.2.1-1~deb8u1 Architecture: armhf Maintainer: Debian Multimedia Maintainers <pkg-multimedia-maintainers@lists.alioth.debian.org> Installed-Size: 3859 Depends: fonts-freefont-ttf, vlc-nox (= 2.2.1-1~deb8u1), libaa1 (>= 1.4p5), libavcodec56 (>= 6:11~beta1) | libavcodec-extra-56 (>= 6:11.4), libavutil54 (>= 6:11~beta1), libc6 (>= 2.16), libcaca0 (>= 0.99.beta17-1), libegl1-mesa (>= 7.8.1) | libegl1-x11, libfreerdp-cache1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-client1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-codec1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-core1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-crypto1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-gdi1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-locale1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-rail1.1 (>= 1.1.0~beta1+git20130629), libfreerdp-utils1.1 (>= 1.1.0~beta1+git20130629), libfreetype6 (>= 2.2.1), libfribidi0 (>= 0.19.2), libgcc1 (>= 1:4.4.0), libgl1-mesa-glx | libgl1, libgles1-mesa (>= 7.8.1) | libgles1, libgles2-mesa (>= 7.8.1) | libgles2, libice6 (>= 1:1.0.0), libpulse0 (>= 0.99.4), libqtcore4 (>= 4:4.8.0), libqtgui4 (>= 4:4.8.0), libsdl-image1.2 (>= 1.2.10), libsdl1.2debian (>= 1.2.11), libsm6, libstdc++6 (>= 4.9), libva-drm1 (>= 1.1.0), libva-x11-1 (>= 1.0.3), libva1 (>= 1.2.0), libvlccore8 (>= 2.2.0), libvncclient0 (>= 0.9.9), libwinpr-rpc0.1 (>= 1.1.0~beta1+git20130629), libwinpr-sspi0.1 (>= 1.1.0~beta1+git20130629), libwinpr-utils0.1 (>= 1.1.0~beta1+git20130629), libx11-6, libxcb-composite0, libxcb-keysyms1 (>= 0.4.0), libxcb-randr0 (>= 1.1), libxcb-render0, libxcb-shape0, libxcb-shm0, libxcb-xfixes0, libxcb-xv0 (>= 1.2), libxcb1 (>= 1.6), libxext6, libxinerama1, libxpm4, zlib1g (>= 1:1.2.3.3) Recommends: vlc-plugin-notify (= 2.2.1-1~deb8u1), vlc-plugin-samba (= 2.2.1-1~deb8u1), xdg-utils Suggests: videolan-doc Breaks: vlc-data (<< 1.1.5), vlc-nox (<< 2.2.0~pre2-2~), vlc-plugin-pulse (<< 2.2.0~pre2-2~) Replaces: vlc-data (<< 1.1.5), vlc-nox (<< 2.2.0~pre2-2~), vlc-plugin-pulse (<< 2.2.0~pre2-2~) Provides: mp3-decoder Homepage: http://www.videolan.org/vlc/ Priority: optional Section: video Filename: pool/main/v/vlc/vlc_2.2.1-1~deb8u1_armhf.deb Size: 1280554 SHA256: 567ff0e4faa792b4a23d7331ded649453b2d4e06fee3daf9774007d261e74eec SHA1: 00771e56e45bd9eb8959095a7847433479028393 MD5sum: ecf025906c32b9ceccdb1cf096e0ba3c Description: multimedia player and streamer  VLC is the VideoLAN project's media player. It plays MPEG, MPEG-2, MPEG-4,  DivX, MOV, WMV, QuickTime, WebM, FLAC, MP3, Ogg/Vorbis files, DVDs, VCDs,  podcasts, and multimedia streams from various network sources.  .  VLC can also be used as a streaming server that duplicates the stream it  reads and multicasts them through the network to other clients, or serves  them through HTTP.  .  VLC has support for on-the-fly transcoding of audio and video formats, either  for broadcasting purposes or for movie format transformations. Support for  most output methods is provided by this package, but features can be added by  installing additional plugins (vlc-plugin-fluidsynth, vlc-plugin-jack,  vlc-plugin-notify, vlc-plugin-samba, vlc-plugin-sdl, vlc-plugin-svg,  vlc-plugin-zvbi). Description-md5: c3a7a10e39c9ddd30da6653ec2238442  pi@raspberrypi ~ 

 

問題是沒有『硬體影音解碼』!!??所以 …… 怎麼得到『兩種』好處的乎☆★

可是作者還想要『第三種』的也︰

Listen to Bluetooth Audio on Your Raspberry Pi 3, Pi Zero, or Earlier Pi

YouTube on the Pi

The Raspberry Pi is a handy little computer for so many uses, but Raspbian doesn’t come already set up for listening to audio over Bluetooth headphones or speakers. However, it’s not hard to do, it’s a lot of fun, and it works!. As I’m writing this, I’m listening to 40s Big Band music on my Pi 3 through my Bluetooth headphones.

The instructions in this post are for the February 26, 2016 version of version of Raspbian or Noobs, but they work with all previous versions of Raspbian Jessie. They work for the Raspberry any Pi version, although the Zero and the original Pi are not really powerful enough to stream from the internet. They work great for playing mp3 files with a media player like VLC.

Except for the Pi 3, you’ll need a Bluetooth adapter like the Plugable Bluetooth adapter. For the Pi Zero, you’ll also need a way to connect to the Internet like a Plugable USB-Ethernet adapter or WiFi adapter, along with an OTG cable and a powered hub like the compact Plugable 4-port USB 2.0 hub. Whichever Pi you use, you end up with is a great little music server that opens the door to a lot of fun projects.

───

 

只不過眼前似乎『踢到鐵板』?之前 OK 的『藍牙喇叭』

IMAG1178

 

,現在雖不能用『blueman』連接??不是還可用『bluetoothctl』

pi@raspberrypi ~ bluetoothctl  [NEW] Controller B8:27:EB:23:2B:C8 raspberrypi [default] [bluetooth]# power on Changing power on succeeded [bluetooth]# agent on Agent registered [bluetooth]# default-agent  Default agent request successful [bluetooth]# scan on Discovery started [CHG] Controller B8:27:EB:23:2B:C8 Discovering: yes [NEW] Device 00:02:5B:00:47:4E NOGO B6500 [NEW] Device 74:E5:43:88:E4:16 localhost.localdomain-0 [bluetooth]# pair 00:02:5B:00:47:4E Attempting to pair with 00:02:5B:00:47:4E [CHG] Device 00:02:5B:00:47:4E Connected: yes [CHG] Device 00:02:5B:00:47:4E UUIDs: 	00001108-0000-1000-8000-00805f9b34fb 	0000110b-0000-1000-8000-00805f9b34fb 	0000110c-0000-1000-8000-00805f9b34fb 	0000110e-0000-1000-8000-00805f9b34fb 	0000111e-0000-1000-8000-00805f9b34fb [CHG] Device 00:02:5B:00:47:4E Paired: yes Pairing successful [CHG] Device 00:02:5B:00:47:4E Connected: no [bluetooth]# connect 00:02:5B:00:47:4E Attempting to connect to 00:02:5B:00:47:4E [CHG] Device 00:02:5B:00:47:4E Connected: yes Connection successful [bluetooth]# quit Agent unregistered [DEL] Controller B8:27:EB:23:2B:C8 raspberrypi [default] pi@raspberrypi ~ 

 

連成功乎!怎 A2DP 聲音會 …… 不忍聞的耶!!

 

 

 

 

 

 

 

 

 

 

 

 

 

W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之 I2S 篇

當樹莓派 3 甫一出現,就有人發想『拿來做什麼好呢?』。於是乎各種『最佳計畫』表列林立。這裡挑選曾經談過的典型之幾個︰

入門電腦

遊戲機

媒體中心

‧……

 

其中『媒體中心』︰

過去老子說︰『天地不仁,以萬物為芻狗;聖人不仁,以百姓為芻狗』,如果『祭祀』時不用『活狗』,改以『草扎』的芻狗,總是『比較好』的事吧。或許正因如此,此話歷史上議論的少自然的『法則』和聖人的『教化』,無法因人設事,只好聽之隨緣罷了。後來孟子於《孟子‧梁惠王上》上講︰ 『子曰︰始作俑者,其无后乎?』這可引發了大『辯論』,彷彿人們都想知道孔子此言何意?是不是罵人』?作者於此無意』或者『』說著這一件事情,從另一處說吧,『考古發現古代『宮殿』是有以人為』的事實,『墓穴』又有以人為』的證據,直白的面對不就好了,『是什麼的』就稱它是個什麼』。

甲骨文孚

金文孚

甲骨文妥

金文妥

裘錫圭先生認為』是『』的初文,甲骨文『』從『』從『』,或不 從』而』。『又』、『爪』皆象手形,『象小孩子。『孚』字象抓住一個孩子之形古之戰勝方往往把敵敗方的成年男子殺死,只俘虜婦女和小孩。

』字的甲金文從『』從『』,象以手擒拿、抓取女子之形本義俘掠,後作『』。『妥』與『孚』的造字原理相同吳其昌先生認為甲骨文『男曰孚女曰妥

孔子說法的『真相』是什麼呢?如果從『孔子葬母』一事來看,也許只是製作精美的用之於喪禮頗有意見

作者認為
人類應當誠實面對歷史事實,要能真心認識自己,或許才知道人、事、物的『道路』,也許可避免 進□?退□? 』的『困境』。如果人生真的一個『終極』的『目的』或者說『意義』,那麼過程中的 一切一種『手段』與『追求』。為什麼這麼說呢?畢竟人生自古誰無死?一個航向死亡或是致力期間總是自己方可回答的問題,就像自己想要成為『什麼樣的人』一樣??

過去有人說︰假使『讀歷史』像『看電影』這該有多好?也許時至今日,已然不是不可能的了。然而這還是不能取代如何『解讀』歷史的問題?英國 Robin George Collingwood 過世之後,1946 年他的友人  T.  M.  Knox  將他的『歷史的哲學』之思想編輯成《歷史的理念》一書,這本書說︰

基於自然的『人性』,人的『同理心』和『同感心』是否能夠用著『想像力』的翅膀重回『歷史的現場』,再次在心中『重演』那些『歷史事件』,『體驗』事件中人物的『思想』以及『情感』,因此『解讀』歷史事件中的『人性抉擇』之理性必然性』。

作者從這點切入,是因為不論建立哪種媒體中心』,不管收集哪些媒體』,即使只是以休閒觀賞為目的,都離不開『人、事、物』的『閱讀』,如果以之』,將更能知彼知此』和『知此知彼』,故特寫此一段『前言』。

大火焚毀亞歷山大圖書館 ── 那個藏書量達七十萬卷,只說『書目』就有一百二十卷的圖書館 ── ,如今竟然是到底長的『什麼模樣』都無人知曉?因為它連『一塊殘石』也沒法能留下來!……

───

 

是作者早年喜愛的項目之一,也曾寫『音樂播放器之………』系列文本談談如何將『 CD 轉成 mp3 』。因想增加『軟體影音解碼』的速度,打算將之升級。由於『聲音品質』是欣賞音樂的必要條件,故而考察 HiFiBerry  音效卡

dacplus-rca-300x300

在樹莓派 3 上的『相容性』。非常驚訝的讀到︰

Important news on compatibility with the Raspberry Pi 3

Update 16.03.16: The bug in the Raspberry Pi drivers has been fixed now. All drivers now work perfectly. The Bluetooth-workaround isn’t needed anymore.

Dear customers,

we are happy to tell that most of our boards already work with the new Raspberry Pi 3. Please note, we are still working on making the Digi+ (both versions) and DAC+ PRO fully compatible with the new Raspberry Pi 3.

Right now the boards only work correctly if you disable the Bluetooth option. It looks like this is caused by a conflict with the Bluetooth chip of the Raspberry Pi 3. We work closely together with the Raspberry Pi developers to find a solution as fast as possible. However, at this time it is not clear if there is a hardware conflict on the Raspberry Pi 3 or this can be fixed by upgrading the firmware.

As many of you won’t use the Bluetooth connectivity, the following workaround should work for most of you. You need to add a line

dtoverlay=pi3-disable-bt

 

to /boot/config.txt (the file might be located somewhere else if you are using a distribution different from Raspbian)

If you have any ideas or questions please discuss them in our forum, we are going to support you as good as we can.

Kind regards

Daniel
Founder HiFiBerry

───

 

那時心想『為什麼需要關掉藍牙呢?』,這個

I²S

I²SI2S英語:Inter-IC SoundIntegrated Interchip Sound)是IC間傳輸數位音訊資料的一種介面標準,採用序列的方式傳輸2組(左右聲道)資料。I2S常被使用在傳送CDPCM音訊資料到CD播放器的DAC中。由於I2S將資料訊號和時脈訊號分開傳送,它的抖動jitter)失真十分地小。

一般的I²S

I²S由3條傳輸線組成:

  1. 位元時脈線(BCLK: bit clock line)
  2. 字元選擇線(word select line)或左右時脈線(left right clock line)(LRCLK)
  3. 至少一條複合資料線(SDATA:multiplexed data)

也有可能找到以下這些線:

  1. 主時脈:256個典型的左右時脈線(MCLK= 256*LRCLK)
  2. 上傳資料的複合訊息(multiplex)線

I²S由前述的位元時脈、字元時脈和資料三條線所組成。當新的資料被放到資料線上時,位元時脈就會跳動一次。它以資料取樣頻率的64倍速度在運作, 諸如CD的取樣頻率為44.1 KHz,要傳輸它所使用的位元時脈就為2.8224 MHz。I²S的資料線允許兩個軌道的資料同時傳送,而字元選擇時脈能讓接收裝置知道現在正在傳送軌道1或軌道2的資料。每個軌道可傳輸32位元的資料, 所以顯而易見地,字元選擇時脈和聲音的取樣頻率時脈是相同的。位元時脈即是取樣頻率時脈的64倍,44.1KHz x 2個聲道 x 32位元 = 2.8224MHz。

I²S的資料是從高位元(MSB)傳送至低位元(LSB),從字元選擇時脈的左端開始,加上一個位元時脈的延遲,即資料將比字元選擇時脈要慢一個位 元時脈。也有左校正(Left Justified)的I²S資料流,它沒有位元時脈的延遲,資料和字元選擇時脈是同步的。右校正(Right Justified)則是資料比字元選擇時脈快一個位元時脈。

───

 

到底與『藍牙』能有什麼牽扯??結果踏上了一條意外之旅!或可呈現『樹莓派基金會』和『社群』間的互動關係,『除錯』的實務過程,故特以為記。

當人們對某個『現象』不解,難免會瞎子摸象︰

派︰現在時間尚早,就給大家說個《象  》象法,祝福同學們鵬程萬里︰

《白虎通德論》‧ 卷三‧《五行

五 行者,何謂也?謂金、木、水、火、土也。言行者,欲言為天行氣之義也。地之承天,猶妻之事夫,臣之事君也,謂其位卑。卑者親視事,故自周於一行,尊於天 也。《尚書》:「一曰水,二曰火 ,三曰木,四曰金,五曰土。」水位在北方,北方者,陰氣在黃泉之下,任養萬物;水之為言淮也,陰化沾濡任生木。木在東方。 東方者,陰陽氣始動,萬物始生。木之為言觸也,陽氣動躍,火在南方,南方者,陽在上,萬物垂枝。火之為言委隨也,言萬物布施;火之為言化也,陽氣用事,萬 物變化也。金在西方,西方者,陰始起,萬物禁止。金之為言禁也。土在中央者,主吐含萬物。土之為言吐也。何知東方生?《樂記》曰:「春生,夏長,秋收,冬 藏。 」土所以不名時,地,土別名也,比於五行最尊,故不自居部職也 。《元命苞》曰:「土之為位而道在,故大不預化,人主不任部職 。」

五 行之性或上或下何?火者,陽也,尊,故上;水者,陰也,卑,故下;木者,少陽;金者,少陰,有中和之性,故可曲可直,從革 ;土者最大,苞含物,將生者出者,將歸者,不嫌清濁為萬物。《尚書》曰:「水曰潤下,火曰炎上,木曰曲直,金曰從革,土爰稼穡。」五行所以二陽三陰何?土 尊,尊者配天,金木水火,陰陽自偶。

水 味所以鹹何?是其性也。所以北方鹹者,萬物鹹與,所以堅之也 ,猶五味得鹹乃堅也。木味所以酸何?東方,萬物之生也,酸者以達生也,猶五味得酸乃達也。火味所以苦何?南方主長養,苦者所以長養也,猶五味須苦可以養 也。金味所以辛何?西方煞傷成物,辛所以煞傷之也,猶五味得辛乃委煞也。土味所以甘何?中央者, 中和也,故甘,猶五味以甘為主也。《尚書》曰:「潤下作鹹,炎上作苦,曲直作酸,從革作辛,稼穡作甘。」北方其臭朽者何?,北方水,萬物所幽藏也,又水者 受垢濁,故臭腐朽也。東方者木也 ,萬物新出地中,故其臭膻。南方者火也,盛陽承動,故其臭焦。西方者金也,萬物成熟,始復諾,故其臭腥。中央土也,主養, 故其臭香也。《月令》曰:「東方其臭膻,南方其臭焦,中央其臭香 ,西方其臭腥,北方其臭朽。」所以名之為東方者,動方也,萬物始動生也。南方者,任養之方,萬物懷任也。西方者,遷方也,萬物遷落也。北方者,伏方也,萬 物伏藏也。

行 行的說法太古,傳聞可以追之於神 農 農氏之紀。雖然用著『木』、『火』、『土』、『金』、『水』的名目,只不過假借『可見』之『象』 象,來講那『不可睹』之天行『氣』 氣 。假使用著瞎子摸象的辦法,就會失了『體用』之 經緯 緯。若問『五行』從哪而來的?來自於『陰陽』。『陰陽』又從哪而來的?來自於『太極』。如此問下去,終將歸之於來自『大自然』的了。古人為求『厚生』天 下,『稼穡』的收成十分重要,這可是『靠天吃飯』,所以能由『四時』得出『生、長、收、藏』的道理。而後又用『陰陽五行』解說這個道理的原故,逐漸形成了 『抽象』系統 ,可以『經緯縱橫』的比擬『萬事萬物』的『體』『用』關係。要是理解『精當』,將之用於寫 碼 碼,有何不可的耶!

─── 摘自《 M♪o 之學習筆記本《卯》基件︰【䷪】莧陸夬夬

 

其實這也是『科技』追求『新知』時,常有的『現象』。或許要點在『整體』知識以及『部份』證據之間求『融洽』。而且可能發現『偶然』或『意外』恰是『解決』問題之關鍵處??說不定正是

凡一心追求,必使他求得

的奧秘!!

在此就請讀者好好欣賞這篇《 I2S 除錯記》吧!!!

Possible I2S master/slave bug in RPi3 #1321

bonezuk opened this Issue · 37 comments

Hi

I am currently investigating a number of issues on the rpi-4.1-y branch within our sound drivers concerning the playback of sound via our HiFiBerry Digi+ and DAC-Pro on the new RPi3. After a series of initial investigations we think there might be some conflict on the I2S bus line between the bcm2708_i2s and the (pcm512x and hifiberry_dacplus) modules.

Both the Digi+ and DAC-Pro modules set the

dai->dai_fmt = SND_SOC_DAIFMT_CBM_CFM |SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF;

With hifiberry_dacplus module it is initially configured to

dai->dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS;

This is done so the PCM512x on the DAC+ acts as an I2S slave. On the start in snd_rpi_hifiberry_dacplus_init it detects that wither or not a given board is a DAC-Pro and thus changes the dai_fmt to master (SND_SOC_DAIFMT_CBM_CFM).

Also the same hifiberry_dacplus module works with the DAC+ sound card where it is the I2S slave.

2016-03-02_17-15-04

The image shows the output from my logic analyser of the I2S bus where it shows errors in reading the samples due to an incorrect bit number in a given sample. This also helps tie in with explaining what is actually heard during playback: i.e. Sometimes the music can be heard with distortion, other times there is too much distortion to hear any music.

My best guess, at this moment in time, is that a bug has been introduced in the bcm2708_i2s module or associated architecture somewhere between 4.1.7 and 4.1.18+7 where-by when the dai_fmt flag is set to SND_SOC_DAIFMT_CBM_CFM then both the bcm2708 and associated the snd_soc_codec module both try to send an I2S clock signal. Where as, I would expect only the snd_soc_codec DSP to configure to setup the I2S clock signal.

Another line of investigation that I am looking at is updating and ensuring that our device drivers reflect the various changes to the device tree code. It maybe possible that because of this something is not being initialized write in the bcm2708_i2s module and thus the conflict in the I2S bus.

I’m also currently expanding my investigation of this issue to cover the 4.4 kernel branch.

Let me know if you have ideas but how I can go about resolving this issue?

Cheers,

Stuart

───

Are you saying this fault is only seen on a Pi3, not a Pi2?

───

 

 

 

 

 

 

 

 

 

 

 

 

W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之藍牙篇【下】

想起最早玩『藍牙 BLE 』時,還是用 TI CC2541 SensorTag 。而今已經是

SensorTag2015

Family of tags with pencil and battery

Welcome to the SensorTag Wiki. This page includes information to complement the www.ti.com/sensortag page.

If you are looking for information about the previous generation SensorTag(CC2541 based) please go to http://processors.wiki.ti.com/index.php/CC2541_SensorTag

SensorTag Users Guides

CC2650 SensorTag Software User’s Guide

This User’s Guide provides gives details of CC2650 SensorTag BLE firmware including basic operation, sensor overview, GATT tables, conversion algorithms and overview of Bluetooth low energy commands used to communicate with the phone. SensorTag firmware is delivered as part of BLE Stack, available for download here.

───

 

的了。既然是要驗證樹莓派 3 的內建『藍牙』,索性就玩新的吧!還好新的

CC2650 SensorTag User’s Guide

Back to CC2650 SensorTag main wiki page.

When replacing the battery please check the replacement battery temperature ratings and do not use the SensorTag outside of the battery manufacturer specified temperature range.

This wiki page refers to software available through BLE Stack 2.1, available for download here. Please visit the SensorTag portal where, under the “Teardown” tab, you can find smartphone application source code, design files (schematics, layout, BOM, etc.) and links to the sensor data sheets.

The CC2650 SensorTag is a BLE peripheral slave device based on CC26xx hardware platform including five peripheral sensors with a complete software solution for sensor drivers interfaced to a GATT server running on TI BLEv2.1 stack. The GATT server contains a primary service for each sensor for configuration and data collection.

───

 

使用手冊大體一樣。有鑑於這是首次介紹『此物』,何不串講一些消息資訊給有興趣的讀者參考呢?

【藍牙 BLE 入門】

TI Sensor Tag and Raspberry Pi

In this tutorial, you will learn how to use Bluetooth to connect and get sensor readings from a TI CC2650 SensorTag to a Raspberry Pi

 

【內建藍牙裝置摘要】

pi@raspberrypi ~ hciconfig -a hci0:	Type: BR/EDR  Bus: UART 	BD Address: B8:27:EB:23:2B:C8  ACL MTU: 1021:8  SCO MTU: 64:1 	UP RUNNING  	RX bytes:2090985 acl:104487 sco:0 events:104528 errors:0 	TX bytes:1255589 acl:104488 sco:0 commands:49 errors:0 	Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87 	Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3  	Link policy: RSWITCH SNIFF  	Link mode: SLAVE ACCEPT  	Name: 'raspberrypi' 	Class: 0x000000 	Service Classes: Unspecified 	Device Class: Miscellaneous,  	HCI Version: 4.1 (0x7)  Revision: 0xb6 	LMP Version: 4.1 (0x7)  Subversion: 0x2209 	Manufacturer: Broadcom Corporation (15)  pi@raspberrypi ~ 

 

【尋找藍牙 BLE 設備】

pi@raspberrypi ~ sudo hcitool lescan LE Scan ... 68:C9:0B:17:7E:80 (unknown) 68:C9:0B:17:7E:80 CC2650 SensorTag </pre>    <span style="color: #808080;">【操作藍牙 BLE 東東】</span> <pre class="lang:sh decode:true">pi@raspberrypi ~ gatttool -b 68:C9:0B:17:7E:80 --interactive
[68:C9:0B:17:7E:80][LE]> connect
Attempting to connect to 68:C9:0B:17:7E:80
Connection successful
[68:C9:0B:17:7E:80][LE]> char-write-cmd 0x24 01
[68:C9:0B:17:7E:80][LE]> char-read-hnd 0x21
Characteristic value/descriptor: 54 07 c8 09 
[68:C9:0B:17:7E:80][LE]> quit

 

【飛向雲端】

Controlling TI-CC2650 from anywhere in the world

CC2650

by using BLE in combination with full-duplex real-time communication

About the author

Uffe Björklund is one of the founders and CEO of XSockets.NET and have been working with development around real-time communication since 2009.

Introduction

CC2650 from Texas Instruments is an amazing piece of hardware that enables communication over Bluetooth Low Energy (BLE) as a peripheral device to a central unit. The sensortag has a lot of services, and it would be great to be able to access them from anywhere in the world.

───

 

【派生程式庫】

IanHarvey/bluepy

bluepy

Python interface to Bluetooth LE on Linux

This is a project to provide an API to allow access to Bluetooth Low Energy devices from Python. At present it runs on Linux only; I’ve mostly developed it using a Raspberry Pi, but it will also run on x86 Debian Linux.

There is also code which uses this to talk to a TI SensorTag (www.ti.com/sensortag).

Installation

The code needs an executable bluepy-helper to be compiled from C source. This is done automatically if you use the recommended pip installation method (see below). Otherwise, you can rebuild it using the Makefile in the bluepy directory.

To install the current released version, on most Debian-based systems:

sudo apt-get install python-pip libglib2.0-dev
sudo pip install bluepy

───

 

【簡易說明】

pi@raspberrypi ~ sensortag -h usage: sensortag [-h] [-n COUNT] [-t T] [-T] [-A] [-H] [-M] [-B] [-G] [-K]                  [-L] [--all]                  host  positional arguments:   host                 MAC of BT device  optional arguments:   -h, --help           show this help message and exit   -n COUNT             Number of times to loop data   -t T                 time between polling   -T, --temperature   -A, --accelerometer   -H, --humidity   -M, --magnetometer   -B, --barometer   -G, --gyroscope   -K, --keypress   -L, --light   --all pi@raspberrypi ~ 

 

【指令使用方法】

pi@raspberrypi ~ sensortag 68:C9:0B:17:7E:80 -n 10 -t 0.5 -L Connecting to 68:C9:0B:17:7E:80 ('Light: ', 4.6000000000000005) ('Light: ', 4.6000000000000005) ('Light: ', 4.6000000000000005) ('Light: ', 4.67) ('Light: ', 4.67) ('Light: ', 4.5200000000000005) ('Light: ', 4.5200000000000005) ('Light: ', 4.6000000000000005) ('Light: ', 4.51) ('Light: ', 4.5200000000000005) pi@raspberrypi ~ 

 

期待明天會更好的耶!!!

 

 

 

 

 

 

 

 

 

 

 

 

 

W!o+ 的《小伶鼬工坊演義》︰樹莓派 3 三兩事之藍牙篇【中】

要如何驗證『藍牙』與『藍牙 BLE 』 Bluetooth Low Energy 的呢?首先翻箱倒櫃找出『藍牙虛擬鍵盤』

IMG_1636

 

,本以為安裝了『 blueman 』之後

藍牙裝置_鍵盤

 

,應該一試 OK ,豈料『 Jessie 』不是『 Wheezy 』,竟然『pair』與『connect』失敗。只好查詢於『論壇』︰

[solved] jessie: bluetooth can not connect to kbd MS Wegde

by _emanuel_ » Sat Oct 10, 2015 8:28 am

Whole palette of bluetooth tools are missing.

I can not connect to keyboard like MS Wedge:

no “hidd”, “bluez-simple-agent”, “bluez-test-device”, …

using the binary from other distries just gave me dbus errors.

old procedure were:
(permanently connect)
http://www.correlatedcontent.com/blog/b … pberry-pi/
(once connect)
https://www.raspberrypi.org/forums/view … 2&p=520296

───
 
by Douglas6 » Sat Oct 10, 2015 1:00 pm
Use the bluetoothctl CLI utility with BlueZ 5, or the GUI Bluetooth Manager.

───

 

卻又驚訝的發現『 bluetoothctl 』手冊如此單薄︰

BLUETOOTHCTL(1)             General Commands Manual            BLUETOOTHCTL(1)

NAME
       bluetoothctl - bluetooth control tool

SYNOPSIS
       bluetoothctl

DESCRIPTION
       bluetoothctl is bluetooth control tool

USAGE
       bluetoothctl [options]

       Help Options:
         -h, --help Show help options

       Application Options:
         -v, --version Show version information and exit
         -a, --agent=CAPABILITY Register agent handler

AUTHOR
       This   manual   page   was   written   by   Nobuhiro   Iwamatsu   <iwa‐
       matsu@debian.org>, for the Debian GNU/Linux system (but may be used  by
       others).

                                   May 2013                    BLUETOOTHCTL(1)

 

就連線上的『 help 』也如是簡約︰

pi@raspberrypi ~ $ bluetoothctl 
[NEW] Controller B8:27:EB:23:2B:C8 raspberrypi [default]
[NEW] Device 64:6E:6C:C3:5E:75 CTX-VK200
[bluetooth]# help
Available commands:
  list                       List available controllers
  show [ctrl]                Controller information
  select <ctrl>              Select default controller
  devices                    List available devices
  paired-devices             List paired devices
  power <on/off>             Set controller power
  pairable <on/off>          Set controller pairable mode
  discoverable <on/off>      Set controller discoverable mode
  agent <on/off/capability>  Enable/disable agent with given capability
  default-agent              Set agent as the default one
  scan <on/off>              Scan for devices
  info <dev>                 Device information
  pair <dev>                 Pair with device
  trust <dev>                Trust device
  untrust <dev>              Untrust device
  block <dev>                Block device
  unblock <dev>              Unblock device
  remove <dev>               Remove device
  connect <dev>              Connect device
  disconnect <dev>           Disconnect device
  version                    Display version
  quit                       Quit program
[bluetooth]# 

 

當真天下是『打』出來的,軟體是『TRY』成功的耶!!??後來偶然在網路上發現這篇文章︰

3/8/2016 | By Christopher Rush

Raspberry Pi 3 – How to Configure Wi-Fi and Bluetooth

 

Coming Soon

Raspberry Pi 3: How to configure Wi-Fi and Bluetooth

 
Now that Raspberry Pi 3 has been released with wireless capabilities including Wi-Fi and Bluetooth, I thought I’d write a quick guide in order to get up and running. This guide includes setting up the Wi-Fi via the graphical user interface (GUI) and command line (CLI), connecting a Bluetooth keyboard, and connecting a Bluetooth speaker to play audio. The following examples will also work with Raspberry B+ and Raspberry Pi 2 using universal serial bus (USB) dongles.

───

 

,也許人生『經驗』老似曾相識的乎??!!

猶記當時緊依著『古訓』︰

一個指令,一個動作。

方以『試誤法』完成連線的哩!!!