Inhoudsopgave:
- Stap 1: Installeer Bootloader op het ontwikkelbord
- Stap 2: Arduino IDE instellen
- Stap 3: Capacitieve Controller Sketch installeren
- Stap 4: Aansluitingen en knoppen
Video: $ 3 alternatief voor Makey Makey: 4 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:14
De Makey Makey is een geweldig klein apparaat dat een USB-toetsenbord emuleert en waarmee je sleutels kunt maken van elk enigszins geleidend ding (aluminiumfolie, bananen, deeg, enz.), Die vervolgens kunnen worden gebruikt als een controller voor games en educatieve projecten. De Makey Makey heeft twee nadelen: (1) kosten en (2) de noodzaak van een aardverbinding.
Dit project is een goedkoop alternatief met een STM32F1-kaart van $ 2 en capacitieve detectie. Het heeft slechts 10 ingangen in tegenstelling tot de Makey Makey's 12, maar het heeft het voordeel dat het niet alleen een toetsenbord emuleert, maar ook een USB-gamepadcontroller (digitale joystick) kan emuleren.
Onderdelen:
- "black pill" STM32F103c8-bord ($ 1,90 op Aliexpress; meer informatie hier)
- breadboard (minder dan $ 1 op AliExpress) en jumperdraden; of gewoon een stel dupont-connectoren van vrouw naar man ($ 0,70 op AliExpress voor een pakket van 40)
- paperclips, krokodillenklemmen, enz.
Gereedschap:
- computer
- UART-naar-USB-adapter voor initiële kaartprogrammering (een Arduino Uno of Mega zal het werk doen, net als een goedkope CH340-eenheid)
- soldeerbout voor het solderen van headers op board (je kunt ook een stel testclips gebruiken zonder te solderen, maar die vallen er soms uit)
De software is een voorbeeldschets die wordt meegeleverd met mijn ADCTouchSensor-bibliotheek die capacitieve detectie mogelijk maakt met een enkele pin op het STM32F1-bord per sensor (het is gebaseerd op de bibliotheek van martin2250 voor AVR).
Waarschuwing: Raak bij droog weer of waar statische elektriciteit een probleem is (bijvoorbeeld op een tapijt) de blootgestelde metalen connectoren niet aan, anders veroorzaakt u elektrostatische schade aan de STM32F1-kaart. Ik verwacht dat de weerstand van aardappelen, bananen, play dough, etc. de plank zal helpen beschermen, maar als je kale aluminiumfolie gebruikt, kun je problemen krijgen. Aan de andere kant is het bord slechts $ 1,90.
Ideeën voor educatieve activiteiten:
- Experimenteer om erachter te komen welke items geleidend zijn en kunnen worden gebruikt als stuurvlakken. (Bijvoorbeeld potlood versus krijt; deeg spelen versus kaars.)
- Schrijf Scratch-spellen die een zelfgemaakte controller gebruiken.
- Wijzig de Arduino-code die het project aandrijft om muisklik/beweging, andere toetsen, meer dan vier joystickrichtingen, enz. toe te staan.
Stap 1: Installeer Bootloader op het ontwikkelbord
Soldeer de twee drie-pins headers in het midden van het Black Pill-ontwikkelsysteem (B0-/center/B0+; B1-/center/B1+) en de lange headers langs de randen (als u haast heeft of wilt om onnodige pinnen te voorkomen die kinderen in verwarring kunnen brengen, hebt u alleen pinnen nodig voor A0-A10 en G).
U hebt een UART-naar-USB-brug nodig die compatibel is met 3.3v-apparaten. Je kunt een ch340 bij Aliexpress bestellen voor $ 0,66, maar ik had een Arduino Mega-knockoff rondhangen en er was een coole truc die ik online vond. Als je op een Arduino de reset-pin kortsluit naar aarde met een korte draad, wordt het een UART naar USB-brug - geen schets nodig. De enige truc is dat de RX- en TX-labels worden omgekeerd: de "RX" -pin van de Arduino zendt en de "TX" -pin ontvangt. De Arduino werkt op 5v en de Black Pill op 3,3v, maar de PA9- en PA10-pinnen op de stm32f103 zijn 5V-tolerant, dus dat zou geen probleem moeten zijn.
Zet op de headers die je hebt gesoldeerd een jumper van B0+ naar het midden en van B1- naar het midden.
Maak de volgende verbindingen:
- PA9 naar UART bridge RX ("TX" als je de Arduino-truc gebruikt)
- PA10 naar UART bridge TX ("RX" als je de Arduino-truc gebruikt)
- G naar UART-bruggrond
Je kunt een breadboard gebruiken, of jumpers van man naar vrouw, of als je het wilt doen voordat je de headers soldeert, kun je testclips gebruiken (zoals op de foto).
Download het binaire bestand van de bootloader. U wilt generic_boot20_pb12.bin.
Installeer op Windows ST's Flash Loader Demonstrator. Gebruik in Linux (en misschien OS X en zelfs Windows als je de voorkeur geeft aan opdrachtregelprogramma's), in plaats daarvan dit python-script, maar mijn instructies zijn voor Windows. Sluit uw UART-brug aan op uw computer.
Schakel de Black Pill in via de USB-poort (als u de computer gebruikt, zal deze waarschijnlijk klagen over een niet-herkend USB-apparaat; negeer dat). Start de Flash Loader-demonstrator. Kies de COM-poort voor uw UART-bridge. Kies "Beveiliging verwijderen" indien beschikbaar. Kies een flash-versie van 64 kb in plaats van 128 kb. En upload het binaire bestand van de bootloader.
Schakel alles uit en verplaats vervolgens de jumper van B0+/center naar B0-/center. Je hebt nu een bootloader die je kunt gebruiken met de Arduino IDE.
Stap 2: Arduino IDE instellen
Ik neem aan dat je de nieuwste Arduino IDE hebt geïnstalleerd.
In Hulpmiddelen | Borden | Boards Manager, installeer ondersteuning voor de Arduino Zero (zet Zero gewoon in de zoekopdracht, klik op het gevonden item en vervolgens op Installeren). Ja, je werkt niet met een Zero, maar dit zal de juiste gcc-compiler installeren.
Download vervolgens de stm32duino-kern. Op Windows raad ik aan om het zip-bestand te downloaden, want toen ik de bestanden uitcheckte (toegegeven, met svn), had ik enkele machtigingsproblemen met bestanden in de map Windows-hulpprogramma's die moesten worden gerepareerd. Zet de branch in Arduino/Hardware/Arduino_STM32 (zodat je mappen hebt zoals Arduino/Hardware/Arduino_STM32/STM32F1, etc.) Installeer in Windows drivers door drivers\win\install_drivers.bat uit te voeren.
Stap 3: Capacitieve Controller Sketch installeren
Kies in Arduino IDE Sketch | Bibliotheek opnemen | Beheer bibliotheken. Zoek naar "ADCTouchSensor" en installeer versie 0.0.6 of nieuwer. Herhaal en zoek naar "USBHID" en installeer mijn USBHID_stm32f1-bibliotheek.
Kies Bestand | Voorbeeld | ADCTouchSensor | CapacitieveController.
Zorg ervoor dat u de volgende instellingen heeft onder Tools:
- Bord: Generieke STM32F103C8
- Uploadmethode: STM32duino Bootloader
Sluit het bord aan op de computer en klik op de pijl naar rechts "uploaden". Mogelijk moet u het bord opnieuw instellen (druk op de reset-knop erop) zodra het uploadbericht in de console verschijnt.
Stap 4: Aansluitingen en knoppen
Terwijl het apparaat is losgekoppeld, voert u draden van de STM32F1-pinnen naar uw bedieningsoppervlakken. Maak verbinding met krokodillenklemmen, paperclips of gewoon door jumpers in objecten te steken. Je kunt een breadboard gebruiken of jumpers van vrouw naar man. Voor Tetris op de computer gebruikten we de toetsenbordmodus en de pijltjestoetsen; voor Pac Man op de tablet gebruikten we een USB OTG-kabel en joystickmodus.
De CapacitiveController-schets kalibreert de capacitieve sensoren wanneer deze is ingeschakeld. Zorg ervoor dat u tijdens het inschakelen de bedieningsoppervlakken, draden ernaar of pinnen niet aanraakt. En als u een bedieningsoppervlak wijzigt, moet u opnieuw kalibreren door de stekker uit het stopcontact te halen en er weer in te steken of door op de witte resetknop op het bord te drukken.
De meeste apps hier zullen werken, evenals vele andere. Je kunt ook zien hoeveel Makey Makey-projecten je kunt aanpassen.
Enkele goede stuurvlakken:
- fruit en groenten
- deeg spelen
- aluminiumfolie (behalve in hoge statische omstandigheden)
- zwaar potlood knoppen/verbindingen op papier (de verbindingslijnen mogen niet te lang zijn - op de foto werkte de onderste knop niet)
- experimenteer met nog veel meer! (je kunt ook proberen de 25 aan te passen in if (sensors->read() > 25) regel in de broncode voor sommige oppervlakken)
Aansluitingen toetsenbordmodus:
- Laat A10 losgekoppeld
- A0: spatie
- A1: omhoog
- A2: links
- A3: omlaag
- A4: rechts
- A5: met
- A6: een
- A7: zo
- B0: d
- B1: f
Aansluitingen gamepad/joystick-modus:
- Sluit A10 aan op aarde (G) om de joystickmodus in te stellen
- A0: knop 1
- A1: omhoog
- A2: links
- A3: omlaag
- A4: rechts
- A5-A7, B0, B1: knoppen 2-6
Tip:
Als u man-naar-vrouw jumpers gebruikt, kunt u de joystick-modus A10-aardverbinding maken door de mannelijke uiteinden van twee jumpers in elkaar te klemmen, waardoor een vrouw-naar-vrouw jumper wordt gevormd.
Aanbevolen:
Alternatief communicatievest (CoCoA): 8 stappen (met afbeeldingen)
Alternatief communicatievest (CoCoA): Het CoCoA-project is een draagbaar vest dat is verbonden met internet en dat tastbare symbolen van alternatieve communicatie biedt om mensen met spraak of non-verbale handicaps te helpen. Het acroniem CoCoa komt van de afkorting van de Portugese naam:
Alternatief voor STM32F103C8T6 door GigaDevice: 5 stappen
Alternatief voor STM32F103C8T6 door GigaDevice: Introductie van GD32F103C8T6 door GigaDevice als een goedkoop en sneller alternatief voor STM32F103C8T6
BESTURINGSSIGNAALGENERATOR ALTERNATIEF VOOR ELEKTRONISCHE SNELHEIDSREGELING (ESC): 7 stappen
BESTURINGSSIGNAALGENERATOR ALTERNATIEF VOOR ELEKTRONISCHE SNELHEIDSREGELING (ESC): Enige tijd geleden publiceerde ik een video (https://www.youtube.com/watch?v=-4sblF1GY1E) op mijn YouTube-kanaal waarin ik liet zien hoe je een windturbine maakt van een borstelloze gelijkstroommotor. Ik deed de video in het Spaans en er werd uitgelegd dat deze motor was gegeven aan
Een scherm voor uw Google Home krijgen met Raspberry Pi en Dialogflow (Chromecast-alternatief): 13 stappen
Krijg een scherm voor uw Google Home met Raspberry Pi en Dialogflow (Chromecast-alternatief): sinds ik mijn Google-huis kocht, wilde ik mijn apparaten thuis bedienen met spraakopdrachten. Het werkt in alle opzichten geweldig, maar ik voelde me slecht voor de videofunctie. We kunnen YouTube en Netflix alleen kijken als we een Chromecast-apparaat of T
Raspberry Pi als Chromecast-alternatief (Raspicast): 10 stappen (met afbeeldingen)
Raspberry Pi als Chromecast-alternatief (Raspicast): In deze Instructables laat ik je zien hoe je raspberry pi 3 als Chromecast-alternatief kunt gebruiken. Het is ook vermeldenswaard dat dit geen directe kloon naar Chromecast is en dat er beperkingen zijn. Deze methode ondersteunt de cast-knop niet, maar