Deux moteurs peuvent être utilisé pour deux roues, ou pour s'incliner dans deux directions. Cet exemple montre un montage qui permet au Thymio II de s'incliner selon les deux axes qui se trouvent dans le plan horizontal. Le Thymio II se déplace selon un axe par rapport à un cadre et le cadre se déplace par rapport à unns support selon un deuxième axe perpendiculaire au premier. Cela donne la construction suivante:
Une roue est utilisée directement (via une réduction) pour incliner le robot selon un axe par rapport à un cadre. Une construction compact est la suivante. A noter que le dernier axe dans le cadre est fixe, donc la dernière grande roue (à gauche) du réducteur est solidaire au cadre.
Vu que le deuxième axe doit être perpendiculaire au premier, la deuxième roue du robot doit transmettre son mouvement tout autour du cadre afin de faire pivoter un deuxième axe perpendiculaire et qui se trouve entre le cadre et le support de l'ensemble. Aussi ici la dernière roue (visible dans le support transparent qui est solidaire au cadre) est solidaire du support. Petit détail de construction: la transmission de ce mouvement à cette distance ne peut pas être très rigide. Pour que ce manque de rigidité influence le moins la précision de rotation autour de l'axe, il est important de multiplier (et non réduire) le mouvement entre la rue du robot et la transmission (ici à droite), puis de réduire fortement à la fin de la transmission, ici avec une vis sans fin.
Dans cette configuration le Thymio II peut tourner autour des deux axes. Il peut affectuer cette rotation, par exemple, pour gadrer vertical le bâton noir en dessus de lui en lisant les accéléromètres de la façon suivante:
var accTampon0[4] = 0,0,0,0
var accTamponPos0 = 0
var accTampon1[4] = 0,0,0,0
var accTamponPos1 = 0
var sumacc0
var sumacc1
onevent acc
accTampon0[accTamponPos0] = acc[0]-2
accTamponPos0 = (accTamponPos0 + 1) % 4
sumacc0 = accTampon0[0] + accTampon0[1] + accTampon0[2] + accTampon0[3]
accTampon1[accTamponPos1] = acc[2]
accTamponPos1 = (accTamponPos1 + 1) % 4
sumacc1 = accTampon1[0] + accTampon1[1] + accTampon1[2] + accTampon1[3]
motor.left.target=-sumacc0*10
motor.right.target=sumacc1*20
Le tout donne le comportement suivant: