Author Archives: 科技編輯

[ 翻譯 ] 2018.12.07- 部署機器學習模型更簡單!!如何使用TensorFlow Serving搭配Docker?

翻譯

宗諭

審閱

阿吉老師

主題圖片

Designed by Freepik

原文作者

Gautam Vasudevan與Abhijit Karmarkar,特此致謝!

說明

感謝TensorFlow團隊,特此致謝!原文請見

 

 

 

Serving machine learning models quickly and easily is one of the key challenges when moving from experimentation into production. Serving machine learning models is the process of taking a trained model and making it available to serve prediction requests. When serving in production, you want to make sure your environment is reproducible, enforces isolation, and is secure. To this end, one of the easiest ways to serve machine learning models is by using TensorFlow Serving with Docker. Docker is a tool that packages software into units called containers that include everything needed to run the software.

當從實驗階段移至生產階段,如何快速、簡單地部署機器學習模型,是其中一項關鍵性挑戰。部署機器學習模型,是取用一個訓練好的模型並使此模型能回應預測請求的過程。當把模型部署至實際生產時,使用者想要確保環境是可重現、獨立且安全的。至此,部署機器學習模型最簡單的方法之一,是使用TensorFlow Serving搭配Docker。什麼是Docker呢?Docker是一項把軟體打包成一個個單元的工具,而這樣的單元被稱作「容器」,它包含了運作該軟體的一切所需。

 

Since the release of TensorFlow Serving 1.8, we’ve been improving our support for Docker. We now provide Docker images for serving and development for both CPU and GPU models. To get a sense of how easy it is to deploy a model using TensorFlow Serving, let’s try putting the ResNet model into production. This model is trained on the ImageNet dataset and takes a JPEG image as input and returns the classification category of the image.

自TensorFlow Serving 1.8發佈以來,我們持續改善對Docker的支援。現在,我們提供了Docker 映像檔,讓使用者可針對CPU與GPU模型進行部署和開發。為讓讀者們了解,運用TensorFlow Serving部署模型到底有多簡單,讓我們試著使ResNet模型進行生產。這個模型是以ImageNet資料集來訓練,以JPEG圖像作為輸入,並會回傳此圖像的分類結果。

 

Our example will assume you’re running Linux, but it should work with little to no modification on macOS or Windows as well.

下面的實例假定您使用Linux,但只需要稍微修改(甚至不用),也能在macOS或Windows上運作。

 

Serving ResNet with TensorFlow Serving and Docker

The first step is to install Docker CE. This will provide you all the tools you need to run and manage Docker containers.

TensorFlow Serving uses the SavedModel format for its ML models. A SavedModel is a language-neutral, recoverable, hermetic serialization format that enables higher-level systems and tools to produce, consume, and transform TensorFlow models. There are several ways to export a SavedModel(including from Keras). For this exercise, we will simply download a pre-trained ResNet SavedModel:

運用TensorFlow Serving與Docker部署ResNet

第一步是安裝Docker CE,它將提供運作並管理Docker容器所需的工具。

針對其下各種機器學習模型,TensorFlow Serving使用SavedModel格式。SavedModel是一種語言中立、可回復、密閉序列化的格式,使高階系統和工具得以產生、運用並轉化TensorFlow模型。匯出SavedModel格式(包括Keras的模型)的方法相當多元,本範例將下載預先訓練好的ResNet SavedModel。

$ mkdir /tmp/resnet
$ curl -s https://storage.googleapis.com/download.tensorflow.org/models/official/20181001_resnet/savedmodels/resnet_v2_fp32_savedmodel_NHWC_jpg.tar.gz | tar --strip-components=2 -C /tmp/resnet -xvz

 

We should now have a folder inside /tmp/resnet that has our model. We can verify this by running:

現在,在/tmp/resnet中有一個資料夾,其中包含了我們的模型。請執行以下指令進行驗證:

$ ls /tmp/resnet
1538687457

 

Now that we have our model, serving it with Docker is as easy as pulling the latest released TensorFlow Serving serving environment image, and pointing it to the model:

有了模型之後,要運用Docker部署模型就簡單了,只要使用pull指令取得最新發佈的TensorFlow Serving的serving environment映像檔,並且將serving environment映像檔指向模型即可:

$ docker pull tensorflow/serving
$ docker run -p 8501:8501 --name tfserving_resnet \
--mount type=bind,source=/tmp/resnet,target=/models/resnet \
-e MODEL_NAME=resnet -t tensorflow/serving &
…
… main.cc:327] Running ModelServer at 0.0.0.0:8500…
… main.cc:337] Exporting HTTP/REST API at:localhost:8501 …

 

Breaking down the command line arguments, we are:

以下介紹各個命令列參數:

  • -p 8501:8501: Publishing the container’s port 8501 (where TF Serving responds to REST API requests) to the host’s port 8501

發佈容器埠8501(TensorFlow Serving在此回應REST API請求)對應到主機埠8501。

 

  • –name tfserving_resnet: Giving the container we are creating the name “tfserving_resnet” so we can refer to it later

幫容器命名為「tfserving_resnet」,後續才能參照到它。

 

  • –mount type=bind,source=/tmp/resnet,target=/models/resnet: Mounting the host’s local directory (/tmp/resnet) on the container (/models/resnet) so TF Serving can read the model from inside the container.

運用mount命令,將主機的本地目錄(/tmp/resnet)掛載至容器上(/models/resnet)。這樣,TensorFlow Serving可從容器內讀取模型。

 

  • -e MODEL_NAME=resnet: Telling TensorFlow Serving to load the model named “resnet”

告訴TensorFlow Serving,載入名稱為「resnet」的模型。

 

  • -t tensorflow/serving: Running a Docker container based on the serving image “tensorflow/serving”

根據部署映像檔「tensorflow/serving」來運作Docker容器。

 

Next, let’s download the python client script, which will send the served model images and get back predictions. We will also measure server response times.

接著,讓我們下載python客戶端腳本,這個腳本將傳送部署模型的映像檔,並且取回預測結果。我們也將ˋ計算伺服器的回應時間。

$ curl -o /tmp/resnet/resnet_client.py https://raw.githubusercontent.com/tensorflow/serving/master/tensorflow_serving/example/resnet_client.py

 

This script will download an image of a cat and send it to the server repeatedly while measuring response times, as seen in the main loop of the script:

這個腳本將下載一張貓咪的圖像,並且重複傳送這張圖像至伺服器並計算回應時間,如腳本中的主迴圈所示:

# The server URL specifies the endpoint of your server running the ResNet
# model with the name "resnet" and using the predict interface.
SERVER_URL = 'http://localhost:8501/v1/models/resnet:predict'

...

# Send few actual requests and time average latency.                                                                                                                                                                   
total_time = 0
num_requests = 10
for _ in xrange(num_requests):
    response = requests.post(SERVER_URL, data=predict_request)
response.raise_for_status()
total_time += response.elapsed.total_seconds()
prediction = response.json()['predictions'][0]

print('Prediction class: {}, avg latency: {} ms'.format(
prediction['classes'], (total_time*1000)/num_requests))

 

This script uses the requests module, so you’ll need to install it if you haven’t already. By running this script, you should see output that looks like:

這個腳本使用requests模組,所以如果讀者尚未安裝這個模組,將需要安裝它。執行後應該會看到類似下面的輸出結果:

$ python /tmp/resnet/resnet_client.py
Prediction class: 282, avg latency: 185.644 ms

 

