2014年4月30日 星期三

[GoogleMapAPI]透過JSON取得地震資訊

透過USGS API取得JSON地震資訊





建立一個<script>標籤來準備接收USGS URL 當成資料來源

  • var script = document.createElement('script');


將資料來源裝入script

  • script.src = 'http://earthquake.usgs.gov/earthquakes/feed/geojsonp/2.5/week';


將script tag 放入HTML中

  • document.getElementsByTagName('head')[0].appendChild(script);


建立callback function 當JSON資料載入時呼叫


  •  window.eqfeed_callback = function(results) {
  •         for (var i = 0; i < results.features.length; i++) {
  •           var coords = results.features[i].geometry.coordinates;
  •           var latLng = new google.maps.LatLng(coords[1],coords[0]);
  •           var marker = new google.maps.Marker({
  •             position: latLng,
  •             map: map
  •           });


  • result傳回USGS給予的資料



資料來源
  • 北藝大網路藝術助教:謝尚偉





[Web]利用Python建立Server

Windows

1、安裝 Python 2.7.x for Windows 
2、win+R打開命令列
3、cmd
4、cd Desktop/index.html 接換到檔案位置
5、執行Python 架起 Server D:\Python27\python.exe -m SimpleHTTPServer 8080
6、localhost:8080,檢查是否成功
7、ipconfig,看自己ip多少使別台電腦連入

Mac

1、內建Python功能不用安裝
2、Spotlight->terminal
3、cd 切換到檔案位置
4、執行python -m SimpleHTTPServer 8080
5、退出ctrl+D

參考來源

北藝大網路藝術助教:謝尚偉

[GoogleAPI]Google Maps

申請 Google API Key
  • Google Console
1、建立【map資訊物件】
  •   var mapProp = {
  •   center:new google.maps.LatLng(51.508742,-0.120850),
  •   zoom:5,
  •   mapTypeId:google.maps.MapTypeId.ROADMAP
  };
2、建立【地圖物件】,需【tag位置】、【地圖資訊物件】
  •   var map=new google.maps.Map(document.getElementById("googleMap"),mapProp);

1、建立【Marker物件】並傳入【資訊物件】-->{position:myCenter}
  •   var marker=new google.maps.Marker({
  •   position:myCenter,
  •   });
2、在地圖上插上Marker
  •   marker.setMap(map);

建立Marker物件時,資訊物件內加入【Animate 參數】

  •    marker=new google.maps.Marker({
  •    position:myCenter,
  •   【animation:google.maps.Animation.BOUNCE】/
  •   【animation:google.maps.Animation.DROP】
  •   });


Marker 換成 自己的圖檔/GIF

  • 建立Marker物件時,資訊物件加入【icon參數】
  •   var marker=new google.maps.Marker({
  •   position:myCenter,
  •   【icon:'pinkball.png'】
  •   });


在Map上畫多邊線
1、建立【多邊形節點陣列】

  •   var stavanger=new google.maps.LatLng(58.983991,5.734863);
  •   var amsterdam=new google.maps.LatLng(52.395715,4.888916);
  •   var london=new google.maps.LatLng(51.508742,-0.120850);
  •   var myTrip=[stavanger,amsterdam,london];

2、建立路線物件並傳入【資訊物件】

  •   var flightPath=new google.maps.Polyline({
  •   path:myTrip,
  •   strokeColor:"#0000FF",
  •   strokeOpacity:0.8,
  •   strokeWeight:2
  •   });

3、在地圖上畫上【路線物件】
  flightPath.setMap(map);

1、建立【多邊形節點陣列】

  •   var stavanger=new google.maps.LatLng(58.983991,5.734863);
  •   var amsterdam=new google.maps.LatLng(52.395715,4.888916);
  •   var london=new google.maps.LatLng(51.508742,-0.120850);
  •   var myTrip=[stavanger,amsterdam,london];

2、建立路線物件並傳入【資訊物件】

  •   var flightPath=new google.maps.Polygon({
  •   path:myTrip,
  •   strokeColor:"#0000FF",
  •   strokeOpacity:0.8,
  •   strokeWeight:2,
  •   fillColor:"#0000FF",
  •   fillOpacity:0.4
  •   });

3、在地圖上畫上【路線物件】

  •   flightPath.setMap(map);
在地圖上畫【圈】

  •   var myCity = new google.maps.Circle({
  •   center:amsterdam,
  •   radius:20000,
  •   strokeColor:"#0000FF",
  •   strokeOpacity:0.8,
  •   strokeWeight:2,
  •   fillColor:"#0000FF",
  •   fillOpacity:0.4
  •   });

在Marker上加上InfoWindow

1、建立InfoWindow物件並傳入【資訊物件】

  •   var infowindow = new google.maps.InfoWindow({
  •   content:"Hello World!"
  •   });
2、將InfoWindow加入map與marker上

  •   infowindow.open(map,marker);
在Marker上加入監聽器使得點擊Marker後Zoom到中央位置


  •   google.maps.event.addListener(marker,'click',function() {
  •   map.setZoom(9);
  •   map.setCenter(marker.getPosition());
  •   });
在Map上加入監聽器使得當中央位置改變時,3秒後Zoom回中央位置

  •   google.maps.event.addListener(map,'center_changed',function() {
  •   window.setTimeout(function() { map.panTo(marker.getPosition()); },3000);
  •   });
在Marker上加監聽器使得點擊Marker後出現InfoWindow

  •   google.maps.event.addListener(marker, 'click', function() {
  •   infowindow.open(map,marker);
  •   });
參考資料

  • 北藝大謝尚偉助教








2014年4月29日 星期二

[kinect]SimpleOpenNI-1.96在Win8問題

安裝Kinect SDK 1.7

[Kinect]Kinect 安裝driver失敗(Win8)

解決步驟
1、windows Key + R (打開命令)
2、輸入shutdown.exe /r /o /f  /t 00
3、按OK
4、重新開機後選【疑難解決】
5、選【高級選項】
6、選【Windows啟動設置】
7、【重啟】
8、【高級選項】
9、【Disable Driver Signature Enforcement】
參考來源

2014年4月28日 星期一

[of]openFrameWorks using code:block setup

Installation


  • 下載含有MinGW版本的code:block


Add file to MinGW 

  • 下載libraris
  • 將zip檔內add_to_codeblocks_mingw_include資料夾內的檔案放進MinGW/include
  • 將zip檔內add_to_codeblocks_mingw_lib資料夾內的檔案放進MinGW/lib






















2014年4月12日 星期六

[IC]IC555


腳位圖










  • Pin 1 (接地) - 地線(或共同接地) , 通常被連接到電路共同接地。
  • Pin 2 (觸發點) - 這個腳位是觸發NE555使其啟動它的時間週期。觸發信號上緣電壓須大於2/3 VCC,下緣須低於 1/3 VCC 。例如使用12 伏特來供應555的電壓, 觸發器輸入電壓必須如上述說明,介於8V以上4V以下。行動是平實敏感的並且觸發器電壓也許非常慢慢地行動。避免retriggering, 在單穩態的方式下觸發器電壓必須在時間週期結束之前的返回到供應電壓的1/3 之上。觸發器輸入電流是大約0.5 微安培(0.5 uA)。
  • Pin 3 (輸出) - 當時間週期開始555 的輸出輸出腳位,移至比電源電壓少1.7 伏的高電位。週期的結束輸出回到O伏左右的低電位。於高電位時的最大輸出電流大約200 mA 。
  • Pin 4 (重置): - 一個低邏輯電位送至這個腳位時會重置定時器和使輸出回 到一個低電位。它通常被接到電源的正電或不使用。
  • Pin 5 (控制) - 這個接腳准許由外部電壓改變觸發和閘限電壓。當計時器經營在穩定或震盪的運作方式下, 這輸入能用來改變或調整輸出頻率。如果不使用, 建議對地安裝一個小電容,以避免可能因雜訊造成的假觸發。
  • Pin 6 (重置鎖定) - Pin 6 重置鎖定並使輸出呈低態。當這個接腳的電壓從1/3 VCC電壓以下移至2/3  VCC以上時啟動這個動作。
  • Pin 7 (放電) - 這個接腳和主要的輸出接腳有相同的電流輸出能力,當輸出為ON時為LOW,對地為低阻抗,當輸出為OFF時為HIGH,對地為高阻抗。
  • Pin 8 (V +) - 這是555 個計時器IC 的正電源電壓端。供應電壓的範圍是+4.5 伏特(最小值) 至+16 伏特(最大值) 。


單穩態




  • 過程
1、當開關還未按下時 : pin2(HIGH)、pin3(LOW),no work
2、開關一按下 : pin2(小於1/3Vcc)、pin3(High),pin7(Open),C1開始充電
3、當C1充到2/3Vcc:pin6(大於2/3Vcc),pin3(Low),pin7(Short),C1開始放電
4、脈波時間:T=1.1*R1C1


無穩態







  • 過程
1、接上Vcc,pin"2",6(小於1/3Vcc),pin3(High),pin7(Open),C1開始充電
2、C1充電到大於2/3Vcc,pin2,"6"(大於2/3Vcc),pin3(Low),pin7(Short),C1開始放電
3、C1放電至小於1/3Vcc,重複1
4、脈波長度:高電位(過R1,R2充電):0.7*(R1+R2)*C1;低電位(過R2放電):0.7*R2*C1







  • 利用IC555做PWM控制馬達轉速(馬達正負連接電容消除雜訊)





參考資料
  • digitw
  • 網路上某份word,來源不明