NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

グリーンカーテン(2020)!

🌸🌻🍀毎年恒例のグリーンカーテンを今年も設置しました!🍀🌻🌸

f:id:nobita_RX7:20210615115120j:plain

安定のゴーヤ!

f:id:nobita_RX7:20210615115115j:plain

今年からプランターに防草シートを設置してみました
🌸🌻🍀これで草取り不要です!😊🍀🌻🌸

 

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【Other】目次に戻る


グリーンカーテン(2019)!

🌸🌻🍀2019年8月から遅れる事7ヶ月・・・🍀🌻🌸

2020年3月9日撮影、グリーンカーテン・・・のその後
🌸🌻🍀2019年はグリーンカーテンの写真取り忘れました(;'∀')🍀🌻🌸

 

イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【プランター自動水やり機!(他ガーデニング)】目次に戻る


CES2019(Tech East, Central Hall)

イメージ 1
世界最大の家電ショー「CES2019!」

 前回「Tech East, North Hall」の続きで「Tech East, Central Hall」編です。

1. Tech East会場MAP

写真が多いのでさらに①~⑤に分割です。
③Tech East, LVCC, Central Hall
④Tech East, LVCC, South Halls
⑤Tech East, LVCC, Central Plaza

③Tech East, Central Hall

 The家電ショーな雰囲気のCentral Hall!
イメージ 1
「Tech East, Central Hall」マップ
 
1.LG
イメージ 2
最近のTVは音も進化しているようです「AI SOUND」
 
イメージ 3
曲面のOLED!一枚一枚のディスプレイが超キレイ!
 
イメージ 4
音響も併せて圧巻の演出!見ごたえがありました
 
イメージ 5
こんなの待ち望んでました「電動アシストフルサスMTB!」
 
イメージ 6
「SPACe_C」下半分の駆動部に、好きな乗車部を組み合わせて載せられるそう!
 
イメージ 7
モチロン自動運転!かわいい見た目ですね!
 
イメージ 8
49インチDual QHD(5,120×1,440ドット) 120Hz Gaming Moniter「CRG9」
・・・欲しいな
4.IBM
イメージ 9
世界初の単体で動作する汎用量子コンピュータ「Q System One」
歴史的快挙!数年後には個人でも買えるようになるのでしょうか、
 
イメージ 10
「Flexible OLED Display」近未来のスマホ
 
イメージ 11
自分の顔でゲームキャラクターが作れるシステム!?
 
イメージ 12
aiboも進化しましたね~
 
イメージ 13
初「PlayStationVR」体験!
箱庭感でリアルなGAMEが楽しめました
 
イメージ 14
 
イメージ 15
人形・・・ではなく本物の人ですこれが
 
9.WICKEO AUDIO
イメージ 16
このミニゲームでイヤホン(小)を貰いました上手い人はイヤホン(大)
 
10.?
イメージ 17
物欲センサー反応・・・キックしないキックボード(電動)?
 
11.Loctek
イメージ 18
モニターアームの会社ですが、手前の自転車椅子が気になります
 
イメージ 19
ルンバ自動運転芝刈り機!
 
イメージ 20
世界初のマイクロLEDテレビ「The Wall」
〇マイクロLEDテレビのメリット
1.画面全体に敷き詰められたRGBの微細なLEDが発光する(カラーフィルターが不要)
2.漆黒を表現できる。
3.LEDは発光効率が高い(消費電力が低い)
4.輝度が高い(2,000nits)
5.色域が広い。
6.長寿命!(焼き付きの問題がない)
マイクロLEDテレビは現状の液晶テレビ有機ELテレビの欠点を克服!

2.まとめ

 家のTVは地デジに完全移行した2011年に買った「プラズマテレビ」がいまだ現役です!プラズマTVの販売が終了して5年くらい経つでしょうか
 いつ家庭用に市販されるか分かりませんが、次に買うTVは「マイクロLEDテレビ」にします! 今買うと1億円位するそうです
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【Other】目次に戻る


CES2019(Tech East, North Hall)

イメージ 1
世界最大の家電ショー「CES2019!」

 前回「Tech East, Westgate」の続きで「Tech East, North Hall」編です。