As you can see, bringing up a model using TensorFlow Serving and Docker is pretty straight forward. You can even create your own custom Docker imagethat has your model embedded, for even easier deployment.

從上面的實例可知,運用TensorFlow Serving與Docker部署模型十分直接。讀者甚至可以建置自己的客製Docker映像檔,其中內嵌您的模型,部署起來更加容易。

 

Improving performance by building an optimized serving binary

Now that we have a model being served in Docker, you may have noticed a log message from TensorFlow Serving that looks like:

藉由建置最佳化的部署二元檔來改善效能

既然我們已將模型部署至Docker中,讀者可能已經注意到一則來自TensorFlow Serving的log訊息,如下:

Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA

 

The published Docker images for TensorFlow Serving are intended to work on as many CPU architectures as possible, and so some optimizations are left out to maximize compatibility. If you don’t see this message, your binary is likely already optimized for your CPU.

針對TensorFlow Serving已發佈的Docker映像檔,其目的是盡可能在更多CPU架構上運作,所以會放棄某些最佳化措施來提高相容性。如果您並未看見上述訊息,代表您的二元檔案可能已針對您的CPU進行了最佳化。

 

Depending on the operations your model performs, these optimizations may have a significant effect on your serving performance. Thankfully, putting together your own optimized serving image is straightforward.

取決於您的模型所執行的運算,這些最佳化措施對您模型的部署效能可能有相當顯著的影響。好在,要把最佳化後的部署映像檔組合起來相當簡單。

 

First, we’ll want to build an optimized version of TensorFlow Serving. The easiest way to do this is to build the official Tensorflow Serving development environment Docker image. This has the nice property of automatically generating an optimized TensorFlow Serving binary for the system the image is building on. To distinguish our created images from the official images, we’ll be prepending $USER/ to the image names. Let’s call this development image we’re building $USER/tensorflow-serving-devel:

首先,我們要建置一個TensorFlow Serving經過最佳化的版本。最簡單的方式,是建置官方的TensorFlow Serving開發環境的Docker映像檔。這個映像檔有個很棒的屬性,就是可針對映像檔立基的系統,自動產生一個經過最佳化的TensorFlow二元檔。為區分我們自己建置的映像檔和官方的映像檔,我們將在自己建置的映像檔名稱前加上「$USER/」,讓我們把它命名為「$USER/tensorflow-serving-devel」:

$ docker build -t $USER/tensorflow-serving-devel \
-f Dockerfile.devel \ 
https://github.com/tensorflow/serving.git#:tensorflow_serving/tools/docker

 

Building the TensorFlow Serving development image may take a while, depending on the speed of your machine. Once it’s done, let’s build a new serving image with our optimized binary and call it $USER/tensorflow-serving:

建置自己的TensorFlow Serving開發映像檔根據您的電腦規格可能會花上一段時間。一旦建置完成,就能運用最佳化後的二元檔來建置一個新的部署映像檔,並將它命名為「$USER/tensorflow-serving」:

$ docker build -t $USER/tensorflow-serving \
--build-arg TF_SERVING_BUILD_IMAGE=$USER/tensorflow-serving-devel \ https://github.com/tensorflow/serving.git#:tensorflow_serving/tools/docker

 

Now that we have our new serving image, let’s start the server again:

既然我們已經擁有自己的部署映像檔了,再次啟動伺服器:

$ docker kill tfserving_resnet
$ docker run -p 8501:8501 --name tfserving_resnet \
  --mount type=bind,source=/tmp/resnet,target=/models/resnet \
  -e MODEL_NAME=resnet -t $USER/tensorflow-serving &

 

And finally run our client:

最後,運作前面提到的python客戶端腳本:

$ python /tmp/resnet/resnet_client.py
Prediction class: 282, avg latency: 84.8849 ms

 

On our machine, we saw a speedup of over 100ms (119%) on average per prediction with our native optimized binary. Depending on your machine (and model), you may see different results.

在我們的電腦上運用原生的最佳化二元檔,每次預測的時間平均提升了100ms以上(119%)。不過取決於您的電腦和模型,結果也許不盡相同。

 

Finally, feel free to kill the TensorFlow Serving container:

最後,請用「kill」指令來終止TensorFlow Serving容器:

$ docker kill tfserving_resnet

 

Now that you have TensorFlow Serving running with Docker, you can deploy your machine learning models in containers easily while maximizing ease of deployment and performance.

既然,您已讓TensorFlow Serving與Docker一同運作,自然能輕鬆地部署機器學習模型至容器內,不但能輕鬆部署,效能也能最大化。

 

Please read our Using TensorFlow Serving via Docker documentation for more details, and star our GitHub project to stay up to date.

如果想了解更多細節,請閱讀我們的教學文件,並關注我們的GitHub專案來得到最新訊息。

 

備註:如果想要選購AI人工智慧相關產品,歡迎洽詢機器人王國商城

 

相關文章

 

 

[ 翻譯 ] 2018.12.05- 根據樹莓派基金會,Raspberry Pi 3 Model A+會是3+平台的最終產品?!看快來看看他們的說明

翻譯

宗諭

審閱

CAVEDU教育團隊、Jenny

圖片

翻攝自樹莓派基金會網站,特此致謝!

說明

感謝英國樹莓派基金會授權翻譯,特此致謝!原文請見

 

我們(在此指英國樹莓派基金會)部落格的忠實讀者應該記得,在2014年,Raspberry Pi 1 Model A+緊接著在Raspberry Pi 1 Model B+後推出。藉由將RAM減低至256MB,並且移除USB集線器及乙太網路控制器,我們能把價格降至更低,並將Raspberry Pi 1 Model A+壓縮至一個HAT的大小。

 

雖然我們並未在Raspberry Pi 2或3推出A+的規格,但這已是其中一項,我們最常被詢問「到哪裡去了」的產品。現在,隨著Raspberry Pi 3 Model B+的批量發貨,我們終於能藉由推出Raspberry Pi 3 Model A+,填補上這個產品空缺。

 

Raspberry Pi 3 Model A+ incorporates most of the neat enhancements we made to its big brother, and features:

  • 1.4GHz 64-bit quad-core ARM Cortex-A53 CPU
  • 512MB LPDDR2 SDRAM
  • Dual-band 802.11ac wireless LAN and Bluetooth 4.2/BLE
  • Improved USB mass-storage booting
  • Improved thermal management

 

Raspberry Pi 3 Model A+ 融合了大部分我們為Raspberry Pi 3 Model B+所做的功能強化,並且具備以下特點:

  • 1.4GHz 64位元四核心ARM Cortex-A53 CPU

  • 512MB LPDDR2 SDRAM

  • 雙頻11ac無線LAN和藍牙4.2/BLE

  • 經過改善的USB大量儲存啟動

  • 經過改善的散熱管理

 

正如它的大哥Raspberry Pi 3 Model B+,Raspberry Pi 3 Model A+根據FCC的規定,其整塊電路板被認證為無線電模組。而這樣的經過認證,將大幅減低以樹莓派為基礎的產品進行符合性測試的成本。

 

就某方面而言,Raspberry Pi 3 Model A+對我們來說是個痛苦的產品。回朔至今年三月,我們解釋了為何3+這個平台會是「經典」樹莓派的最終迭代:因為不論我們接下做什麼,都必然不會是一種進化,因為再次進化需要新的核心晶片,並在新的製程上運用新的記憶體技術。所以,3A+算是一次瀟灑地收尾,既回應了其中一項顧客最常提出的詢問,同時也「清理了甲板」,讓我們可以開始認真思考接下來如何。

 

