ipodtouchとjapanino(arduino)のシリアル通信でLEDを光らせる!!
youtubeに動画をとってアップロードしたけど、再生回数が伸びません?!
はじめてなのでこんなもんなのかな?!
シリアル通信について詳しく情報を残しておこうと思います!
まずjapaninoに書き込んだプログラムから・・・・
↓(スケッチ)
int ledPin = 0; //要らない
int incomingByte = 0;//シリアル通信
int var = 0;//switch case の切り替えに使う
void setup() {
pinMode(2, OUTPUT);//デジタルPINを出力に設定
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(14, OUTPUT);//アナログPINをデジタルの出力に設定
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
pinMode(18, OUTPUT);
Serial.begin(9600);//シリアル通信の宣言たぶん
}
void loop()
{
digitalWrite(2, LOW);//毎回LEDを消灯させる
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
delay(100);
if (Serial.available() > 0) { //スケッチサンプル使用
incomingByte = Serial.read();
delay(100);
var = incomingByte - 48;//IPODTOUCHでは1を押すと
if (var == 0){ //49がシリアル通信で出力される
var = 10;} //2が50・・・
//varに押した数字と同じ数字が
//入る仕組み
switch (var) {
case 1:// varが1のとき実行される
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 2: // varが2のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 3:// varが3のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 4: // varが4のとき実行される
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 5: // varが5のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 6: // varが6のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 7: // varが7のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 8: // varが8のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 9: // varが9のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 10: // varが10のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
default: // どのcaseにも一致しなかったとき実行される
digitalWrite(2, LOW); // (defaultは省略可能)
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
delay(100);
}}}//以上
ipodtouchのシリアル通信のソフトはminicomというのを使った!
要JBでterminalから使う!!
特にプログラミングの必要なし!!
動画で自作スタイラスペンを使っています!!
作り方は、金属製のペンと被服用のスナップをデンタルフロスで固定!!
という動画をみて作ったが英語がわからず、最初はプラスッチクのペンでやってみたけどできなかったので試行錯誤した結果、金属とスナップの金属が接触して手とipodtouchが繋がる仕組みでした!!
デンタルフロス(なぜか500円の物)も普通の糸でも良かった!!まあ強度と隙間に入りやすいのでこれが使われているんだろう!!
ブレットボードの配線はグチャグチャで抵抗も使わず・・・
ipodtouchからの配線は車用のiphone用ケーブルのプラグをむき出しにしてブレットボードにつなげた!!(リサイクルショップで100円くらいで発見)
プログラミング(スケッチ)はサンプル見ながら作れた、
もっと短く書くこともできるがLEDが光るところがはやく見てみたかったので、深く考えずにつくった!!
はじめてなのでこんなもんなのかな?!
シリアル通信について詳しく情報を残しておこうと思います!
まずjapaninoに書き込んだプログラムから・・・・
↓(スケッチ)
int ledPin = 0; //要らない
int incomingByte = 0;//シリアル通信
int var = 0;//switch case の切り替えに使う
void setup() {
pinMode(2, OUTPUT);//デジタルPINを出力に設定
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
pinMode(14, OUTPUT);//アナログPINをデジタルの出力に設定
pinMode(15, OUTPUT);
pinMode(16, OUTPUT);
pinMode(17, OUTPUT);
pinMode(18, OUTPUT);
Serial.begin(9600);//シリアル通信の宣言たぶん
}
void loop()
{
digitalWrite(2, LOW);//毎回LEDを消灯させる
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
delay(100);
if (Serial.available() > 0) { //スケッチサンプル使用
incomingByte = Serial.read();
delay(100);
var = incomingByte - 48;//IPODTOUCHでは1を押すと
if (var == 0){ //49がシリアル通信で出力される
var = 10;} //2が50・・・
//varに押した数字と同じ数字が
//入る仕組み
switch (var) {
case 1:// varが1のとき実行される
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 2: // varが2のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 3:// varが3のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 4: // varが4のとき実行される
digitalWrite(2, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 5: // varが5のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 6: // varが6のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 7: // varが7のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 8: // varが8のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 9: // varが9のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
case 10: // varが10のとき実行される
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
digitalWrite(9, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
break;
default: // どのcaseにも一致しなかったとき実行される
digitalWrite(2, LOW); // (defaultは省略可能)
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
digitalWrite(9, LOW);
digitalWrite(14, LOW);
digitalWrite(15, LOW);
digitalWrite(16, LOW);
digitalWrite(17, LOW);
digitalWrite(18, LOW);
delay(100);
}}}//以上
ipodtouchのシリアル通信のソフトはminicomというのを使った!
要JBでterminalから使う!!
特にプログラミングの必要なし!!
動画で自作スタイラスペンを使っています!!
作り方は、金属製のペンと被服用のスナップをデンタルフロスで固定!!
という動画をみて作ったが英語がわからず、最初はプラスッチクのペンでやってみたけどできなかったので試行錯誤した結果、金属とスナップの金属が接触して手とipodtouchが繋がる仕組みでした!!
デンタルフロス(なぜか500円の物)も普通の糸でも良かった!!まあ強度と隙間に入りやすいのでこれが使われているんだろう!!
ブレットボードの配線はグチャグチャで抵抗も使わず・・・
ipodtouchからの配線は車用のiphone用ケーブルのプラグをむき出しにしてブレットボードにつなげた!!(リサイクルショップで100円くらいで発見)
プログラミング(スケッチ)はサンプル見ながら作れた、
もっと短く書くこともできるがLEDが光るところがはやく見てみたかったので、深く考えずにつくった!!