1. Tech East会場MAP

写真が多いのでさらに①~⑤に分割です。
②Tech East, LVCC, North Hall
③Tech East, LVCC, Central Hall
④Tech East, LVCC, South Halls
⑤Tech East, LVCC, Central Plaza

②Tech East, North Hall

 家電ショーなのにモーターショーの様な雰囲気のNorth Hall
イメージ 1
「Tech East, North Hall」マップ
 
1.powerbass
イメージ 2
写真では伝わるかわかりませんが、超巨大な車!
 
2.KICKER
イメージ 3
この魚型潜水艦?人が乗れます!
 
3.MAGNA
イメージ 4
電動F1?
 
4.BELL
イメージ 5
パッセンジャードローンと言う事で人が乗れます!
 
イメージ 6
Vision URBANETIC、奇抜なデザインですが、ちゃんと走るみたいです
 
イメージ 7
LCDで車の中が透けて見えます!
 
イメージ 8
EVコンセプトカー「ビジョンEQシルバーアロー」これもちゃんと走るそうです
80kWhのバッテリーで出力750hp!
 
イメージ 9
Aicon(アイコン)完全自動運転カーなのでヘッドライトがありません!
 
イメージ 10
これ欲しい・・・
 
イメージ 11
ショーの途中で色々不具合が・・・
 
イメージ 12
自動運転カーの大本命!NVIDIA
 
9.HONDA
イメージ 13
Honda P.A.T.H.*Bot(パスボット)
 
イメージ 14
隙間からセンサーが見えますね、これで周囲の状況を認識して移動するロボット
 