針對Raspberry Pi 3B、3B+及Raspberry Pi Zero,我們官方推出的機殼非常受歡迎,所以,我們當然想針對3A+推出機殼。然而,我們目前尚未準備好,但如下圖所示,機殼非常美觀,我們期待可以在12月初供應給大家,剛好作為送給朋友的聖誕小禮物。

圖1

 

備註:如果您想要購買樹莓派相關產品,歡迎洽詢機器人王國商城

 

相關文章

[ 介紹文 ] 2018.12.04- 千呼萬喚終於始出來!!OpenCV 4.0發佈

撰文

Jack Omnixri

圖片

Jack Omnixri

主題圖片

freepik

說明

本文由作者Jack Omnixri授權轉載,特此致謝!原文網址為:http://ai-robot-stsp.tw/forums/topic/opencv-4-0千呼萬喚始出來/

 

有在玩電腦(機器)視覺的朋友,對開源電腦視覺函式庫「OpenCV」一定不陌生。從2000年發展至今已超過十八個年頭,中間歷經多次重大變革及分支,從2.2版開始支援C++,2.4版開始支援CUDA、OpenCL等加速工具,2.4.9版後本來進到3.0版,停止支援C語言只支援C++,但許多使用C語言的伙伴仍不離不棄,繼續將部份新增功能加入,於是劇情就展開成兩條支線,目前已來到2.4.13.6版,後續是否能繼續發展,實在令人擔憂。而3.0.0版於2015年正式推出,加入許多深度學習工具,3.3版後加入了更多深度學習框架及算法,如Caffe、Yolo⋯⋯等等。最近(2018年11月20日)正式推出4.0版更讓人眼睛一亮,在深度學習部份有了重大改革,實在值得花些時間好好研究。

圖1 OpenCV發展史(OmniXRI Jack整理製作)

 

以下就簡單把此次4.0版更新重點做點整理:

  1. 更完整支援C++11,去除大量OpenCV 1.x版留下的C API,要配合CMake 3.5.1之後版本編譯。

  2. 除原有CUDA、OpenCL支援平行演算外,另外新增大量以GPU繪圖加速計算的處理函式庫G-API。

  3. 在深度神經網路(DNN)模組中增加FP16支援,同時加入ONNX框架,使得各種模型能順利加入執行,如AlexNet、Inception v2、Resnet、VGG、Yolo、Tiny Yolo v2⋯⋯等等。

  4. 對DNN的改進,如Mask RCNN、Faster R-CNN。

  5. 在快速QR Code檢測、3D場場建構的Kinect Fusion、高質量密集光流算法也都有重大改進。

 

另外,Intel OpenVINO對OpenCV也是大力支援,同步推出更新版本,可支援更多的模型及算法,包括:

1. 支援低解析度(Int8)推論,以利Intel CPU及未來低階推論用AI晶片。
2. 加強支援TensorFlow、MXNet、ONNX等框架,以及R-FCN、Yolo v3、 OpenPose等模型算法。
3. 增加三種預訓練模型,以利人臉特徵點、人體姿態建立及將影像超解析度等應用。
4. 可下載ResNet-50、ResNet-101、ResNet-152、GoogleNet v3等模型參數。

 

更多預訓練模型可參考:
https://github.com/opencv/open_model_zoo

 

OpenCV 4.0及OpenVINO更完整的釋出說明可參考官網:
https://opencv.org/opencv-4-0-0.html
https://docs.opencv.org/4.0.0/index.html

 

相關文章

[ 翻譯 ] 2018.12.3- TensorFlow Lite專案分享:Jrobot無人四輪車

翻譯

宗諭

審閱

Joe Chen、CAVEDU教育團隊

專案作者

Joe Chen

感謝作者Joe Chen授權翻譯文字內容,以及播放影片,特此致謝!

主題圖片

Designed by Freepik,特此致謝!

 

Jrobot Self-Drive Powered by TensorFlow Lite

Jrobot無人四輪車的運作核心是TensorFlow Lite。

 

Previously, we used J-control to drive the Jrobot remotely, and this time we get rid of J-control and let Jrobot to do self-drive.

先前,我們運用J-control遠距驅動Jrobot,但這次我們不使用J-control,而讓Jrobot自行駕駛。

 

Jrobot Self Drive is another self-drive experiment based on machine learning, it is not a simulator, it is not a road vehicle, it is a footpath traveler. We built NVIDIA CNN self-drive model using Keras, collected training data, trained the model, and converted the trained model to TensorFlow Lite.

Jrobot無人四輪車是一項建基於機器學習的無人車實驗。Jrobot不是模擬器,也不是道路用車輛,而是一台小型的四輪車。我們運用Keras建構NVIDIA CNN自駕模型,然後收集訓練資料,訓練模型,最後將訓練好的模型轉換至TensorFlow Lite上。

 

TensorFlow Lite allows us to do inference on a mobile device and is the key part of this project. We added TensorFlow Lite to Jrobot Android app. When running, TensorFlow Lite is able to load the trained model, take a camera image as input and give a steering angle as output. Jrobot app runs on an Android phone (Xiaomi Mi5) sitting in the phone box on Jrobot car and control the movement of the Jrobot car through bluetooth connection with Arduino on the car.

運用TensorFlow Lite使我們可以在行動裝置上進行推論,所以TensorFlow Lite可說是這個專案的核心。我們把TensorFlow Lite加至Jrobot Android app中,當運作時,TensorFlow Lite能夠載入訓練好的模型,然後以照相機的圖像作輸入,並給出一個轉向角作輸出。Jrobot app在Android手機上運作,在下面的影片中,我們使用的手機是小米Mi5。當Jrobot準備行駛前,我們把手機放入Jrobot無人四輪車上的手機盒,並透過手機上的藍牙裝置連接四輪車上的Arduino開發板,以控制四輪車的行駛。

 

We did road test in 2 places in the neighborhood and the results show us the trained model works well. Even though it is not full self-drive, it makes human control so much easier, and opens up so many new options, which means there is so much more to do. Thank you!

我們在社區中的兩處地方進行道路測試,結果顯示訓練模型運作的相當好。即便Jrobot目前還不是完全自駕,卻使得人為控制容易許多,並且開啟了許多新選項,這也意味我們還有許多部分需要努力,謝謝。

 

接下來,請讀者們觀賞Jrobot無人四輪車的介紹影片,當中包括了兩次的道路測試(如果讀者想直接看道路測試,第一次道路測試從8:25開始,第二次道路測試從21:30開始):

 

備註:如果想要購買AI人工智慧相關產品,歡迎洽詢機器人王國商城

 

相關文章

 

[ 介紹文 ] 2018.11.28- 進擊的Tank-Go!! V5.3 紅外線對戰坦克

撰文

Niko Yang

圖片

Niko Yang

說明

感謝網友Niko Yang撰稿,特此致謝!

 

玩坦克大戰是許多朋友年輕時期經歷過的美好回憶,無論是從任天堂紅白機或後續的電視遊樂器,坦克大戰皆是熱門的題材之一,也是與朋友或家人共享歡樂的好遊戲。在電視遊樂器之外,至各電商賣場搜尋「對戰坦克」,也有許多遙控坦克販賣,可見坦克類遊戲受歡迎的程度。

 

緣由

