Я занимаюсь разработкой и приложением, и я хотел бы измерить повороты колеса. Я купил дешевый одометр велосипеда, который подсчитывает повороты велосипедного колеса с помощью переключателя , который замыкает цепь один раз за ход, когда магнит находится достаточно близко к датчику. У меня была идея , добавив этот магнитный переключатель в микрофонную схему из гарнитуры iphone, а затем с помощью аудиокарты для управления подключением микрофона, что делает коммутатор, который можно определить, когда микрофон находится или нет а затем создать счетчик с ним. Способ, которым я мог сделать коммутатор, заключался в использовании рамки AVFoundation с классом [AVCaptureDevice], так как я узнал, что это единственный способ дифференцировать внешний и внутренний микрофон после ответа [this-post].Как сделать переключатель с микрофонным входом iphone для подсчета оборотов колеса?
Вставьте отрывок из моего кода, чтобы проверить коммутатор. Код находится в цикле таймера.
NSString *name;
static int micSwitch=0;
NSArray *devices = [AVCaptureDevice devicesWithMediaType:AVMediaTypeAudio];
for (AVCaptureDevice *device in devices) {
name = [ device localizedName];
}
if ([name isEqual:@"iPhone Microphone"]) {
micSwitch=0;
}
else{
micSwitch=1;
}
Однако этот коммутатор обновляется медленнее, чем мне нужно. Согласно моей оценке, переключатель необходимо будет обновить менее чем за 1,5 мс. У кого-то есть лучшая идея, как я могу это сделать, используя вход аудиоразъема ?
Моя математика будет грубой. С переключателем на 12 'от центра колеса, вращающегося с частотой 20 Гц, его скорость составляет около 3800 см/с. Если переключатель работает с радиусом 5 см, у вас есть окно размером 2 мс для его обнаружения, это означает, что вам нужно иметь возможность проверять устройство один раз каждый N с, где «N <1 мс», а не 50 мс. –
Да, я понял. Я сделал это быстро, просто размышляя о периоде поворота. Но думая о том, насколько быстро магнит проходит через датчик, это точка. Я правильно измерил размер колеса и расстояние от датчика от центра колеса, и я получил окно 1,5 мс. Благодарю. – tsvilela