【发布时间】:2013-01-25 18:20:55
【问题描述】:
我编写了一个可以转换普通文本的应用程序,例如:“Hello my Name is XY”
分为点和笔画(..-. ; --.- ; . ; - ; 等等)
现在我想将这些点和笔画转换为闪光,点的长度为 0.3 秒,笔画的长度为 0.6 秒。在每个点或笔划之后还有一个点长度的停顿,每个单词之后有一个双停顿,每个句子之后有一个三重停顿/中断。
我的代码中也隐含了中断。
现在的问题是轻描边不够不同。
因为它背后的想法是通过 Arduino Duo 和 fototransistor 将 Light 闪烁转换回 Text。
这是光转换过程的代码片段:
- (IBAction)send:(id)sender{
// 将文本转换为莫尔斯电码等
float needTime;
NSString *string = plotter;
for (int d = 0;d < [string length]; d++) {
NSString *punktoderstrich = [string substringWithRange:NSMakeRange(d, 1)];
if ([punktoderstrich isEqualToString:@"."]) {
needTime = needTime + 0.4f;
[self performSelector:@selector(playpunkt) withObject:nil afterDelay:needTime];
}
if ([punktoderstrich isEqualToString:@"-"]) {
needTime = needTime + 1.0f;
[self performSelector:@selector(playstrich) withObject:nil afterDelay:needTime];
}
if ([punktoderstrich isEqualToString:@" "]) {
needTime = needTime + 0.4f;
[self performSelector:@selector(playpause) withObject:nil afterDelay:needTime];
}
if ([punktoderstrich isEqualToString:@"/"]) {
needTime = needTime + 0.3f;
[self performSelector:@selector(playpause) withObject:nil afterDelay:needTime];
}
}
- (void)torchAn {
[captureDevice lockForConfiguration:nil];
[captureDevice setTorchMode:AVCaptureTorchModeOn];
[captureDevice setFlashMode:AVCaptureFlashModeOn];
[captureDevice unlockForConfiguration];
}
- (void)torchAus {
[captureDevice lockForConfiguration:nil];
[captureDevice setTorchMode:AVCaptureTorchModeOff];
[captureDevice setFlashMode:AVCaptureFlashModeOff];
[captureDevice unlockForConfiguration];
}
-(void)playstrich{
// AudioServicesPlaySystemSound (outSystemSoundID2);
[self torchAn];
//[self performSelector:@selector(torchAus) withObject:nil afterDelay:0.8f];
}
-(void)playpunkt{
//AudioServicesPlaySystemSound (outSystemSoundID1);
[self torchAn];
//[self performSelector:@selector(torchAus) withObject:nil afterDelay:0.4f];
}
- (void)playpause{
// AudioServicesPlaySystemSound (outSystemSoundID3);
[self performSelector:@selector(torchAus) /*withObject:nil afterDelay:0.4f*/];
}
如您所见,我还导入了声音文件(短和长),但主要目标是发出正确的灯光信号。
我的问题:
短灯大多是可以的,除了 LED 首次闪烁时的第一个灯。 长光信号实际上并不长。有时我在录制它们时会得到相同的结果。
并且在长灯之后应该亮起以下短灯不正常短..嗯..
在我注释掉声音的部分后,整个过程变得更加稳定。 我还将部件(关闭 LED)从它自己的标志移到了休息处。
我希望有人能给我一些小费左右:)
来自德国的问候!
P.S.:我的设备是 iPhone 4s(带手电筒 ^^)
【问题讨论】:
-
手电筒并不是真的要以这种方式快速打开和关闭,因此对于这些短脉冲,它可能永远不会具有您想要的那种精度。您是否考虑过使用 iPhone 屏幕,并在全白和全黑之间闪烁?这可能仍然会为您的传感器提供足够的照明来检测。
-
传感器的检测值介于 0 到 1024 之间。当我直接握住手电筒时,我得到的值在 180 到 280 之间。当我只使用全光显示器时,我只能得到 13- 17 太少了。因为如果您所在的房间已经有杂散光,则该值已经高于此值。所以我会得到很多错误的解密..但是感谢您的意见! :)
标签: iphone led morse-code