欣逢南科AI_ROBOT自造基地交流平台,於6月份在台南舉辦「自造機器人的一百種樣貌」研討會,由KEVIN WANG 對整個MINI-PLAN的進化與發展歷史進行分享。筆者也從研討會認識當前機器人的種類,以及對聯發科技的LinkIt 7697開發板有了第一次接觸。在那麼多的機器人中,最吸引筆者的莫過於TANK GO系列了。

圖1

 

令人驚喜的寶物

目前各種相容於Arduino 的開發板如雨後春筍般出現,有點讓人難以選擇,各家開發板各有千秋。研究各類開發板後,筆者選擇了LinkIt 76XX系列,除了它支援BLE藍芽外,也支援Wi-Fi控制,再加上由MINI-PLAN演進的ROBOT-SHIELD V2 擴充板於2017年10月開始販售,使LinkIt 7697如虎添翼,整體元件結合支援10組PWM及兩組DC馬達同時控制,也支援I2C介面擴充,並由兩顆 270F 2.7V 260mah電容器(Lithium Capacitor)提供電力,不需擔心電源過充或過放電力的問題。也因為是電容器,官方規格的深度循環可達3000次,相對於手機鋰電池的500次循環,連續使用多達六倍以上的時間,也不需擔心起火或爆炸問題。運用在坦克製作上,自然被筆者列為優先考慮的組合。

 

參考文章:

CAVEDU [LinkIt 7697] 認識LinkIt 7697,你會需要這一篇!

圖2

 

資源分享

得到第一把鑰匙後,從網站https://www.thingiverse.com/,看到SMARTS 系列的3D列印件有很大發展空間,同時在YouTube上看見由Chiou ShinWei(George)大神,分享3D列印件和完整的安裝流程,以及零件表和程式碼的分享,皆讓筆者在坦克製作上節省相當多時間。從3D列印領域至控制板,乃至於學生時代學習的知識都要一併用上。在聯發科技網頁上,有很詳細的介紹,以及工程師的技術問題回覆和支援。

 

ShinWei Chiou(George)

V4 版程式和3D模型檔案和零件清單

https://github.com/GeorgeChiou/Robot-Shield-V2.0

 

安裝說明和零件清單

https://youtu.be/rpaQaJ1GmJE

圖3

 

魔鬼藏在細節裡

筆者原以為萬事俱備,結果發現有些事情仍是要嘗試過才能瞭解箇中奧妙。第一個問題是戰車鋁帶元件使用PLA當承軸,但PLA遇到濕氣經過一至二星期後,有30%的PLA承軸斷裂,想拿金屬螺絲取代卻又太重。所以,最後筆者使用木質牙籤,並點上微量的瞬間接著劑在鋁帶元件內側稍做固定。或是由Mike Tsai 網友所建議,用PEG的3D線材取代也可以。

 

在砲台旋轉上,原本使用24AWG線材,但其表皮太硬,導致戰車砲塔旋轉會因線材而上下晃動,馬上更換舵機專用線給紅外線IRDA和紅外線接收IRM-3638N3連接線使用,解決了問題。

 

不用熱熔膠而使用UHU透明膠連接,避免3D列印零件因高溫而變形,以及日後需修改的拆裝;在N20馬達的齒輪本體也塗上田宮齒輪油,塗上後N20馬達瞬間耗電流下降許多,齒輪轉動聲音也慢慢變小。自造的迷人之處,就在於不斷有新挑戰出現,卻總能一一克服。

圖4

 

性能再強化

在筆者與家人玩TANK-GO一段時間後,收集了大家的建議進行一次修改及強化性能,於是便著手發展V5.3版的程式碼。首先在手機操控介面上,針對按鈕位置重新編列,以及針對功能進行調整,不僅操作便利更適合長時間使用。可惜聯發科技的 LRCONTROL 目前暫時只支援六種顏色(RC_ORANGE, RC_BLUE, RC_GREEN, RC_PINK, RC_GREY, RC_YELLOW)。

https://docs.labs.mediatek.com/resource/linkit7697-arduino/en/developer-guide/using-linkit-remote/lremote-control-classes

 

同時戰車砲塔旋轉角度的左右方向,也進行一致性調整;在MPFPLAYER 聲音按鍵上,也更改為每階2格度調整,並限制最大至28 (MAX:30),避免小的喇叭單體破音,以及夜間播放音樂聲量的細部調整。

 

朋友建議加上兩顆燈光(LED)做為彈藥用盡或生命值歸零的提醒,也避免因緊張一直按鈕卻無動作對應。經筆者考慮,除了LED作為狀態顯示外,也加入兩段系統語音,例如:補彈藥和修理進行提示。其他細節可參考GITHUB上的README完整說明。

 

Niko Yang V5.3 版修改軟體和電子零件焊接圖片

https://github.com/yangniko137/Tank-Go-V5?fbclid=IwAR0NseA_2R2cRFvZRvyqWwNXehPig6qMT5wTly-tnJPS84LIOpKXyL0n61k

圖5

 

未來發展

科技發展鮮少有停頓的時刻,在筆者看過「少女與戰車(GIRLS und PANZER)」影片後,發覺還有許多功能值得更新,例如生命值歸0後,升起投降用的白色旗子⋯⋯等等。

 

兩顆超大電容提供激烈對戰達40分鐘左右,但把戰車當成MP3播放器聽CD書,這時便需要插5V市電供應,也考慮以14650或18650電池和保護板供電,省去電線纏繞的困擾。

 

對戰時的遮蔽建築物連同戰車收納的盒子,也可考慮製做成組合式,並且各戰車語音可以男女分開⋯⋯等等。這些都是很好的建議,以及下一步更新的方向。

圖6

 

結論

舉一反三,除了坦克外也順便發展FPV加上攝像頭及圖傳,加上接收和螢幕就可在家中探險。自造除了腦力激盪外,也藉由製作過程認識新的學問及志同道合的朋友。因此,謹藉由本篇文章,感謝無私分享的Maker們。

圖7

 

備註:如果您想要購買 LinkIt 7697Robot Shield,歡迎洽詢機器人王國商城,謝謝。

 

相關文章

[ 教學技術文翻譯 ] 如何在 ubuntu 16.04或之後的版本,安裝 Tensorflow ?

作者/攝影

翻譯:宗諭

審閱:阿吉老師

主題圖片:翻攝自ubuntu及TensorFlow網站,特此致謝!

說明

原文請見,感謝TensorFlow團隊授權,特此致謝!

文章分類教學技術文
材料表
  • ubuntu 16.04或之後的版本(64位元)

 

硬體需求:

1.從TensorFlow 1.6開始,執行檔使用AVX指令集,因此在較舊的CPU上,可能無法執行。

2.請先閱讀GPU支援說明,並在ubuntu上設定好能安裝CUDA的GPU。

 

Step1:請在您的系統上先安裝Python開發環境(需使用Python 3.4、3.5或3.6)。

請用以下指令來檢查:

python3 --version
pip3 --version
virtualenv --version

 

如果這些套件都已經安裝好了,請跳過下一步。若沒有安裝好的話,請安裝Pythonpip package managerVirtualenv

sudo apt update
sudo apt install python3-dev python3-pip
sudo pip3 install -U virtualenv  # system-wide install

 

Step2:建立虛擬環境(推薦)

Python virtual environments are used to isolate package installation from the system.

之所以要建立個別的Python虛擬環境,是為了從作業系統隔離不同版本的套件。

 

