Tag Archives: lejos

定稿了定稿了!! Android 與 NXT-G 進階一次定兩本!!

一次定稿兩本書的感覺遠超筆墨所能形容, 反正就是很開心又踏實就對了。

什麼!?  接下來是Google App Inventor 與 Arduino這兩個主題?   最近怎麼都是A開頭啊?

請看最新的目錄, 也可以回顧之前的目錄看看我們做了哪些演進。

Android / NXT 機器人大戰 – 智慧型手機控制機器人(名稱暫定, 但阿吉很自私地希望不要改…)

作者:CAVE教育團隊   林毓祥   曾吉弘

第1章:Android來勢洶洶

第2章:安裝Android SDK / leJOS開發環境

第3章:Lego Mindstorms NXT

第4章:基礎leJOS程式

第5章: Android程式設計基礎

第6章:結合Android與NXT

第7章:Android手機上的感測器

第8章:Google App Inventor

第9章[專題]:按鈕控制

第10章[專題]:翻轉控制

第11章[專題]:單點觸控 Touchpad Control

第12章[專題]:單點觸控 Touchpad Control(直接版)

第13章[專題]:多點觸控 Tank Control

第14章[專題]:手勢控制 Drag Control

第15章[專題]:偵察機器人 (結合Wifi)

=========================================================

NXT機器人進階圖控程式教學(名稱暫定)

作者:CAVE教育團隊   盧建邦   賴炳宏

1   圖形化程式的優勢

2   零件介紹與組裝說明

 

3   NXT-G初體驗(資料線與資料初談)

 

4   數據運算方法

 

5   變數

 

6   邏輯

 

7   資料擷取與分析

 

8    常用的外來函式

 

9   PID高階控制方法

 

10  藍牙通訊

 

11  NXT與其它周邊裝置

 

12  [專題] 遙控車

 

 

[新書預告] NXT機器人進階圖控程式教學(暫定)

書名:NXT機器人進階圖控程式教學(暫定)

 

作者:CAVE教育團隊   盧建邦  賴炳宏

預計出版時間: 2011年7月

在寫過NXC, leJOS, LabVIEW, 以及進行中的Android / App Inventor之後, 我們決定從初學者的角度推出一本NXT-G的進階專業書籍。 目標是讓大家對於NXT-G這套好用的圖控程式有更深入的了解並發揮更多功能。

本書即將定稿, 各位好朋友們如果有任何意見歡迎提出, 說不定可以寫在新書裡面唷!

請看以下章節介紹:

=============================================================

1   圖形化程式的優勢

2   零件介紹與組裝說明

 

3   NXT-G初體驗(資料線與資料初談)

 

4   數據運算方法

 

5   變數

 

6   邏輯

 

7   資料擷取與分析

 

8    常用的外來函式

 

9   PID高階控制方法

 

10  藍牙通訊

 

11  NXT與其它周邊裝置

 

12  [專題] 遙控車

 

13  [專題] 定位與導航

 

附錄A   範例機器人組裝


附錄
B   安裝外掛指令、更新韌體、自定模組

[Android] Touch Pad 單點直接控制

要和大家報告一下Android的進度, 先前我們是使用Master(手機) / Slave(NXT)的架構來完成兩者之間的溝通。 這需要機器人端有一個執行中的leJOS程式持續等候master所發送的訊息。

事實上 LEGO 對NXT 提供了低階的直接指令可以在與NXT建立藍牙連線之後直接控制。 這些資訊詳細記錄在Bluetooth Developer Kit的Appendix 2 [LEGO MIndstorms NXT Direct Commands]中。  BDK下載請按我

本範例內容/程式碼與說明將於CAVE 新作[ Android / NXT 機器人大戰 – 智慧型手機控制機器人 ]中詳細說明~

連線完成之後, 會出現一個綠色圓圈和黃色觸碰點。

綠色圓圈是說明如果超出圈外的話, 電力會被限制在900 (每秒兩圈)。

沿Y軸正向, 機器人會直線前進。

沿X軸負向, 機器人原地左轉。

其它各點則依照我們得算結果來運動。

[新書預告] 觸控設計之觀念與創意應用–嵌入式系統、人機介面與Android專題實作

各位朋友, Android裝置(手機 + 平板) 可說是在我們的生活中投下一顆顆的震撼彈, Google挾其在雲端的強大威力, 這台綠色的小機器人也日益強大了起來。 坊間已經有許多優秀的Android的教學書籍, 包括碁峰的[Google Android 2.X應用程式開發實戰] 與悅知的 [Google Android SDK 開發範例大全 2]。

那麼, what can we do to make it different?

本書作者鄭一鴻博士為Android / Java領域資深講師, 也是阿吉的附中學長。 很高興能有這次的合作, 本書初稿已屆完成。 之後還有 [ Android / NXT 機器人大戰 – 智慧型手機控制機器人 ] , 這本就是專門是針對 Android device 在 LEGO NXT機器人上的應用。

