Avertissement2: la qualité legotique de cette création est pour ainsi dire inexistant, donc amateur d'élégance, fermez les yeux et appuyez sur ctrl+w

Avertissement3: Post long
Avertissement4: post technique, donc n'hésitez pas à poser des questions si vous ne comprenez pas
Avertissement5: Post très long
Projet fait pour le département d'informatique de l'ENS Lyon pour le centenaire de la naissance de Allan Turing
Nom de code : rubens
http://graal.ens-lyon.fr/rubens



pour faire vite: machine de turing = modélisation simple d'un ordinateur
Bon, comme dit dans ma présentation, j'ai participé dans le cadre d'un projet d'informatique (sic) à la réalisation d'une machine de Turing entièrement mécanique; y a déjà eu des gens qui ont fait une machine de Turing, mais ils ont utilisé un NxT (pff)
Nous trouvions que c'était trop simple, et donc nous avons tenté la machine en tout mécanique.
Elle ne marche pas encore, mais elle doit marcher pour juillet
En fait aujourd'hui jour de présentation du projet, elle marchait avec assistance humaine (l'homme au service de la machine

I le ruban
Une machine sans ruban n'est pas une machine
En vrai on en a deux

(Pour vous donner une idée de la taille, ils font chacun 100bits de long soit 300tenons. Pour des raisons de coût, on n'a pas fait de ruban infini... Je vous mettrais une photo quand j'en aurais une)
L'idée, c'est qu'on a des brick 2x2 qu'on peut faire coulisser

Le codage est le suivant:
1 = XO
0 = OX
blanc 1 = OO
blanc 2 = XX
où X indique la présence d'un bloc, et 0 l'absence
On remarque qu'on peut passer de 0 à 1 et de 1 à 0 aisément, mais il est hors de question de faire une autre transition.
Justement, pour "écrire" (comprendre changer l'état du bit du ruban à 0 ou à 1), on a juste un piston de chaque côté qui peut pousser les 2x2.

Ah oui, on a utilisé massivement du pneumatique (environ 30 pistons et 30 leviers...)
Pour lire, on n'a pas de détecteur de contact, donc on doit le faire mécaniquement.
Il n'est pas encore fonctionnel, mais il en donne l'idée
On a un piston par doigt de lecture (deux doigts par tête) qui pousse le doigt vers le ruban. On fixe un levier au doigt.
Deux cas:
- Il y a un 2x2 et il est arrêté avant. Le levier n'est pas activé
- Il n'y a pas de 2x2, et le doigt va en buté, le levier est activé

position de repos

position de lecture, avec le doigt du premier plan qui arrive en butée sur un 2x2 (bon vous l'imaginez, car j'ai pas de photo sous la main avec le ruban en dessous, mais ça marche (en fait j'ai pas encore réussi à connecter les leviers))
Au fait, tout ceci est fixé à un portique fixé à une planche, portique un "peu" renforcé.
(le premier qui me dit que j'ai fait un trou dans les legos pour mettre une vis, je le tape. Je ne perce PAS les legos... pfff)


Tiens un petit illegal build (qu'on n'a renommé dans le groupe en "Pytagore je t'emm***"



Mais c'est fait exprès, ça permet de limiter le jeu dû au piston.
Pour déplacer les rubans, on a un portique roulant qui est déplacer avec quatre pistons, et on a deux griffes qui descendent qui s'enclenchent entre les pin noirs du ruban.
Pour déplacer à droite, on
-pousse le portique à gauche
-descend les griffes
-pousse le portique à droite
-remonte les griffes

Bon le ruban est fini.
Passons à la table de transition
Grosso modo, c'est elle qui va donner les ordres en fonction de l'environnement et du contexte.
Un bref aperçu

Pour information, c'est équivalent à une mémoire de 360bits = 45octets = 0,000043Mo
Commençons:
En entrée de la mémoire, on a des parallélogrammes déformables, qui suivant les bits est serré ou desserré

Des fils sont accrochés sur le parti à l'avant ou à l'arrière des parallélogramme

Suivant l'entrée, des fils seront tirés quand on met le parallélogramme en position 0, et d'autre en position 1
Ces fils sont accrochés à d'autres parallélogramme (qu'on appellera ligne mémoire)


D'énormes axes traversent la table de part et d'autres (suivant le sens des colonnes), axes qu'on appellera bus
Deux cas
-ou une roue folle (fixé sur un pin lisse, oui c'est un illegal build) solidarise le bus d'alimentation au bus de sortie
-ou une roue fixe bloque le bus de sortie

Au bout des colonnes, le bus d'alimentation est alimenté en vitesse double, et on calcule la différence du bus de sortie par rapport à la vitesse normale avec un différentiel.
Donc roue folle => bus de sortie en vitesse double => sens de rotation du différentiel positif
roue fixe => bus de sortie bloqué => sens de rotation négatif
Le différentiel fait tourner ensuite un levier


Oui l'axe avec les roues dentées en couronne est en carton, et oui ça marche pas, et oui le clutch fatigue à force. C'est pour ça que ça marchera en juillet^^ (pour info, on va passer le système à clutch en système type autovalve de sariel, et on va renforcer convenablement l'axe d'alimentation)
Bon pour ceux qui suivent, on a en sortie de la table une direction de déplacement d, et on doit déplacer d'abord le portique en direction non(d) puis en direction d. On fait comment pour différencier droite/gauche?
Avec une porte Xor
d ---\ \
r ---//
(où r est la commande direction opposé direction similaire)
La voilà en brut de démoulage


On retient l'état interne de la machine tout simplement avec un piston

Mais au fait, la machine est alimentée comment?
Elle est alimenter en air comprimé
Mais mais... la mémoire elle a besoin d'une rotation?
Bah on met un moteur

design à peine inspiré de
D'ailleurs, parallèlement à la mémoire, le moteur après une réduction 8t/16t 8t/16t 16t/16t/16t/16t 8t/40t, on fait tourner un cylindre


Sur lequel on met des picots, et le cylindre en tournant va activer des leviers


Oui c'est inspiré de
Ah, au fait, il y a un autre poe (vous savez, Pythagore...)

Bref voilà, c'est petit moc drôle à faire. Une notice?

Projet pas évident, d'autant plus que je suis le seul à avoir massivement fait des legos jeunes, et en studfull, d'où la qualité legotic pas géniale
Mais c'est drôle par contre
Bon annexe:
C'est pratique

On a ça

Mais on préfère ça

avec un (petit) airtank
Edit:
Je rajoute la vidéo prise lors de la présentation de notre machine
Ce n'est pas une réelle video de MOC, mais je n'ai pas mieux pour l'instant.
J'espère ne pas être trop lourd avec les annotations, que vous pouvez de toute façons désactiver
Présentation (malheureusement) faite à l'arrachée

Plus de détails dans la partie présentation de la vidéo
Bon question à 1 pin noir, quelle pointure de pied fais-je?