Create a new virtual environment by choosing a Python interpreter and making a ./venv directory to hold it:

1.藉由選擇一個Python直譯器並產生一個./venv目錄存放它,以建立一個新的虛擬環境。

virtualenv --system-site-packages -p python3 ./venv

 

2.使用shell指令來啟動虛擬環境。

source ./venv/bin/activate  # sh, bash, ksh, or zsh

 

When virtualenv is active, your shell prompt is prefixed with (venv).

3.當虛擬環境被啟動,您電腦上的提示符號的前面會多了一個(venv)。

 

Install packages within a virtual environment without affecting the host system setup. Start by upgrading pip:

4.在虛擬環境中安裝套件,不會影響主機系統的設定。讓我們先升級pip:

pip install --upgrade pip

pip list  # show packages installed within the virtual environment

 

5.如果您已經不需使用TensorFlow,請用以下命令離開虛擬環境:

deactivate  # don't exit until you're done using TensorFlow

 

Step3:安裝TensorFlow pip套件

 Choose one of the following TensorFlow packages to install from PyPI:

因為本文使用的作業系統是ubuntu,所以請根據您的電腦規格,從PyPI來安裝下列其中一個TensorFlow套件:

  • tensorflow– 當前版本,只支援CPU,推薦初學者安裝。
  • tensorflow-gpu– 當前版本,支援GPU(ubuntu和Windows)
  • tf-nightly – nightly版本,只支援CPU,不穩定。
  • tf-nightly-gpu–nightly版本,支援GPU,不穩定(ubuntu和Windows)

 

請在虛擬環境中輸入以下命令來安裝您所要的TensorFlow版本,例如:

pip install --upgrade tensorflow

 

接下來,驗證安裝:

python -c "import tensorflow as tf; tf.enable_eager_execution(); print(tf.reduce_sum(tf.random_normal([1000, 1000])))"

 

如果沒有看到錯誤訊息,就安裝完成了!接下來,讀者可以先閱讀一些教學文件,然後展開對TensorFlow的初體驗。

 

備註:如果想要購買人工智慧相關產品,歡迎洽詢機器人王國商城

 

相關文章

[ 採訪 ] 2018.11.23- 真・創客無雙!!MoMaker放大絕 揉合彈珠檯、遊樂園、奇幻等元素 打造飛龍與騎士的彈珠檯

採訪/撰文

宗諭

攝影

宗諭

受訪者

MoMaker的David與Clement

說明

文中影片的版權屬於MoMaker,感謝授權使用,特此致謝!除了第一部是影片外,其它都是音訊,特此跟讀者們說明。

 

猶記得在Maker Faire Taipei 2018中,這個令人超級驚豔的作品嗎?

 

這個作品是由MoMaker兩位創辦人David與Clement精心打造,名叫「飛龍與騎士的奇幻冒險彈珠檯」。小編相信讀者們大概會認為,能夠打造出這麼厲害的作品,兩位大大若不是武功高強、技能滿點,至少也是本職學能充足吧???來聽聽兩位大大怎麼說:

 

什麼!原來他們也是一步步摸索出來的!那我,豈不是也有機會做出這麼厲害的作品?沒錯,這也正是他們想要傳遞的訊息:

 

是不是!有沒有很勵志!!那麼究竟他們是如何想出讓彈珠檯結合飛龍與騎士的元素呢?是不是看了《冰與火之歌》或《魔戒》啊?

 

原來兩位大大是奇幻迷啊!難怪能做出如此有味道的作品。而小編在準備這次採訪時,因為有在Facebook粉絲團上發佈消息,有網友因感到好奇而留言詢問:「未來有考慮與政府機關或民間單位進一步合作,把這個作品擺在合適地點,使它成為一個景點嗎?」關於這個問題,David與Clement如此回覆:

 

有沒有聽到關鍵字「第二版」呢?小編便替大家問問,究竟第二版彈珠檯與第一版有何不同?

 

圖1 第二版改為金屬製的齒輪

 

看、聽至此,讀者們應該會想跟兩位MoMakers見見面吧?不過先聲明,這可不是美圖秀秀,而是硬派創客照喔,請看:

via GIPHY

 

不好意思,不好意思,應該是這一張才對:

圖2 兩位MoMaker,左為David,右是Clement。

 

今天的報導就到這邊,下次有機會再為讀者們採訪。如果您有希望我們去採訪的Maker領域的人選,歡迎留言,我們會斟酌納入考量,謝謝。

 

備註:如果您想要購買Maker相關產品、器材,歡迎洽詢機器人王國商城,謝謝。

 

相關文章

【Fun School撒野同樂會 in 2018 MAKER PARTY 】發光吧!生命之樹!!

撰寫

陳亭妏

攝影

吳怡婷

活動主視覺

活動視覺元素由親子天下提供,特此致謝!

 

【神奇黏土不思議!導電黏土的神秘面紗】

坊間有許多兒童黏土、陶土的捏塑教學,除了製作上簡單、造型要吸睛之外,我們還能夠添加什麼元素,使成品更耀眼呢?今天,我們要使用神奇的導電黏土,接上LED燈和線路,讓外型可愛的植物,就像被賦予生命般閃閃發亮!特別需要注意的是,必須要加入能導電的溶液,才能使黏土導電喔。

 

【辦公室盆栽人氣王——仙人掌】

第一個要跟讀者們介紹的造型是仙人掌,討喜又多變的外觀,使它常常成為黏土課的主角啊!我們在仙人掌的頭頂插入LED燈(是不是很俏皮呢?),使仙人掌的兩隻手臂由導電黏土跟燈,記得身體要用黏土喔!加上小刺跟條紋等裝飾,造型就更完整可愛了!

圖1

 

【可愛又有趣的肉多多盆栽首選——石蓮花】

第二個造型是石蓮花,肥肥的外型也是深受大家喜愛的多肉植物之一,先用黏土做造型,並在最底下選兩片花瓣,用導電黏土讓LED「站得住腳」。在正中央亮燈的造型就是療癒啊~~

圖2

 

【美麗且歷久不衰的——永生玫瑰花】

登登登!!壓軸登場的是美麗的玫瑰花。大家是否記得在卡通版的美女與野獸裡,被玻璃瓶裝著的玫瑰花嗎?造型的作法與石蓮花相似,先耐心把花瓣由內到外完成,再把底下的兩片葉子用導電黏土製作就能成功亮燈啦。聖誕節馬上就到了,玫瑰花的造型配上球球,只要再打個緞帶,就能製造出滿滿的聖誕氣息!是不是送禮自用兩相宜呢?

圖3

 

這些可愛又療癒的作品教學,即將出現在11月29日至12月2日,在圓山花博爭艷館的Maker Party喲!讓我們一起動手讓生命之樹發光吧!

MAKER PARTY 主視覺

 

相關文章

[ 翻譯 ] 2018.11.20- 方便且又品質好!樹莓派遠端監控3D印表機和列印工作利器——OctoPi

翻譯

宗諭

審閱

曾希哲老師、CAVEDU教育團隊

圖片

CAVEDU教育團隊

主題圖片:擷取自OctoPrint官網,特此致謝!

說明

原文請見。感謝曾希哲老師協助,特此致謝!

 

Hello!各位讀者安安!今天要跟大家介紹的是OctoPi

 

什麼是OctoPi呢?