以下是本書內容, 請大家過目:

========================================================

書名:觸控設計之觀念與創意應用–嵌入式系統、人機介面與Android專題實作

預計出版:2011/05

作者:鄭一鴻博士 / 曾吉弘

第一篇   觸控螢幕與嵌入式系統、人機介面、相關硬體

1    嵌入式系統概論                     
2     感測器與致動器                       
3     人機介面                            
4     觸控螢幕與滑鼠                      
5     學習案例基於軟體工程之8051專案教程       

第二篇   觸控設計之概念與實作

6     基礎GUI觸控元件                     
7     進階GUI元件觸控                     
8     再思進階GUI觸控                     
9     點擊式轉盤之概念與實作                
10     學習案例聲光震動之展示技巧         

第三篇   觸控輸入法與手勢之設計

11     基礎鍵盤之設計與實作                 
12     進階鍵盤之設計與實作                 
13     手勢鍵盤之設計與實作                 
14     學習案例—CSOW音樂盒              

第四篇   觸控手勢之創意應用

15     手勢應用之創意基礎                  
16     社群應用之創意手勢                  
17     拼圖遊戲之創意手勢                  
18     地圖應用之創意手勢…                
19     媒體應用之創意手勢…                
20     創意遙控樂高機器人…                


附錄 A   Keil’s μVISION4整合發展環境之指南          
附錄 B   MVC原始報告                          
附錄 C   Java JDK安裝與使用 ..                 
附錄 D   EclipseAndroid整合發展環境之指南        
附錄 E   App Inventor應用開發環境之指南              
附錄 F   安裝leJOS NXTNXT韌體 ass=”apple-style-span”>              

         

 

[新書預告] Android / NXT 機器人大戰 – 智慧型手機控制機器人

各位好朋友們, 本書 [ Android / NXT 機器人大戰 – 智慧型手機控制機器人 ] 是CAVE上半年的出版計畫其中之一, 搭著最近很夯的Android熱潮, 要告訴您如何用Android device來控制 LEGO NXT機器人。

結合Android device 上的各種感應器(水平儀, 指南針, GPS) 與網路, 機器人的功能馬上更上一層樓!!  有Java底子的朋友, Android對您來說完全不是問題, 馬上就能上手。 那如果不會寫Java的人怎麼辦呢?  Google 推出了 App Inventor 讓您無痛進入機器人程式設計的殿堂!

請看熱騰騰的新書大綱, 本書預計年中出版, 敬請大家踴躍支持出版能量超強的CAVE團隊!!

===========================================================

書名:Android / NXT 機器人大戰 – 智慧型手機控制機器人

作者:CAVE教育團隊   林毓祥   曾吉弘

第1章:Android來勢洶洶

第2章:安裝Android SDK / leJOS開發環境

第3章:Lego Mindstorms NXT

第4章:基礎leJOS程式

第5章: Android程式設計基礎

第6章:結合Android與NXT

第7章:其它 功能

第8章:Google App Inventor

第9章[專題]:按鈕控制

第10章[專題]:翻轉控制

第11章[專題]:Android-Way – 雙輪平衡車

第12章[專題]:划船比賽

第13章[專題]:拖拉式的控制面板

第14章[專題]:Gesture算路線

第15章[專題]:偵查車  / Camera

第16章[專題]:二軸平衡支架

[leJOS] 彈跳球

力維用leJOS改寫宗翰老師的NXC彈跳球

http://tw.myblog.yahoo.com/lego-caveschool/article?mid=4137&prev=4145&next=4103&l=f&fid=18

程式可直接複製或按我下載

=============================================

import lejos.nxt.*;
import lejos.util.Delay;
import javax.microedition.lcdui.Graphics;
class ball
{
 public static void main(String args[])
 {
  Button.ESCAPE.addButtonListener(new ButtonListener()
  {
   public void buttonPressed(Button b){System.exit(1);}
   public void buttonReleased(Button b){}
  });
  Graphics g = new Graphics();
     int ball_x = (int)(Math.random()*61)+20;
        int ball_y = (int)(Math.random()*31)+20;
        int del_x = 1;
        int del_y = 1;
  int r = 2;
  g.fillArc(ball_x,ball_y,r,r,0,360);
  while(true)
        {
         LCD.clear();
      ball_x = ball_x + del_x;
            ball_y = ball_y + del_y;
   g.fillArc(ball_x,ball_y,r,r,0,360);
   if( ball_x <= 2 || ball_x>=96)
   {
       del_x = del_x*-1;
                Sound.playTone(440,1);
         }
            if( ball_y <= 5 || ball_y >= 61)
            {
       del_y = del_y*-1;
                Sound.playTone(440,1);
   }
   Delay.msDelay(40);
  }
 }
}

JAVA – NXT 周六下午

