十一月 12, 2012
» Blocklyduino is ready for use


After a month of sprint, BlocklyDuino is open sourced and hosted on GitHub
Now it bounds more blocks and have some valid features:

1. Programming Arduino with visually drag and drop code blocks.
2. Generate fully compatible arduino source code.
3. Interacive Arduino board with 10+ predefined Grove sensor blocks.
4. Load different on-site examples with url parameters.

When you click the 'Arduino' tab, the mouse will auto-focused to the code area, that means you can use keyboard to select then copy the source to Arduino IDE.

And now it even support procedures (functions).

BlocklyDuino Google+ page has been created and will update more frequently then here for new features.

十月 6, 2012
» Blockly + Arduino + Grove = Blocklyduino (pre-alpha)



Blockly is a web-based, graphical programming editor. Users can drag blocks together to build an application. 

Arduino is an electronics prototyping platform based on flexible, easy-to-use hardware and software.

Grove is a modular, safe and easy to use group of items that allow you to minimise the effort required to get started with microcontroller-based experimentation and learning.


With recent blockly update, we can make image blocks in blockly, and its pretty easy to make blocks with blockfactory. I feel it's natural to see the real hardware image while program the arduino firmware. So here is my experimental attempt called Blocklyduino.

Besides the basic arduino language functions, I choose Grove blocks to make Blocklyduino fit for non-electronic/wiring-experience people.

Here's the very early version of examples written by Blocklyduino. which should generate the same code that is correspondent to examples on grove wiki.



image from grove wiki


code written by Blocklyduino

Analog Input example

image from grove wiki

code written by Blocklyduino

Blocklyduino will output the arduino source code with setup/loop blocks as usual arduino source code.


To upload those code to the real hardware and see how it works, you need to get a standard Arduino Uno/Duemilanove board, and a set of Grove starter-kit (optional for grove blocks).


Currently Support:  (10/6 updated)
  • arduino functions:
    • compact Digital/Analog Read/Write syntax
    • auto setup pinMode
    • delay and map
    • Build-in LED block, servo block 
  • Grove blocks: LED, Potentiometer, Tilt switch, Piezo Buzzer, Relay

Currently Lack of:
  • Variables support
  • Have to copy-n-paste source to arduino IDE to upload to board


八月 19, 2012

周蟒--中文Python程式語言部落
zhpy
is about »
» 周蟒積木版範例(一)

要驗證積木版這個概念行不行得通,就是把之前寫的咬一口周蟒的範例拿來再做一遍,看看能不能跑

下載與安裝 https://code.google.com/p/zhpy/wiki/DownloadInstall

學習程式的第一個範例 https://code.google.com/p/zhpy/wiki/ExampleHello




不用安裝,直接到 http://www.gasolin.idv.tw/public/blockly/demos/codetw/index.html 執行

開了就是預設的編輯器。也不用適應額外的編輯器

Hello world 範例如下

學習過程中不用再去學習quote、留白。要看「印出」語句的功能,只要將滑鼠移到對應積木上一陣子,就會出現功能說明(英文)。


基礎觀念 https://code.google.com/p/zhpy/wiki/BasicConcept

印出變數範例如下


不需記憶有哪些運算元,要字串或數字時,從對應的積木區塊中挑選即可。

目前版本的缺點是不支援copy/paste積木,每個積木都得從積木區塊中選取。


運算符號和表達式 https://code.google.com/p/zhpy/wiki/OperatorExpressions

算面積與周長範例如下


「建立字串使用」積木比較要稍微學習一下,但還算容易使用。


控制流程 https://code.google.com/p/zhpy/wiki/ControlFlow

猜數字範例如下


2012/8/19更新) 新版本的輸入積木支援預設輸入型別(數字或文字):



在javascript上執行正常,但因為缺乏型別轉換(type conversion),產生的python script少了一個"int",不正確。

猜數字迴圈範例如下


迴圈的使用效果讓我印象很深刻。

for迴圈範例如下


看起來還不錯。

輸入範例如下

運作良好。


在試驗範例的過程中,我也根據實際使用修正了一下語句,現在應該更接近周蟒了。

因為不需要考慮輸入簡易度,「停止」(break)迴圈的另一個選擇是「繼續下一個」(continue)迴圈,比原本周蟒的「繼續」(continue)語句顯得更直白一些。

八月 18, 2012

周蟒--中文Python程式語言部落
zhpy
is about »
» 周蟒積木版範例(二)

2012/8/19 更新

繼續試驗咬一口周蟒文件中的範例

函式 https://code.google.com/p/zhpy/wiki/ZhpyFunctions

簡單的自訂函式範例


非常完美。

函式參數呼叫範例



2012/8/19) 更新後已支援傳入參數。


局部變量範例

目前不支援局部變量,變量全為全局變量。


模組 https://code.google.com/p/zhpy/wiki/ZhpyModules

目前不支援 import 模組。


資料結構 https://code.google.com/p/zhpy/wiki/DataStructure

購物清單範例



沒有列表排序(sort)積木、刪除列表項目積木。


為了生成各種語言程式,Blockly目前並未支援各語言特有的一些型別(type)與操作。也不支援較高階組織程式的方式。當然這些都可以自行訂製。目前看起來Blockly程式積木塊的定義方式很清晰,經過實際驗證,訂製成中文版也完全可行。

看來周蟒積木版有持續發展的可能。

六月 18, 2012

周蟒--中文Python程式語言部落
zhpy
is about »
» 周蟒積木版的一些更新

周蟒積木版是基於Blockly製作的中文視覺化編程版本,目前已開發的新功能如下:



離線使用

現在周蟒積木版已支援離線使用,只要連到

http://www.gasolin.idv.tw/public/blockly/demos/codetw/index.html

並將這網址設成書籤,這樣一來下次離線時也能使用。



儲存/載入積木 (已整合回Blockly)

可參考加入'輸入'積木,允許匯入其他人製作的程式。




保存最後編輯狀態 (已整合回Blockly)

之前在離開瀏覽器畫面、重新載入、或是按「上一頁」鍵後,目前編輯的積木會消失。
現已透過localStorage儲存最後編輯狀態,在下次開啟時即自動讀入。

並新增「清除」按鈕,按下按鈕後可清除畫面上的積木。


提供輸入積木 (已整合回Blockly)

可參考加入'輸入'積木,允許製作文字互動遊戲(如猜數字)。


對照範例

依照「咬一口周蟒」裡的範例,用積木版重新做了一遍,可對照「咬一口周蟒」來學習。


語系無關的獨立XML

現在Blockly新版能產生與不同語系無關的獨立XML,周蟒積木版也已更新到最新的svn版本。


另一個好消息是我已經取得 Blockly 的 committer 權限,會和 Blockly 的開發者合作地更緊密,這些功能也將儘快回饋給 Blockly。

Maze迷宮中文版


可參考 Blockly Maze迷宮中文版

http://www.gasolin.idv.tw/public/blockly/demos/mazetw/index.html


六月 12, 2012

周蟒--中文Python程式語言部落
zhpy
is about »
» 周蟒積木版


周蟒積木版 集各種不實用編程(中文編程+視覺化編程)於一身 XD
透過拖拉積木的方式編程,結果可輸出為Python, Javascript等語言,並可在網頁上執行即時查看結果。


http://www.gasolin.idv.tw/public/blockly/demos/codetw/index.html

這個版本是基於google blockly製作的, 

http://code.google.com/p/google-blockly/

為了支援中文編程,我協助 blockly 的 developer : 
* 將messaging抽出,方便i18n化
* 支援non ASCII變量名
* 加入在網頁上直接執行(透過javascript)功能

這些改進都已經commit進Blockly svn裡了。

周蟒積木版跟周蟒的關係主要體現在
* 目標都是中文編程
* 盡量使用和周蟒一致的變量名
* 一樣可輸出Python

有興趣的朋友可以試玩看看


與周蟒相比,周蟒積木版免去了打程式碼的功夫、
能透過web使用,並提供更多種語言輸出(javascript,python)
也許會對教小朋友學編程更有幫助?

六月 9, 2012

周蟒--中文Python程式語言部落
zhpy
is about »
» 加入'輸入'積木


周蟒積木版在「字串」分類中加上「輸入」積木,現在可以做文字互動遊戲啦。

但因為目前generator的限制, 現在只能用變量來接兩個語句,不能嵌套著用。



畫面右側也多加入了儲存/載入按鈕,但目前只有在Chrome瀏覽器上測試過。

biggo.com.tw

A Django site.