看到字面上有Pi,應可猜測到與Raspberry Pi有關聯。的確,OctoPi是OctoPrint針對3D印表機的樹莓派軟體發佈。它包含了針對3D印表機的主軟體OctoPrint,還有mjpg-streamer with RaspiCam support。後者的作用是提供3D列印的即時影像,以及產生縮時影像。

 

蝦咪係OctoPrint?

OctoPrint是一個針對3D印表機的即時網路介面,讓使用者可直接從瀏覽器監控3D印表機和列印工作,而且是一個完全開放原始碼的軟體。

 

為什麼要使用OctoPi呢?

根據小編請教花蓮的曾希哲老師,他表示:「因可以遠端傳檔案進OctoPrint,然後列印,不需要拿SD卡跑來跑去。另外,可遠端監看印表機的列印狀況,監看的內容包括:溫度、列印路徑、列印畫面,讓使用者不需跑來跑去觀看列印進度。而且很重要的是,用Octopi控制3D列印,效果很好!」

 

推薦使用硬體:Raspberry Pi 3

請讀者們特別注意,OctoPrint官方並不推薦使用Raspberry Pi Zero W,因為當頻寬被使用時,WiFi介面會影響效能,導致3D列印品質下降。

圖1

 

現在,就讓我們來安裝OctoPi吧:

Step1:解壓縮您的圖像,然後把圖像安裝入一張SD卡中。

 

Step2:設定您的WiFi。當以隨身碟方式使用SD卡時,編輯SD卡根目錄上的octopi-wpa-supplicant.txt

 

Step3:從SD卡讓您的樹莓派開機

 

Step4:透過SSH登入您的樹莓派(如果您的樹莓派支援ZeroconfSSH位於octopi.local,或是路由器指定的IP位址)。預設的username是「pi」,預設的密碼則是「raspberry」。如果您想要改變密碼的話,請運用指令passwd。

 

Step5:為了要安裝外掛程式,pip位在/home/pi/oprint/bin/pip。因此,安裝指令應該會是這樣:/home/pi/oprint/bin/pip install <plugin-uri>

 

需要注意的是,OctoPrint主程式位於http://octopi.localhttps://octopi.local,既然SSL憑證由自己核發,並於首次開機時產生,當您在https://octopi.local這個位址時,您會收到一則憑證警告,請忽略它。

 

如果樹莓派偵測到USB網路攝影機或樹莓派攝影機,MJPG-streamer將自行啟動作為網路攝影機的伺服器。如果需要的話,您可以在http://octopi.local/webcam/?action=stream下,分別找到MJPG-streamer與SSL憑證,或直接在設定連接埠8080:http://octopi.local:8080/?action=stream

 

同場加映

然而,除了樹莓派之外,讀者們也可把OctoPi安裝在LinkIt 7688上,透過7688無線控制3D印表機。

圖2 LinkIt 7688

 

圖3 LinkIt 7688 Due加上擴充板

 

但要怎麼做呢?請參考以下步驟:

Step1:將手邊的LinkIt 7688,由AP mode轉成Station mode。

 

Step2:電腦需要與LinkIt 7688在同一網段

 

Step3:運用電腦進行IP scan,尋找到LinkIt 7688的IP。

 

Step4:連線登入

 

Step5:更新

 

Step6:將OctoPi下載至USB隨身碟

 

Step7:安裝OctoPi

 

Step8:將LinkIt 7688轉回AP mode

 

Step9:進行連線測試

 

這篇文章的介紹就到此,讀者們可以拿樹莓派或LinkIt 7688試試看。

 

備註:如果想要購買樹莓派LinkIt 7688,歡迎洽詢機器人王國商城。

 

相關文章

[ 翻譯 ] 2018.11.19- Intel最新推出 NCS 2 第二代神經運算棒! 打造更聰明AIoT裝置

翻譯

宗諭

審閱

阿吉老師

圖片

截圖自Intel第二代神經運算棒介紹影片,特此致謝!

說明

感謝Intel授權翻譯,原文連結請見這裡,特此致謝。

 

Intel is hosting its first artificial intelligence (AI) developer conference in Beijing on Nov. 14 and 15. The company kicked off the event with the introduction of the Intel® Neural Compute Stick 2 (Intel NCS 2) designed to build smarter AI algorithms and for prototyping computer vision at the network edge. Based on the Intel® Movidius™ Myriad™ X vision processing unit (VPU) and supported by the Intel® Distribution of OpenVINO™ toolkit, the Intel NCS 2 affordably speeds the development of deep neural networks inference applications while delivering a performance boost over the previous generation neural compute stick. The Intel NCS 2 enables deep neural network testing, tuning and prototyping, so developers can go from prototyping into production leveraging a range of Intel vision accelerator form factors in real-world applications.

11月14、15日,Intel正在北京主辦自家首次的「人工智慧開發者大會」。Intel在會議開場便向與會者介紹了 Intel® Neural Compute Stick 2 (Intel NCS 2 第二代神經運算棒,本文後簡稱NCS2)。NCS2是為了建構更聰明的AI演算法,以及在網路邊緣節點上的電腦視覺原型開發所設計。NCS2的運作是以 Intel® Movidius™ Myriad™ X 視覺運算單元(VPU)為基礎,並支援Intel® Distribution of OpenVINO™ toolkit,能加速深度神經網路推論應用的開發,同時效能相較於第一代的神經運算棒提升得更多。NCS2可做到深度神經網路的測試、調整與原型開發,使開發者可以實際利用一系列不同大小的Intel視覺加速器,幫助您從原型一路走到商品化。

 

“The first-generation Intel Neural Compute Stick sparked an entire community of AI developers into action with a form factor and price that didn’t exist before. We’re excited to see what the community creates next with the strong enhancement to compute power enabled with the new Intel Neural Compute Stick 2.”
–Naveen Rao, Intel corporate vice president and general manager of the AI Products Group

Intel副總裁暨AI事業部總經理Naveen Rao表示:「第一代的神經運算棒的外觀造型和價格已可說是前所未見,也鼓勵了非常多AI開發者來實際運用它。我們十分樂見伴隨著第二代神經運算棒的運算能力大大提升之後,整個AI開發者社群在未來能創造出更多令人驚艷的專案或產品!」

 

What It Does: Bringing computer vision and AI to Internet of Things (IoT) and edge device prototypes is easy with the enhanced capabilities of the Intel NCS 2. For developers working on a smart camera, a drone, an industrial robot or the next must-have smart home device, the Intel NCS 2 offers what’s needed to prototype faster and smarter.

NCS2的功用為何?

隨著Intel NCS2的效能大幅提升,開發者將更容易將電腦視覺與AI人工智慧整合進物聯網(IoT)及邊緣裝置的原型中。針對智慧相機、無人機、工業用機器人,或是未來每個家庭都必備的智慧家庭裝置,Intel NCS2更提供了開發者能夠讓原型更快更智慧設計之所需。

 

What looks like a standard USB thumb drive hides much more inside. The Intel NCS 2 is powered by the latest generation of Intel VPU – the Intel Movidius Myriad X VPU. This is the first to feature a neural compute engine – a dedicated hardware neural network inference accelerator delivering additional performance. Combined with the Intel Distribution of the OpenVINO toolkit supporting more networks, the Intel NCS 2 offers developers greater prototyping flexibility. Additionally, thanks to the Intel® AI: In Production ecosystem, developers can now port their Intel NCS 2 prototypes to other form factors and productize their designs.

