barbra,
ну что ж, можно и попробовать

Раз зашёл разговор про кибернетические руки, не буду ломать тему.
На заре роботостроения, люди пытались дать роботам руки с конструкцией, сходной с человеческой.
Однако тогда это сходство предполагалось ограничить чисто «внешними» проявлениями.
Внутреннее устройство пытались разработать с нуля.
В общем-то, это и привело к провалу тех первых попыток.
Попробуйте одной рукой погнуть пальцы другой руки в различных направлениях, когда они в расслабленном состоянии, а потом — в напряжённом.
Не вдаваясь в технические детали, скажу, что если такую, как это называется, конструкцию переменной жёсткости, попробовать реализовать на сервомоторах (как это сперва и планировалось) — она выйдет крайне громоздкой и удручающе ненадёжной.
Впрочем, у человека есть оправдание — у него не было четырёх с половиной миллионов лет на отладку и доводку

Поэтому, вместо того чтобы ждать миллион-другой лет, было принято решение создать, скажем так, пиратскую копию с естественного оригинала.
Смысл в том, что «силовой агрегат» (собственно, мышцы) не расположен прямо на месте приложения силы, т.е. в пальцах, а отодвинут вглубь, в саму руку. Это даёт ряд таких важнейших преимуществ как компактность всей системы, относительную простоту реализации, а также изменение плеча силы на сочленениях (те, кто уже проходил на физике простые механизмы, поймут о чём речь; любопытствующим могу предложить статью
«Сильнее самого себя» из классического цикла Якова Перельмана «Занимательная Физика»), и как следствие, оптимизацию по скорости за счёт силы. Вкратце, усилие на пальцы подаётся от мышц тяговым механизмом — системой сухожилий. К идее тягового механизма человек пришёл ещё в средневековье, но успешно применить его именно здесь догадался сравнительно недавно, в середине двухтысячных.
Каждый палец имеет три «активных» степени свободы (два угла поворота у «корня», и по одному на остальных двух суставах, зависимых друг от друга в силу особенностей сухожилий-тяг; у большого пальца третьего сочленения нет, поэтому там угол независимый) и одну «пассивную». Это значит, что первые три угла мы можем контролировать напряжением непосредственно мышц, а четвёртая, т.е. поворот вокруг направляющей оси корня, доступна для изменения только сторонним воздействием.
В итоге, на каждый палец приходится по три тяги, и соответственно три величины, задающие нужные углы. С точки зрения технологии, это пятнадцать независимых сервомоторов. Разумеется, проще их разместить не в самих пальцах, а за кистью. Сама кисть, кстати, обладает тремя активными степенями свободы (3 угла поворота — крен, дифферéнт, курс). Ну так вот, моя задача во всей этой прелести, если, конечно, я там понадоблюсь — спаять, грубо говоря, управляющую схему, снимающую электрические сигналы с нервов плеча, которые «впадали» бы в локтевой и лучевой нервы (точных названий, увы, не помню — анатомию не изучал), и написать программу, преобразующую входную последовательность сигналов в набор команд сервомоторам. Формулировка несложная — однако, например, за расшифровку нервных сигналов руки взялись совсем недавно, и идёт она не без труда.
Другой сложностью является то, что питание для всей конструкции придётся носить в самом «протезе», т.к. подключать его к кровотоку рискованно и чревато отторжением. А это значит, что нужны, во-первых, ёмкие элементы питания (хотя здесь на помощь могут прийти ионисторы), а во-вторых, энергопотребление всех цепей, кроме сервомоторов, должно быть минимальным. Следовательно, управляющая схема должна быть предельно проста, и процессор, ею управляющий, должен, если не просто отсутствовать, то быть самым примитивным. А это означает, что его автокод (язык ассемблера) может не содержать не то что команд умножения, а даже вычитания. А на нём, в свою очередь, придётся со скоростью сотен преобразований в секунду считать тригонометрию с плавающей точкой.
В качестве «пугалки» могу привести недавний код преобразования символа по таблице:
Код: Выделить всё
MOV EBX, EAX;
MOV ECX, EDI;
MOV EDI, OFFSET KT;
REP MOVSB;
MOV BYTE PTR [EDI], 00h;
MOV EDI, OFFSET KT ⁺ 20;
MOV ESI, EDI;
MOV EAX, ' ';
MOV ECX, 15*3 ⁺ 1;
REP STOSD;
MOV DWORD PTR [EDI], 0A0D0A0Dh;
MOV EDI, EBP;
MOV ECX, OFFSET NT;
MOV WORD PTR [ESI ⁺ 60], 0A0Dh;
MOV WORD PTR [ESI ⁺ 122], 0A0Dh;
MOVZX EAX, BYTE PTR [ESI - 20 ⁺ EDI];
@loop:
SUB EAX, '.';
MOV EDX, DWORD PTR [ECX ⁺ EAX*4];
MOV DWORD PTR [ESI ⁺ EDI*4], EDX;
MOV EDX, DWORD PTR [ECX ⁺ NL ⁺ EAX*4];
MOV DWORD PTR [ESI ⁺ 62 ⁺ EDI*4], EDX;
MOV EDX, DWORD PTR [ECX ⁺ 2*NL ⁺ EAX*4];
MOV DWORD PTR [ESI ⁺ 124 ⁺ EDI*4], EDX;
MOVZX EAX, BYTE PTR [ESI - 19 ⁺ EDI];
INC EDI;
TEST EAX, EAX;
JNE @loop;
И здесь ещё нет никакой тригонометрии, а только банальная адресная арифметика.
В общем-то, вот.
С примерно такими проблемами (расшифровка, конструирование, оптимизация) сталкиваются учёные и инженеры при разработке кибернетических органов.
PS.
Ах да, кстати. У системы сухожилий есть не только описанные выше преимущества, но и масса недостатков. В частности, дрожание пальцев, появляющееся из-за многих факторов, таких как биение сердца и следующее за ним микроскопическое сжатие-расслабление управляющих мышц, «зашумление» нервного канала фоновым сигналом, неоднородность ткани сухожилий, и ещё чёрт знает что.
Так что здесь конструкторам придётся пойти чуть дальше природы и изобрести способы обхода этих досадных недоработок, с эволюционной точки зрения выживать не мешавших, но создающих проблемы для современных задач, таких как всё та же микрохирургия.
Тэг <code> почему-то съедает все плюсы. Заменил чем попало — символом плюса в верхнем регистре.