conjee 发表于 2013-2-19 09:44:31

iphone arduino 控制LED灯光-----制作过程

本帖最后由 conjee 于 2013-2-19 09:42 编辑

正当Iphone成为街机的时候,不妨用Iphone和Arduino来做个好玩的东东,用它们来控制LED灯光。Iphone4s之前的机型都可以(只要是扁平30针接口),至于Iphone5接口不一样没有研究!

硬件准备:Iphone一台、32针Iphone扁平接口、Arduino板子、LED灯、导线若干
软件准备:IOS开发平台、Arduino开发平台

制作过程:
一、        Iphone的串口制作
因为Iphone的扁平30针接口中包含了串口,所以我们只需要对其进行引出!我在网上找到了接口定义的资料具体如下:   
                              
                                                                                图1
            图1 为iphone接口排列方式为:1,2,3,4,5,6,7…..29,30
            数据线接口内部焊接点排列为:(图2、3)
                               2468101214   16   18……30
                           135791113   15   17…..29

                               
                                                                        图2

                               
                                                                          图3
                               

                        接口引脚数据定义:(只列出与串口相关)
                         1 :GND接地
                         12:TX    串行数据发送, 输出电压在3.3v
                         13:RX    串行数据接收, 输入电压在3.3v,Arduino串口输出电压为5v,可以用电阻进行分压输入,以保证Iphone安全。
                         18:3.3V   电源(可以不焊)
                         21:附件识别接口(可以不焊)
                  接口焊接图:
                       
                                    图4 焊接1

                        
                                  图5 焊接2

                        
                                  图6 焊接牢固

                        
                                  图7 接口散件到完成图

二、        组建Arduino与LED电路
                        
                                  图8
      也可以使用分立的LED灯!

三、        编写Arduino程序

#define SerialSpeed 9600
#define BufferLength 16
#define LineEnd '#'

char inputBuffer;
void setup(){
   pinMode(3, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(6, OUTPUT);
   analogWrite(3, 255);//LED为三色共阳,初始输出最大, 则熄灭
   analogWrite(5, 255);//LED为三色共阳,初始输出最大, 则熄灭
   analogWrite(6, 255);//LED为三色共阳,初始输出最大, 则熄灭
Serial.begin(SerialSpeed);
}

void loop(){
int inputLength = 0;
do{
      while(!Serial.available()); //wait for input
      inputBuffer = Serial.read(); //read it in
}while(inputBuffer != LineEnd && ++inputLength < BufferLength);
inputBuffer=0; //add null terminator

HandleCommand(inputBuffer, inputLength);
}


// process a command string
void HandleCommand(char* input, int length)
{
// Serial.println(input);
if (length < 2) {
   return;
}
int value = 0;

if (length > 2) {
   value = atoi(&input);
    Serial.print(value);
}

int* command = (int*)input;

switch(*command) {
    case 'rd':
      analogWrite(3, value);   //输出值越大则越暗,越小则越亮
   break;
    case 'gd':
       analogWrite(5, value);   //输出值越大则越暗,越小则越亮
    break;
    case 'bd':
       analogWrite(6, value);//输出值越大则越暗,越小则越亮
    break;

}
}

四、        编写IOS端程序
Xcode4.6+IOS6.1开发。看附件!
IOS程序界面:

                        图 9

五、        Arduino接上串口


                         图10

六、        联调
接上Iphone串口,打开ios程序就可以控制LED了! 下图是以前录制的截屏比较简洁没有用限流电阻。大家可以用图8 连接Arduino与LED,限流电阻为200欧。

                        图11

smfox10 发表于 2013-2-19 11:22:48

iphone串口能不能接收到arduino发回来的信息?

conjee 发表于 2013-2-19 13:23:06

smfox10 发表于 2013-2-19 11:22 static/image/common/back.gif
iphone串口能不能接收到arduino发回来的信息?

可以的,iphone串口接收时注意使用分压电阻,将arduino的5V输出转成3.3V左右的输入!
如图:

darkorigin 发表于 2013-2-19 14:30:43

好牛X啊~~~~~~~不过貌似必须要越狱后的IP才能装那个自开发的程序吧

conjee 发表于 2013-2-19 14:55:33

darkorigin 发表于 2013-2-19 14:30 static/image/common/back.gif
好牛X啊~~~~~~~不过貌似必须要越狱后的IP才能装那个自开发的程序吧

恩对的,要越狱
ios6.1前一阵就可以越狱了,那个时候我写了一下:Xcode4.6+IOS6.1开发免证书真机调试
http://blog.sina.com.cn/s/blog_af07c85c0101fu2r.html

幻生幻灭 发表于 2013-2-19 16:05:46

没越狱。。。

ewx_boy 发表于 2013-2-19 22:17:22

这个厉害,Mark~:$

darkorigin 发表于 2013-2-26 17:23:00

悲催,我也没越狱,目前只有一个IP5,TOUCH4给老婆霸占了,关键是怕越狱后不稳定了。
TOUCH是长期摸不到了。
打算构建一个XCODE环境玩玩看,哈哈, 不过当年的C基础不知道还剩下多少了

conjee 发表于 2013-2-26 17:50:35

darkorigin 发表于 2013-2-26 17:23 static/image/common/back.gif
悲催,我也没越狱,目前只有一个IP5,TOUCH4给老婆霸占了,关键是怕越狱后不稳定了。
TOUCH是长期摸不到了 ...

TOUCH4可以呵,欢迎交流!

新生代电子科技F 发表于 2013-4-11 10:20:09

楼主强呀,试下先,:)

新生代电子科技F 发表于 2013-4-11 19:38:23

有没有安卓系统的程序
调试用:)

Fortware 发表于 2013-5-17 14:33:17

LZ 很强悍啊,不过一般的安卓手机也可以实现吧

conjee 发表于 2013-5-30 14:22:35

新生代电子科技F 发表于 2013-4-11 19:38 static/image/common/back.gif
有没有安卓系统的程序
调试用

安卓的手机接口没有串口的吧, usb通信的没有写过哦。 要么先让usb转 串口, 应该有这样的设备。

iupoyterwq 发表于 2015-9-18 12:50:37

这个太棒了!楼主真会琢磨!

li23108 发表于 2015-11-11 10:25:42

这个厉害,Mark~
页: [1]
查看完整版本: iphone arduino 控制LED灯光-----制作过程