NCS2的外表看來就像個USB隨身碟,內在卻蘊含許多最新科技。由最新一代的Intel VPU(Intel Movidius Myriad X VPU)為基礎,NCS2是第一個標榜為神經運算引擎的產品 — 能提供更多運算效能的神經網路推論專用加速器。。結合了由Intel所推出,且支援更多網路的OpenVINO工具包,NCS2給予開發者在原型開發上更大的彈性。此外,感謝Intel® AI: In Production 生態系,開發者現在可將他們的Intel NCS2原型以不同的外觀造型來呈現,並將自己的設計產品化。

 

How It Works: With a laptop and the Intel NCS 2, developers can have their AI and computer vision applications up and running in minutes. The Intel NCS 2 runs on a standard USB 3.0 port and requires no additional hardware, enabling users to seamlessly convert and then deploy PC-trained models to a wide range of devices natively and without internet or cloud connectivity.

NCS2如何運作?

只要一台筆記型電腦與一隻NCS2,開發者馬上就能進行各種AI和電腦視覺應用!NCS2只要接上標準的USB 3.0連接埠即可,不需要額外的硬體設備,讓使用者能把原本在PC上訓練的模型轉換並部署至各種裝置上,過程中不需連接網際網路或雲端服務。

 

The first-generation Intel NCS, launched in July 2017, has fueled a community of tens of thousands of developers, has been featured in more than 700 developer videos  and has been utilized in dozens of research papers. Now with greater performance in the NCS 2, Intel is empowering the AI community to create even more ambitious applications.

Intel第一代神經運算棒是在2017年7月推出,已經造福了數以千計的開發者,有多達700位開發者拍了影片來介紹它,更在數十份研究報告中被使用。現在,伴隨著第二代神經運算棒的更強大效能,Intel正努力協助AI人工智慧社群來創造出各種更具雄心的應用。

 

備註:如果想要購買Intel NCS相關產品,請洽機器人王國商城,謝謝。

 

相關文章

[ 教學技術文 ] 萬聖節最強Maker挑戰!!!親手用DesignSpark Mechanical繪製一個南瓜手機架

作者/攝影

作者/圖片:邱柏憲

部分圖片:來自pixabay網站,特此致謝!

文章分類教學技術文
材料表
  • DesignSpark Mechanical軟體*1
  • 電腦*1(安裝Windows作業系統)

 

雖然過了一點時間,但還是邀請大家來看這一篇(單押)。

請先看一段作者柏憲大大的創作理念:

 

有時候用一些方法可以做出特殊的造型,例如這次的南瓜,便是利用12塊拱柱組成。此外,加上一點創意也可以使原本簡單的作品有更生動的表現。所以,讀者們在使用DesignSpark Mechanical,或自造任何其他作品時,非常歡迎動用點巧思、創意,也許是腦海中的靈光一現,便能使作品更加生動、有趣喔!

 

如果讀者們想要進一步了解南瓜手機架如何製做,請點擊進入DesignSpark的技術部落格閱讀,謝謝。

https://www.rs-online.com/designspark/makerdesignspark-mechanical-cn

[ 翻譯 ] 2018.11.15- micro:bit全球大挑戰 台灣之光們準備好了嗎?

翻譯

宗諭

審閱

CAVEDU教育團隊

圖片

擷取自micro:bit官網,特此致謝!

說明

原文請見,特此致謝!

 

Can you help solve a problem in your community by using the BBC micro:bit?You could win an all-expenses-paid trip to London to take part in the amazing micro:bit Global Challenge day and start to make a real difference in the world!

你可以運用BBC micro:bit,幫助您所屬社群解決問題嗎?如果你願意的話,就有機會贏得一趟免費前往英國倫敦的旅程,參加超級精彩的micro:bit全球挑戰日,並開始讓這個世界有所不同!

 

大挑戰

The Sustainable Development Goals or Global Goals have been created to reduce inequality and to create a world that is fair for everyone, where no-one is left behind. We want you to think about how you can help achieve goal 3 (Good Health and Wellbeing)4 (Quality Education), and 16 (Peace, Justice and Strong Institutions) by focusing on the themes, non-communicable diseases and safety.  How can we ensure that people stay healthy and choose healthy lifestyles? How do we make sure all communities are safe for people to carry out their jobs and attend school?If you want to find out more about the themes, take a look at our teaching resources.

請參考「世界最大的一節課(World’s Largest Lesson)」網站上的可持續發展目標或全球目標,設立這些目標的目的,是為減少不平等並產生一個對每個人都公平的世界,在這個世界中沒有一個人被遺棄。我們期盼你思考,你如何能協助達成目標三(良好的健康與幸福狀態)目標四(素質教育)目標十六(和平、正義及強而有力的公共機構),藉由聚焦於非傳染性疾病與安全這個主題。我們如何確保人們保持健康並選擇健康的生活方式呢?我們如何確保所有的社群對人們都是安全的,使他們可以工作並上學呢?如果你想進一步了解這些主題,歡迎看一看我們的教學資源

圖1

 

開始動手吧!!

By using the BBC micro:bit, we want you to design and make a solution to a problem that affects you and your community or another community somewhere in the world.

透過使用BBC micro:bit,我們盼望你針對一個影響你和你所屬社群的問題,或是一個影響世界上其它角落另一個社群的問題,設計並製做出解決方案。

 

This could be a device that will encourage people to get active and stay healthy. It could be a recipe plan to help your family eat well. Could you help people decide which exercise would suit them best?

解決方案可以是一個裝置,透過它鼓勵人們積極活躍並保持健康;也可以是一項食譜計畫,讓你的家人吃得豐盛而健康。也許你可以協助人們決定什麼樣的運動最適合他們。

 

Or perhaps you and your friends need some more lights for your bikes that start working when the sun sets? Is crossing the road a problem at your school? Could there be a system that helps make it safe? Is there a device that helps prevent bullying at school?

又或許你與朋友在日落時騎腳踏車,需要更多燈光,⋯⋯,有想過什麼裝置能防止校園霸凌嗎?

 

Whatever the issue is, we’re interested to hear how you would go about solving it. The micro:bit can do so many things so use your imagination and be as creative as possible!

不論問題為何,我們非常有興趣聆聽,你如何挺身而出並解決這個問題!micro:bit可以達成許多事情,所以請運用你的想像力並盡可能發揮創意!

 

Don’t worry if the problem you want to work on seems small. Remember that small changes can have a big impact!

不必擔心你想要解決的問題太微小。請務必記得,小小的改變能產生巨大的影響!

圖2

 

誰可以參加?

The competition is open to young people across the world aged 8-12. You may work in a team or as an individual on the challenge. Unfortunately only one person will be able to travel to the Global Challenge finale event, so make sure you discuss this with any team mates in advance. The competition is free to enter and you don’t even have to have a micro:bit to take part. If you’ve got an idea, put it down on paper or use the Let’s Code page. We’ll accept photos of your plans, too. For full competition details and rules, please read the Terms and Conditions.

這項競賽開放給全球8-12歲的少年人參加,你可以組隊參加或個人挑戰。但如果你是組隊挑戰的話,團隊中只有一位成員能前往英國參加最終挑戰。這項競賽完全免費,你甚至不需要擁有一片micro:bit。如果你有一個好點子,請在白紙上寫下它,或是使用Let’s Code網頁,我們也將接受你計畫的照片或截圖。如果你想要了解競賽的全部細節和規則,請參考這裡

 