原本周六下午是上力維的  one by one, 現在多一位邱峰一起上課, 兩位都是升國二, 不過彼此的個性迥然不同。

邱峰老是抱著一台apple, 我說一些機器人程式環境對 apple 來說不是太方便。 但他很堅持要自己把 apple 上的 leJOS /NXJ 環境建起來, 結果也順利完成了, good job!

希望這兩位小國中生可以彼此互補, 互相給對方新的學習方向囉!

JAVA book ch8 修正

各位朋友如果在執行 Sample8_1 與 Sample8_3 的時候遇到不能下載的問題時, 這邊提供兩種解決方式:

根據阿吉實地測試10組master/slave中約有1~2組會出現無法正確傳輸的問題。

1. Sample8_3.java中的第8行, 請指定Slave NXT的名稱 (把 NAME 改成您的Slave NXT名稱即可)。

if(!conn.connectTo(“NAME“, “”, NXTCommFactory.BLUETOOTH)) //連線到NXT

2. 如果還是不行請使用較低階的執行指令, 在cmd 下以 nxjpcc 編譯完 Sample8_3.java後輸入以下指令。 這是因為有些電腦的leJOS無法正確帶入pccomm.jar導致通訊出問題。

java -cp .;”%NXJ_HOME%”\lib\pccomm.jar Sample8_3

以上方法感謝許多熱心的老師們提供。

 

 

具備濾波功能的倒車雷達(使用陣列) ver1.2 by 力維

上一個範例中我們使用了移動平滑法來降低超音波感應器本身的雜訊, 今天我們改用陣列來處理。 整個程式就會變得簡潔多囉! 程式可直接複製或按我下載

==============================================

import lejos.nxt.*;
import lejos.util.Delay;
class radar_v1_2
{
   public static void main(String args[])
   {
      Button.ESCAPE. addButtonListener(new ButtonListener()
      {
            public void buttonPressed(Button b){System.exit(1);}
            public void buttonReleased(Button b){}
       });
      
       UltrasonicSensor us = new UltrasonicSensor(SensorPort. S1);
       int[] distance = new int[8]; //宣告一個長度8的整數陣列來存放超音波感應器值
       int fre=0;  //指定頻率初始值為0
       while(true)
       {
          for(int i=distance.length-1;i>0;i–)
          {
              distance[i]= distance[i-1];
          }
        distance[0] = us.getDistance();
       
        for(int j=0; j<distance.length-1;j++)

        {
                            fre += distance[i];
        }
       Sound.playTone(fre/distance. length*10,100);
       LCD.drawInt(fre/distance. length,0,0);
       Delay.msDelay(100);
       LCD.clear();
       fre=0;
      }
   }
}

具備濾波功能的倒車雷達 ver1.0 by 力維

程式下載請按我

這是力維寫的簡易倒車雷達程式, 將超音波感應器值轉換為發音頻率, 和NXT內建的 Try Ultrasonic功能是一樣的。
但在距離極小以及極大的時候, 超音波感應器本身的雜訊還不小, 所以我們用8個變數來存放距離值後取平均, 這樣可以讓整組data圖表平滑一點。 各位朋友可以實際操作看看。
還有第二個使用陣列的版本, 請按我
============================================
import lejos.nxt.*;
import lejos.util.Delay;
class radar_v1_0
{
   public static void main(String args[])
   {
   Button.ESCAPE. addButtonListener(new ButtonListener()
     {
     public void buttonPressed(Button b){System.exit(1);}
     public void buttonReleased(Button b){}
     }); //定義NXT灰色鍵可中斷程式
  
   UltrasonicSensor us = new UltrasonicSensor(SensorPort. S1); //宣告1號超音波感應器
   int distance1=0,distance2=0, distance3=0,distance4=0, distance5=0,distance6=0,  distance7=0,distance8=0;     
   while(true)
   {
    distance8 = distance7;
    distance7 = distance6;
    distance6 = distance5;
    distance5 = distance4;
    distance4 = distance3;
    distance3 = distance2;
    distance2 = distance1;
    distance1 = us.getDistance();
    Sound.playTone((distance1+ distance2+distance3+distance4+ distance5+distance6+distance7+ distance8)/8*10,100); //將8個距離值平均後轉為發音頻率
    LCD.drawInt((distance1+ distance2+distance3+distance4+ distance5+distance6+distance7+ distance8)/8,0,0); //顯示平均值
    Delay.msDelay(100);
    LCD.clear();
    }
  }
}

Closer walk with leJOS

http://www.juanantonio.info/jab_cms.php?id=275

隨著leJOS中文書的出版在即, CAVE 與 Juan Antonio先生的合作也日益密切。 各位從 Juan 的個人網頁可以看到他已經宣布中文書出版的訊息。

接下來2010年下半年, Juan 與 CAVE會合著一本英文的 leJOS 專業機器人程式設計書籍。 希望可以在明年的春天登上國際舞台, 加油加油!!