イメージ 15
Autonomous Work Vehicle(オートノマス ワーク ビークル
アタッチメントで拡張できる自律移動モビリティー
 
イメージ 16
何に使うかはさておき欲しい・・・。
10.?
イメージ 17
どこのブースか忘れましたが、物欲センサーが反応
 
LiDARのリアルタイムデモしてました、ラジコンに一個欲しい!
 
イメージ 19
LiDARはいつになったら数千円で販売してくるのでしょう?
 
イメージ 22
MaaS(Mobility-as-a-Service)コンセプトで「移動そのものをサービス」!
13.HYUNDAI MOBIS
イメージ 20
クオリティーの高い演出に感動したブースはこちら!
 
イメージ 21
背景に合わせてコンセプトカーがぐるぐるステージ上を動き回ります!
ブラボー

2.まとめ

 Tech East, North HallのBEST OF Productionは、
「HYUNDAI MOBIS」でした一体どれだけのお金と時間をかけたのでしょう
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【Other】目次に戻る


CES2019(Tech East, Westgate)

イメージ 1
世界最大の家電ショー「CES2019!」

 先月家電ショーに行って来ました!だいぶ真寝かせてました

1. 移動

移動だけで24時間以上
イメージ 2
ロサンゼルス空港を経由し、
 
イメージ 3
マッカラン空港を出て、
 
イメージ 10イメージ 11
LVCC(Las Vegas Convention Center)へ到着!

2.CES2019

2019年1月8日~1月11日に開催されたCES2019の会場は大きく分けて「TechWest」「TechSouth」「TechEast」の3か所です。
イメージ 4
CES2019会場マップ
 
総展示面積は「232,258 m2」と、東京ドーム建築面積(46,755m2)の5倍!?
 
CES2019集計が見つからなかったので、CES2018実績で言うと
来場者数 : 106288人 (うち海外から:37342 人) 
出展社数 : 4598社 (東京モーターショウ2017は153社)

流石世界最大の家電ショーですね!圧巻の規模!

3.Tech East

 会場が広すぎてTechEast」だけ見てきました

イメージ 12
「Tech East」マップ
 
 写真が多いのでさらに①~⑤に分割です。
①Tech East, Westgate
②Tech East, LVCC, North Hall
③Tech East, LVCC, Central Hall
④Tech East, LVCC, South Halls
⑤Tech East, LVCC, Central Plaza

①Tech East, Westgate

 WestGateホテルに入った所にも所狭しと展示ブースが軒を連ねてました!イメージ 5
「Tech East, Westgate」マップ
 
1.H2Tec
イメージ 6
「HyRiSbike」
 
イメージ 7
水素で走る自転車!・・・電池が欲しい!

2.Monday Motorbikes
イメージ 8
電動バイク「GEN7」50マイル(80.5km)走るそうです。普通に欲しい!

3.KarambaSecurity
イメージ 13
Arduinoで自動運転&衝突回避してました!
あまりにも真剣に見ていたからか名刺を頂きました(セキュリティー会社さんだそうです)

4.まとめ

 単独での初アメリカでしたが、無事到着出来てホッとしました
 折角の家電ショーですが、電子工作好きとして家電単体よりも使われている最新の電子部品ばかり気になってしまいます。
 因みに最新のディスプレイやセンサーは市販されていないものが多く買えませんね
イメージ 9
ADD your comentsとの事で青丸部↗NOB」残してきました!記念
 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【Other】目次に戻る


Raspberry Pi 3 Model B(ProsessingでGUI入力!)

イメージ 1
Raspberry Pi 3 Model B」×「Prosessing ver3.4」でGUI入力!

 前回の記事ではProsessingを使ってRaspberry PiのGPIOピンに入力した情報を画面に反映しました。
 今回はProsessingGUIライブラリの「ControlP5※1」を使って、GUIに入力した情報を画面図形に反映してみました!このGUIライブラリ便利ですね!

※controlP5:Andreas SchlegelによってProsessing用に書かれたライブラリです。最終更新日、2015年7月30日。Prosessingスケッチの上にGUI(グラフィカルユーザインタフェース)を構築するためのコントローラには、とりわけ、スライダ、ボタン、トグル、ノブ、テキストフィールド、ラジオボタンチェックボックスがあり、処理スケッチに簡単に追加できます。それらは別々のコントロールPGraphicsコンテキストに配置することができ、タブまたはグループに編成することができます。

1. 「ControlP5」ライブラリのインポート!

 Prosessingに「ControlP5」ライブラリをインポートするには図1メニューの「スケッチ」→「ライブラリをインポート」→「ライブラリを追加」の順に選択し、「Contribution Manager」を開きます。
 開いたものが図2で、上段に「🔎Fillter」と書かれている欄が有るのでそこにControlP5」と入力し検索すると同名のライブラリが出てくるので、それを選択し「Install」ボタンをクリックすればライブラリのインポート完了です!
イメージ 2
図1:「Prosessing3.4」

イメージ 3
図2:「Contribution Manager」

2. サンプルGUIプログラム

 図3の様に、Prosessingのメニューから「ファイル」→「サンプル」→「ライブラリ」と開き、「Hardware I/O」の中に入っている「SimpleInput」のサンプルプログラム(図4)を読み込みます。
イメージ 4
図3:SimpleInput

イメージ 5
/**
 * ControlP5 Accordion
 * arrange controller groups in an accordion like style.
 *
 * find a list of public methods available for the Accordion Controller 
 * at the bottom of this sketch. In the example below 3 groups with controllers
 * are created and added to an accordion controller. Furthermore several key 
 * combinations are mapped to control individual settings of the accordion.
 * An accordion comes in 2 modes, Accordion.SINGLE and Accordion.MULTI where the 
 * latter allows to open multiple groups of an accordion and the SINGLE mode only
 * allows 1 group to be opened at a time.  
 *
 * by Andreas Schlegel, 2012
 * www.sojamo.de/libraries/controlp5
 *
 */

import controlP5.*;

ControlP5 cp5;

Accordion accordion;

color c = color(0, 160, 100);

void setup() {
  size(400, 600);
  noStroke();
  smooth();
  gui();
}

void gui() {
  
  cp5 = new ControlP5(this);
  
  // group number 1, contains 2 bangs
  Group g1 = cp5.addGroup("myGroup1")
                .setBackgroundColor(color(0, 64))
                .setBackgroundHeight(150)
                ;
  
  cp5.addBang("bang")
     .setPosition(10,20)
     .setSize(100,100)
     .moveTo(g1)
     .plugTo(this,"shuffle");
     ;
     
  // group number 2, contains a radiobutton
  Group g2 = cp5.addGroup("myGroup2")
                .setBackgroundColor(color(0, 64))
                .setBackgroundHeight(150)
                ;
  
  cp5.addRadioButton("radio")
     .setPosition(10,20)
     .setItemWidth(20)
     .setItemHeight(20)
     .addItem("black", 0)
     .addItem("red", 1)
     .addItem("green", 2)
     .addItem("blue", 3)
     .addItem("grey", 4)
     .setColorLabel(color(255))
     .activate(2)
     .moveTo(g2)
     ;

  // group number 3, contains a bang and a slider
  Group g3 = cp5.addGroup("myGroup3")
                .setBackgroundColor(color(0, 64))
                .setBackgroundHeight(150)
                ;
  
  cp5.addBang("shuffle")
     .setPosition(10,20)
     .setSize(40,50)
     .moveTo(g3)
     ;
     
  cp5.addSlider("hello")
     .setPosition(60,20)
     .setSize(100,20)
     .setRange(100,500)
     .setValue(100)
     .moveTo(g3)
     ;
     
  cp5.addSlider("world")
     .setPosition(60,50)
     .setSize(100,20)
     .setRange(100,500)
     .setValue(200)
     .moveTo(g3)
     ;

  // create a new accordion
  // add g1, g2, and g3 to the accordion.
  accordion = cp5.addAccordion("acc")
                 .setPosition(40,40)
                 .setWidth(200)
                 .addItem(g1)
                 .addItem(g2)
                 .addItem(g3)
                 ;
                 
  cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.open(0,1,2);}}, 'o');
  cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.close(0,1,2);}}, 'c');
  cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.setWidth(300);}}, '1');
  cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.setPosition(0,0);accordion.setItemHeight(190);}}, '2'); 
  cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.setCollapseMode(ControlP5.ALL);}}, '3');
  cp5.mapKeyFor(new ControlKey() {public void keyEvent() {accordion.setCollapseMode(ControlP5.SINGLE);}}, '4');
  cp5.mapKeyFor(new ControlKey() {public void keyEvent() {cp5.remove("myGroup1");}}, '0');
  
  accordion.open(0,1,2);
  
  // use Accordion.MULTI to allow multiple group 
  // to be open at a time.
  accordion.setCollapseMode(Accordion.MULTI);
  
  // when in SINGLE mode, only 1 accordion  
  // group can be open at a time.  
  // accordion.setCollapseMode(Accordion.SINGLE);
}
  