所以,請務必記得,在11月16日(GMT)下午五點前(如何換算成台灣時間,請參考這裡),填寫完參加表單並提交點子或計畫

 

最後,祝福各位參賽者,加油!!!

 

備註:如果想要購買micro:bit或相關產品,請洽機器人王國商城,謝謝。

 

相關文章

[ 翻譯 ] 2018.11.14- 網友大哉問:迴圈有許多種類型,TensorFlow中的tf.while_loop()是屬於哪一種呢?

翻譯

宗諭

審閱

阿吉老師

主題圖片

Designed by Starline

資料來源

TensorFlow官方論壇

 

Hello!讀者們好!又到我們的「網友大哉問」了。今天提出問題的網友是weich,他的問題是:

 

I have a question about tf.while_loop(). Is this sequential loop or parallel loop.

我有一個關於tf.while_loop()的問題。tf.while_loop()是循序迴圈(Sequential Loop),或是平行迴圈(Parallel Loop)?

 

Take the example from tensorflow document. Since the current iteration depends on the last iteration through the `i` in the code. I am wondering if the loop body executes one by one as a pure sequential loop?

以TensorFlow文件中的程式為例,既然現在正在執行的迭代是根據上一個迭代,也就是透過程式碼中的「i」,我好奇的是,是否迴圈主體是一行程式接著一行程式執行呢?如同存粹地循序迴圈?

 

(weich提到的程式碼)

i = tf.constant(0)
c = lambda i: tf.less(i, 10)
b = lambda i: tf.add(i, 1)
r = tf.while_loop(c, b, [i])

 

約莫兩天後,另外一位網友zhenhailiu回覆了:

 

Two op instances from different iterations can be computed simultaneously, as long as there is no direct or indirect data dependency or control dependency between them. The iterations in this while_loop can be paralleled. In some cases, iterations in a while_loop cannot be paralleled, typically when there are multiple iteration variable.

來自不同迭代的兩個實例(Instance)可以同時進行運算,只要它們之間沒有直接或間接的資料依賴關係,或控制依賴關係。而在這個tf.while_loop()中的迭代,可以是平行的。但在一些情況下,在while_loop()中的迭代,不可以是平行的。一般來說,當while_loop()中有多個迭代變數時,while_loop()中的迭代便不可以是平行的。

 

讀者們覺得這樣的回覆如何呢?歡迎留下您們的意見或想法,謝謝。

 

備註:如果想要購買AI人工智慧相關產品,請洽機器人王國商城,謝謝。

 

相關文章

[ 翻譯 ] 2018.11.13- 根據MakeCode團隊,針對micro:bit設計的Window 10 App beta版正式發佈(有需要的趕快去下載!!!)

翻譯

宗諭

審閱

阿吉老師

圖片

擷取自Microsoft Store

說明

micro:bit教育基金會臉書貼文請見,特此致謝!

 

 

「Today the ‘#MakeCode for micro:bit’ Windows 10 App is out of beta! It’s free and you can find it via our site below…」

幾小時前,micro:bit教育基金會的臉書粉絲專頁發佈一則貼文,內容大意為:「MakeCode團隊針對micro:bit設計的Window 10 App beta版正式發佈,可在Microsoft Store免費下載。在micro:bit官網的Let’s Code頁面有進一步介紹,就讓我們一起來看看:

 

Program the micro:bit using Javascript Blocks on your Windows 10 device. In addition to the familiar features of the web editor, the app lets you program your micro:bit over USB (without needing to drag-and-drop the file onto the micro:bit drive) and directly read serial data from your micro:bit for data logging and other fun experiments!

這個App主要的功能是讓使用者在Window 10裝置上,運用Javascript圖形化介面積木,撰寫micro:bit程式。在讀者們一般比較熟悉的MakeCode網頁編輯器的功能外,這個app讓使用者透過USB,而不需拖放檔案至micro:bit硬碟,並針對資料登錄和其它有趣的實驗,直接從您的micro:bit讀取序列資料。

 

使用Window 10的讀者們想嘗試看看嗎?趕快去下載吧!

 

備註:如果想要購買micro:bit或相關套件,請洽機器人王國商城,謝謝。

 

相關文章

[ 翻譯 ] 2018.11.07- Raspberry Pi飛高高!!動手自造piDrone樹莓派無人機

翻譯

宗諭

原作者

Andy Baker

圖片

Andy Baker

主題圖片:Designed by Photoroyalty

說明

感謝作者授權翻譯,如果想更多瞭解作者,以及它自造的piDrones,請點擊這裡

 

這份說明文件的目標,主要是為了分享一些其它專案可能會感興趣,或覺得有用處的細節。我的目標其實是為了測試自己、樹莓派及python的能力。我選擇自造一台piDrone,不是作為一台飛行的機器,而是作為一項智力的挑戰,需要結合硬體、軟體及電子設備。

 

我自造的piDrone花費我超過兩萬英鎊,包括超過六年的研究、開發及測試。即便按照下面的指示,打造一台自造的無人機,也會花費超過一萬五千英鎊。如果您想要一台飛行的機器,只要買一台DJI出品的Mavic或Spark,就可前往外頭的空曠處讓它們飛行。然而,如果您想知道無人機如何運作,就請繼續讀下去⋯⋯。

 

樹莓派

每一台piDrone所支援的功能,主要根據CPU的效能及所搭載的感測器。

 

Penelope搭載的是樹莓派3B+,有4顆1400MHz的CPU,它的作業系統是Debian Stretch,支援由人類遠端控制、檔案控制的自主飛行及GPS控制飛行。她(意指Penelope)擁有一個我設計的客製化蓋子,這個蓋子是由英國公司PROJECT PLASTICS製造。

圖1 Penelope的美姿

 

Hermione搭載樹莓派3B,有4顆1200MHz的CPU,作業系統是Debian Jessie,支援人類遠端控制、檔案控制的自主飛行及具備避障能力的GPS控制飛行。她(意指Hermione)機身上方的蓋子(請見下圖),是一個倒過來的塑膠沙拉碗,經過我的裁切以符合大小。

圖2 Hermione的儀態

 

Zoe搭載樹莓派Zero W,只有單顆CPU,作業系統是Debian Stretch,支援人類遠端控制及檔案控制飛行。她(意指Zoe)有一個自己手做的蓋子,這個蓋子包含兩個100毫米的圓頂及一根管子,而這根管子是向英國公司PROJECT PLASTICS購買,然後由我連接、裁切及上漆。

圖3 Zoe的曼妙飛行

 

讀者們應該有注意到這三台piDrone的命名規則,第一都是女性的名字,與船和飛機的命名一樣;第二是字尾都是一個英文「-ee」的音。至於為什麼字尾都要有一個這樣的音,其實也沒有為什麼,總之就是浮現在我的腦海中。

 

Ivy則是piDrone的遙控器,搭載樹莓派B3+。而它的外殼是標準的Ninja Pibow外殼,購買自Pimoroni,並額外加了一些客製化的膠層,使外殼更厚實,得以安裝搖桿。

圖4 Ivy厚實的外觀

 

接下來要介紹的是piPad,用來遠端登入三台piDrone及遙控器,控制它們是否順利執行飛行任務。而piPad就是運用標準的樹莓派外殼搭配螢幕。

圖5

 

本文先介紹至此,接下來將繼續介紹piDrone的硬體和程式,敬請期待。

 

備註:如果讀者想要購買樹莓派或相關套件,歡迎洽詢機器人王國商城。

 

相關文章