The Mechanical Turk

From Randomdata wiki
Revision as of 18:56, 3 July 2025 by Uev52 (talk | contribs) (Created page with "= The Mechanical Turk (project) = == Overzicht == ''The Mechanical Turk'' is een technisch en ambachtelijk schaakbordproject ontwikkeld binnen Hackerspace RandomData. Het project combineert houtbewerking, 3D-printing, robotica, NFC-technologie en softwareontwikkeling. Het doel is om een fysiek schaakbord te bouwen dat automatisch schakelt tussen fysieke en digitale zetten. Hiermee kunnen spelers schaakwedstrijden spelen tegen online tegenstanders via Chess.com, terwijl...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The Mechanical Turk (project)

Overzicht

The Mechanical Turk is een technisch en ambachtelijk schaakbordproject ontwikkeld binnen Hackerspace RandomData. Het project combineert houtbewerking, 3D-printing, robotica, NFC-technologie en softwareontwikkeling. Het doel is om een fysiek schaakbord te bouwen dat automatisch schakelt tussen fysieke en digitale zetten. Hiermee kunnen spelers schaakwedstrijden spelen tegen online tegenstanders via Chess.com, terwijl de zetten live en fysiek op het bord worden uitgevoerd.

Het is een moderne knipoog naar de originele Mechanical Turk uit 1770. In plaats van een verborgen schaakmeester zit er nu een programmeerbare mechanische arm onder het bord, aangestuurd door een Raspberry Pi.

Beschrijving van het project

Het bord wordt met de hand gebouwd uit meerdere soorten hout, waaronder mahonie. Elk schaakstuk wordt geprint met een 3D-printer en handmatig afgewerkt. Onder elk stuk zit een unieke NFC-sticker.

Onder het bord bevindt zich een gridstructuur waarin een magnetische arm beweegt. Deze arm beweegt verticaal om een stuk op te tillen en horizontaal om het over het bord te verplaatsen. Het systeem weet waar elk stuk zich bevindt dankzij de NFC-tags.

Wanneer een tegenstander online een zet doet, haalt een Python-script op de Raspberry Pi deze op via de Chess.com API. De arm voert vervolgens de fysieke zet uit. Wanneer de speler zelf een zet doet op het bord, wordt deze herkend via NFC en doorgestuurd naar Chess.com.

Technische werking in het kort

  • Schaakstukken hebben unieke NFC-tags
  • De magnetische arm beweegt in een X/Y-grid en tilt stukken verticaal op
  • De Raspberry Pi bestuurt de arm via Python
  • De zetten worden opgehaald of verstuurd via de Chess.com API

Voorbeeldscript

<syntaxhighlight lang=\"python\"> import chess import chess.engine import requests from time import sleep

  1. Simpel voorbeeld: haal zet op van Chess.com API

def get_last_move(game_id):

   url = f\"https://api.chess.com/pub/game/{game_id}\"
   response = requests.get(url)
   data = response.json()
   return data['moves'].split()[-1]
  1. Placeholder: zet motor aan om stuk van A2 naar A4 te verplaatsen

move = get_last_move('game-id-hier') if move == 'a2a4':

   print(\"Verplaats pion van A2 naar A4\")
   # stuur signaal naar mechanische arm

</syntaxhighlight>

Bouwplan en tijdlijn

Fase 1 – Voorbereiding en ontwerp (week 1–2)

  • Ontwerp van schaakstukken in CAD
  • Grid- en mechaniekconcept uitwerken
  • Houtselectie
  • Planning

Fase 2 – 3D-printen en afwerking (week 3–4)

  • Printen in PLA
  • Schuren, primen, schilderen, polijsten
  • NFC-tags bevestigen

Fase 3 – Bordconstructie (week 5–6)

  • Hout zagen en frezen
  • Gridstructuur maken
  • Schaakvlak ontwerpen met inlay/gravure
  • Verlijmen en lakken

Fase 4 – Mechanische arm (week 7–8)

  • Opbouw arm met servo’s/stappenmotoren
  • Testen op X/Y/Z-beweging
  • Kalibratie

Fase 5 – Software & Raspberry Pi (week 9–10)

  • Python-scripts schrijven
  • NFC-lezer integreren
  • Chess.com koppeling
  • Logging en foutafhandeling

Fase 6 – Eindtest en integratie (week 11–12)

  • Volledige systeemtest
  • Test met Chess.com en lokale AI
  • Fine-tuning
  • Optionele toevoegingen zoals LEDs en geluid

Randvoorwaarden

Component Specificatie/Versie Toelichting
Raspberry Pi Raspberry Pi 4 Model B (4GB) Voor besturing en scripts
OS/software Raspberry Pi OS 64-bit, Python 3.11 Voor API-koppeling en motorsturing
NFC-lezer PN532 module via I2C Voor uitlezen van schaakstukken
NFC-tags NTAG213 of NTAG215 Unieke ID's per stuk
Motoren NEMA 17 + A4988 drivers X/Y-beweging van arm
Servo (Z-as) SG90 of MG995 Verticaal optillen van stukken
Magneet Neodymium 6x3 mm Voor stukkoppeling
3D-printer Bambu Lab P1P of gelijkwaardig Printen van stukken
Filament PLA+ Beter afwerkbaar dan standaard PLA
Houtsoorten Mahonie, esdoorn, walnoot Visueel contrast op het bord
Gereedschap Cirkelzaag, schuurmachine, graveermachine Voor houtbewerking en afwerking
Verf & lak Fillerprimer, acrylverf, houtlak Voor professionele afwerking
Lijm & klemmen Houtlijm, klemmen Voor bordconstructie
Meetgereedschap Geodriehoek, schuifmaat Nauwkeurige plaatsing
Internet WiFi of Ethernet Voor communicatie met Chess.com

Projectleiding

Het project wordt geleid door 0ffset_0x52, beter bekend als UEV52. Wie wil bijdragen aan dit project, kan contact opnemen via de SignalChat of zich melden in het RandomData Mattermost-kanaal.

Toekomstige uitbreidingen

  • Lokale AI met Stockfish
  • LEDs voor visuele feedback
  • Geluid bij schaak/mat
  • OLED-display voor zettennotatie
  • Spraakbesturing of remote multiplayer

Achtergrond en inspiratie

Het originele concept van de Mechanical Turk werd in 1770 gebouwd door Wolfgang von Kempelen. Waar toen een menselijke schaakmeester verborgen zat om het spel te sturen, werkt deze moderne versie volledig transparant en digitaal. Het project combineert kunst, techniek en nostalgie tot een interactief schaakplatform.