void radio(int theC) {
  switch(theC) {
    case(0):c=color(0,200);break;
    case(1):c=color(255,0,0,200);break;
    case(2):c=color(0, 200, 140,200);break;
    case(3):c=color(0, 128, 255,200);break;
    case(4):c=color(50,128);break;
  }


void shuffle() {
  c = color(random(255),random(255),random(255),random(128,255));
}


void draw() {
  background(220);
  
  fill(c);
  
  float s1 = cp5.getController("hello").getValue();
  ellipse(200,400,s1,s1);
  
  float s2 = cp5.getController("world").getValue();
  ellipse(300,100,s2,s2);
}





/*
a list of all methods available for the Accordion Controller
use ControlP5.printPublicMethodsFor(Accordion.class);
to print the following list into the console.

You can find further details about class Accordion in the javadoc.

Format:
ClassName : returnType methodName(parameter type)


controlP5.Accordion : Accordion addItem(ControlGroup) 
controlP5.Accordion : Accordion close() 
controlP5.Accordion : Accordion open() 
controlP5.Accordion : Accordion remove(ControllerInterface) 
controlP5.Accordion : Accordion removeItem(ControlGroup) 
controlP5.Accordion : Accordion setCollapseMode(int) 
controlP5.Accordion : Accordion setItemHeight(int) 
controlP5.Accordion : Accordion setMinItemHeight(int) 
controlP5.Accordion : Accordion setWidth(int) 
controlP5.Accordion : Accordion updateItems() 
controlP5.Accordion : int getItemHeight() 
controlP5.Accordion : int getMinItemHeight() 
controlP5.ControlGroup : Accordion activateEvent(boolean) 
controlP5.ControlGroup : Accordion addListener(ControlListener) 
controlP5.ControlGroup : Accordion removeListener(ControlListener) 
controlP5.ControlGroup : Accordion setBackgroundColor(int) 
controlP5.ControlGroup : Accordion setBackgroundHeight(int) 
controlP5.ControlGroup : Accordion setBarHeight(int) 
controlP5.ControlGroup : Accordion setSize(int, int) 
controlP5.ControlGroup : Accordion updateInternalEvents(PApplet) 
controlP5.ControlGroup : String getInfo() 
controlP5.ControlGroup : String toString() 
controlP5.ControlGroup : int getBackgroundHeight() 
controlP5.ControlGroup : int getBarHeight() 
controlP5.ControlGroup : int listenerSize() 
controlP5.ControllerGroup : Accordion add(ControllerInterface) 
controlP5.ControllerGroup : Accordion addListener(ControlListener) 
controlP5.ControllerGroup : Accordion bringToFront() 
controlP5.ControllerGroup : Accordion bringToFront(ControllerInterface) 
controlP5.ControllerGroup : Accordion close() 
controlP5.ControllerGroup : Accordion disableCollapse() 
controlP5.ControllerGroup : Accordion enableCollapse() 
controlP5.ControllerGroup : Accordion hide() 
controlP5.ControllerGroup : Accordion hideArrow() 
controlP5.ControllerGroup : Accordion hideBar() 
controlP5.ControllerGroup : Accordion moveTo(ControlWindow) 
controlP5.ControllerGroup : Accordion moveTo(PApplet) 
controlP5.ControllerGroup : Accordion open() 
controlP5.ControllerGroup : Accordion registerProperty(String) 
controlP5.ControllerGroup : Accordion registerProperty(String, String) 
controlP5.ControllerGroup : Accordion remove(CDrawable) 
controlP5.ControllerGroup : Accordion remove(ControllerInterface) 
controlP5.ControllerGroup : Accordion removeCanvas(Canvas
controlP5.ControllerGroup : Accordion removeListener(ControlListener) 
controlP5.ControllerGroup : Accordion removeProperty(String) 
controlP5.ControllerGroup : Accordion removeProperty(String, String) 
controlP5.ControllerGroup : Accordion setAddress(String) 
controlP5.ControllerGroup : Accordion setArrayValue(float
controlP5.ControllerGroup : Accordion setArrayValue(int, float) 
controlP5.ControllerGroup : Accordion setCaptionLabel(String) 
controlP5.ControllerGroup : Accordion setColor(CColor) 
controlP5.ControllerGroup : Accordion setColorActive(int) 
controlP5.ControllerGroup : Accordion setColorBackground(int) 
controlP5.ControllerGroup : Accordion setColorForeground(int) 
controlP5.ControllerGroup : Accordion setColorLabel(int) 
controlP5.ControllerGroup : Accordion setColorValue(int) 
controlP5.ControllerGroup : Accordion setHeight(int) 
controlP5.ControllerGroup : Accordion setId(int) 
controlP5.ControllerGroup : Accordion setLabel(String) 
controlP5.ControllerGroup : Accordion setMouseOver(boolean) 
controlP5.ControllerGroup : Accordion setMoveable(boolean) 
controlP5.ControllerGroup : Accordion setOpen(boolean) 
controlP5.ControllerGroup : Accordion setPosition(float, float) 
controlP5.ControllerGroup : Accordion setPosition(float) 
controlP5.ControllerGroup : Accordion setSize(int, int) 
controlP5.ControllerGroup : Accordion setStringValue(String) 
controlP5.ControllerGroup : Accordion setTitle(String) 
controlP5.ControllerGroup : Accordion setUpdate(boolean) 
controlP5.ControllerGroup : Accordion setValue(float) 
controlP5.ControllerGroup : Accordion setVisible(boolean) 
controlP5.ControllerGroup : Accordion setWidth(int) 
controlP5.ControllerGroup : Accordion show() 
controlP5.ControllerGroup : Accordion showArrow() 
controlP5.ControllerGroup : Accordion showBar() 
controlP5.ControllerGroup : Accordion update() 
controlP5.ControllerGroup : Accordion updateAbsolutePosition() 
controlP5.ControllerGroup : CColor getColor() 
controlP5.ControllerGroup : Canvas addCanvas(Canvas
controlP5.ControllerGroup : ControlWindow getWindow() 
controlP5.ControllerGroup : Controller getController(String) 
controlP5.ControllerGroup : ControllerProperty getProperty(String) 
controlP5.ControllerGroup : ControllerProperty getProperty(String, String) 
controlP5.ControllerGroup : Label getCaptionLabel() 
controlP5.ControllerGroup : Label getValueLabel() 
controlP5.ControllerGroup : String getAddress() 
controlP5.ControllerGroup : String getInfo() 
controlP5.ControllerGroup : String getName() 
controlP5.ControllerGroup : String getStringValue() 
controlP5.ControllerGroup : String toString() 
controlP5.ControllerGroup : Tab getTab() 
controlP5.ControllerGroup : boolean isBarVisible() 
controlP5.ControllerGroup : boolean isCollapse() 
controlP5.ControllerGroup : boolean isMouseOver() 
controlP5.ControllerGroup : boolean isMoveable() 
controlP5.ControllerGroup : boolean isOpen() 
controlP5.ControllerGroup : boolean isUpdate() 
controlP5.ControllerGroup : boolean isVisible() 
controlP5.ControllerGroup : boolean setMousePressed(boolean) 
controlP5.ControllerGroup : float getArrayValue(int) 
controlP5.ControllerGroup : float getValue() 
controlP5.ControllerGroup : float getArrayValue() 
controlP5.ControllerGroup : float getPosition() 
controlP5.ControllerGroup : int getHeight() 
controlP5.ControllerGroup : int getId() 
controlP5.ControllerGroup : int getWidth() 
controlP5.ControllerGroup : int listenerSize() 
controlP5.ControllerGroup : void controlEvent(ControlEvent) 
controlP5.ControllerGroup : void remove() 
java.lang.Object : String toString() 
java.lang.Object : boolean equals(Object) 

created: 2015/03/24 12:25:32

*/
図4:GUIサンプルプログラム

3. 実験!

 図4のProsessing画面で「▶」を押してサンプルプログラムを実行すると、図5に示す「ControlIP5accordion」画面が表示され、その中にマウスで入力するGUIと、その入力に連動する円が表示されます。
 「MYGROUP1」中の四角い「BANG」ボタンを押すと色が変化します。
 「MYGROUP2」中の「BLACK…GRAY」ボタンを押すと名前の色に変化します。
 「MYGROUP3」中の「HELLO,WORLD」スライドを動かすと円の大きさが変化しました
イメージ 6
図5:ラズパイ画面上のGUIパラメータを図形に反映!

4. まとめ

 これでRaspberrypiの画面上にProsessingで作ったGUIからGPIOピンを制御する事も簡単に出来そうです!

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Physical Computing Labが販売し、Amazon.co.jp が発送します。 この出品商品には代金引換とコンビニ・ATM・ネットバンキング・電子マネー払いが利用できます。 ギフトラッピングを利用できます。

Raspberry Pi 3 Model B(ProsessingでGPIO入力!)

イメージ 1
Raspberry Pi 3 Model B」×「Prosessing ver3.4」でGPIO入力!

 Arduinoと相性が良いProsessingを実質パソコンのRaspberry PiにインストールしてGPIO※1インターフェースから連携させてみましたさすがラズパイ簡単ですね!

1. Prosessingのインストール!

 RaspberryPiにProsessingをインストールする方法はとっても簡単です

1.1 インストール
 図1の「Now Available for Download: Processing」サイトに書かれている通り、表1コマンドを図2の様に「LXTerminal」にコピペして実行し暫く待てば完了です!
 
イメージ 3
図1:参考サイトNow Available for Download: Processing

表1:Prosessingインストールコマンド

イメージ 4
図2:LXTerminal

1.2 確認
 Prosessingインストール完了後にRaspberrypiを再起動し、図3の様にラズベリーアイコン「applications menu」→「プログラミング」→「Prosessing」と表示されていればOKです!
イメージ 10
図3:メニューに「Prosessing」が無事出現!

2. Prosessing日本語表示

 Prosessingでプログラムする場合 日本語で「//コメント」や「/*コメント*/」したい場合が有るのですが、初期設定のエディタとコンソールのフォント「Source Code Pro」では文字化けしてしまいます。
 日本語を正しく表示させるには、図4,5の様に「ファイル」→「設定」から設定画面を開き→「エディタとコンソールのフォント」のプルダウンメニュー「Source Code Pro」から「Unifont」に変更して「OK」をクリックすれば無事日本語が表示されます。
イメージ 5
図4:Prosessing

イメージ 6
図5:設定画面

3. ProsessingからRaspberrypi GPIO制御!

 ArduinoIDEに慣れている人は、RaspberryPiのOS「Raspbian」に標準で備わっているプログラム言語「python※1」より「Prosessing」の方がとっつきやすいのではないでしょうか
 pinMode()やdigitalRead()が、そのまま使えます!(^^)!

※1pythonとは、最近人気のオブジェクト指向スクリプト言語です。文法上の特徴から初心者にも扱い易く、またGoogle社・Yahoo社・Dropbox社等の大手企業でも使用されている言語です。特徴として、可読性に優れている・コンパイルを必要としない・対話型シェルにて動作確認が可能です。


3.1 プログラム
 「ファイル」→「サンプル」→「ライブラリ」→「Hardware I/O」の中に入っている以下「SimpleInput」のサンプルプログラムを読み込みます。
イメージ 7
import processing.io.*;
// GPIO numbers refer to different phyiscal pins on various boards
// On the Raspberry Pi GPIO 4 is physical pin 7 on the header
// see setup.png in the sketch folder for wiring details

void setup() {
  // INPUT_PULLUP enables the built-in pull-up resistor for this pin
  // left alone, the pin will read as HIGH
  // connected to ground (via e.g. a button or switch) it will read LOW
  GPIO.pinMode(4, GPIO.INPUT_PULLUP);
}

void draw() {
  if(GPIO.digitalRead(4) == GPIO.LOW) {
    // button is pressed
    fill(255);
  } else{
    // button is not pressed
    fill(204);
  }
  stroke(255);
  ellipse(width/2, height/2, width*0.75, height*0.75);
}
図6:GPIOサンプルプログラム

3.2 接続
 Raspberry Pi 3 Model B」を起動→「LXTerminal」を起動→「pi@raspberrypi:~$」と表示されている後に続けて「pinout」と入力後「Enter」を押せば図7ピンアウト図が表示されます。
 今回は「7ピン(GPIO4)※2」をソフトウェアプルアップした状態で、「9ピン(GND)」に接続する事で図8の様に抜き差ししてスイッチとして使います。

※2:GPIO(英:General-purpose input/output)とは、「汎用入出力」の意味でマイコン等が外界と接続するためのインタフェースの事。GPIOピンにはあらかじめ定義された目的はなく、デフォルトでは使用されない。その動作はユーザによって自由に制御出来る。

イメージ 2
 図7:「Raspberry Pi 3 ModelB」 Pinout

イメージ 8
図8:ブレッドボード上でON-OFFすると

3.3 スイッチに画面が連動!
 図6のProsessing画面で「▶」を押してサンプルプログラムを実行すると、図8スイッチの状態に応じて図9画面が点滅しました!
イメージ 9
図9:ラズパイ画面上の白丸がOFFで中抜き、ONで塗りつぶし

4. まとめ

 ArduinoIDE感覚でProsessingで作ったGUI(Graphical User Interface)をRaspberrypiで動かしながらGPIOピンを制御・・・!?
 pythonをすっ飛ばしてしまって若干心苦しいですが便利です!
 流石はほぼパソコンのRaspberrypiですね!Arduinoには不可能な芸当です!
 久しぶりにRaspberry Pi 3 Model Bを引っ張り出しましたが、既に時代はB+に進化してしまいましたまだまだ現役で遊べます!

イメージ 1イメージ 3
励みになりますのでよければクリック下さい(^o^)/



この商品は、Physical Computing Labが販売し、Amazon.co.jp が発送します。 この出品商品には代金引換とコンビニ・ATM・ネットバンキング・電子マネー払いが利用できます。 ギフトラッピングを利用できます。