Inhoudsopgave:
- Stap 1: Bestaande opties
- Stap 2: DDC is I2C
- Stap 3: De kabel ontleden
- Stap 4: De voltooide adapter
- Stap 5: Software en projecten
Video: S Werelds goedkoopste I2C-adapter (I-Squared-C) - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:19
Maak een sensorinterface voor uw computer voor minder dan een dollar! Update 6/9/08: Na verschillende wegen te hebben verkend, ben ik tot de conclusie gekomen dat er geen praktische manier is om deze techniek in Microsoft Windows te implementeren. Dit is geen bekrompen OS bashen, ik heb echt een idioot geprobeerd! Sorry! Windows-gebruikers die I2C-mogelijkheden nodig hebben, worden het best bediend door bestaande op USB gebaseerde oplossingen. Update 24-5-08: Linux-ondersteuning is toegevoegd, evenals voorbeeldcode voor de Nintendo Wii Nunchuk-controller en de BlinkM "smart LED". Zie het README.txt-bestand bij de broncode voor aanwijzingen over het compileren en instellen op Linux. I2C (afkorting van Inter-Integrated Circuit) is een tweedraads seriële bus die doorgaans wordt gebruikt in computers voor communicatie op laag niveau tussen interne componenten. I2C is ook populair in robotica. Allerlei sensoren en actuatoren zijn beschikbaar in een I2C-compatibele vorm: ultrasone afstandsmeters, sensoren voor versnelling, kanteling, temperatuur en druk, servocontrollers en busexpanders die extra algemene (GPIO) lijnen bieden. De meeste moderne microcontrollers (Atmel, Microchip PIC, enz.) hebben ingebouwde ondersteuning voor I2C. Maar de verwerkingskracht die beschikbaar is op microcontrollers is beperkt, en softwareontwikkeling - met gespecialiseerde cross-compilers en programmeeromgevingen - kan soms een hele klus zijn. Nu laptops en single-board computers steeds kleiner en betaalbaarder worden, komt het steeds vaker voor dat deze systemen direct worden gebruikt in robotica- en elektronicaprojecten. Dit biedt voldoende kracht voor nieuwe mogelijkheden, zoals visieverwerking en meer geavanceerde AI, en het vergroot de reikwijdte van beschikbare ontwikkelingstools en talen aanzienlijk… poorten van consumentenkwaliteit, zoals USB; er is geen extern beschikbare "I2C-poort" waar we gewoon gebruik van kunnen maken om onze sensoren te gebruiken … of toch?
Stap 1: Bestaande opties
Een manier om I2C-apparaten op een gewone desktop- of laptopcomputer aan te sluiten, is via een USB-naar-I2C-adapter. Er zijn minstens een dozijn van dergelijke opties, variërend van doe-het-zelf-kits met open source software tot geavanceerde commerciële units met elk belletje en fluitje.
Een nadeel van de USB-naar-I2C-benadering zijn de kosten. Een volledig uitgerust commercieel model kan $ 250 of meer kosten. Zelfs de "gratis" homebrew-alternatieven gaan uit van een verzameling onderdelen en een voorafgaande investering in een microcontroller-programmeur en de bijbehorende kennis om er gebruik van te maken. Een ander nadeel is de relatieve schaarste aan driverondersteuning buiten de populaire Windows-folder. Weinig van deze apparaten werken native op Macintosh- of Linux-computers.
Stap 2: DDC is I2C
Toen ik in de inleiding zei dat er op de meeste computers geen externe I2C-poort is, loog ik. Het blijkt dat het er is, en het is er al bijna een decennium, meestal sluimerend.
De meeste moderne grafische kaarten en monitoren hebben ondersteuning voor iets dat Display Data Channel (DDC) wordt genoemd, een communicatieverbinding in een videokabel waarmee de computer en het beeldscherm onderling compatibele resoluties kunnen onderhandelen en softwarebesturing mogelijk maken van monitorfuncties die normaal toegankelijk zijn met fysieke knoppen op de Scherm. DDC is in feite gewoon een implementatie van een I2C-bus met een paar vastgestelde regels. Door gebruik te maken van deze verbinding tussen de computer en de monitor (of door gebruik te maken van de DDC-lijnen op een vrije ongebruikte videopoort, zoals de externe monitorverbinding op een laptop), kan men vrijwel gratis verbinding maken met sommige I2C-apparaten, waarbij de gebruikelijke behoefte aan een adapterapparaat volledig. Het enige dat we nodig hebben om fysiek toegang te krijgen tot deze I2C-bus is een gehackte videokabel…
Stap 3: De kabel ontleden
Er zijn vier draden nodig voor onze I2C-interface: +5V voeding, aarde, seriële data en seriële klok. Pinouts voor de verschillende soorten videopoorten zijn te vinden op Wikipedia of Pinouts.ru. Denk eraan als u een VGA-kabel gebruikt om er een te vinden met het volledige aantal pinnen; sommige bevatten slechts een subset. Door de isolatie en afscherming van de buitenkant van de kabel terug te brengen, vindt u waarschijnlijk twee groepen draden binnenin. Dikkere draden, of bundels draden gewikkeld in extra afscherming, dragen meestal het videosignaal. Wij zijn hier niet in geïnteresseerd en kunnen worden ingekort. Dunnere, niet-afgeschermde draden dragen meestal onder andere de DDC (I2C)-signalen. Een multimeter of continuïteitstester kan helpen bij het vinden van de juiste vier draden voor uw kabel. Het gebruik van een blote connector kan hier voordelig zijn, omdat u slechts vier draden aan de betreffende pinnen hoeft te solderen. Een opmerking over het +5V-vermogen: de beschikbare stroom is zeer beperkt; ongeveer 50 mA volgens de DDC-specificatie. De meeste I2C-apparaten verbruiken slechts een klein beetje stroom, dus het zou mogelijk moeten zijn om er meerdere tegelijk te laten werken…
Stap 4: De voltooide adapter
Hier is de voltooide adapter. Dat is alles! Ik heb de mijne extra stom gemaakt zodat hij gemakkelijk in mijn laptoptas past, en voegde een vierpolige stekker toe die rechtstreeks kan worden aangesloten op een I2C-servocontroller die ik heb.
Stap 5: Software en projecten
Mac OS X- en Linux-broncode voor het werken met de adapter kan worden gedownload van mijn website (downloadlink staat onderaan de pagina). Het is geschreven in C en je moet gcc geïnstalleerd hebben (Linux bevat dit meestal standaard, terwijl Mac-gebruikers de ontwikkelaarstools moeten installeren die een optioneel installatieprogramma zijn op je originele OS-schijf, of gratis kunnen worden gedownload van Apple). Voorbeeldcode is inbegrepen voor het lezen van een temperatuursensor, het knipperen van een BlinkM "slimme LED", het schrijven en verifiëren van een seriële EEPROM, het lezen van een Nintento Wii Nunchuk-controller (alleen Linux) en communiceren met een servocontrollerbord. Helaas is dit adapterschema niet compatibel met alle systemen. Ondersteuning voor DDC is niet verplicht, dus niet alle videokaarten ondersteunen deze mogelijkheid. Ik heb tot nu toe veel geluk gehad met Mac-systemen die ATI- of Intel-grafische chips hebben, maar op NVIDIA gebaseerde systemen hebben pech. Aan de Linux-kant heb ik alleen met succes een IBM ThinkPad A31p (ATI-graphics) getest, maar het zou niet werken met een Asus EeePC (Intel). De afbeeldingen hier tonen een testopstelling die verschillende I2C-apparaten in actie laat zien. De computer leest voortdurend de omgevingstemperatuur van een I2C-temperatuursensor, logt deze gegevens periodiek in een I2C seriële EEPROM-chip (ja, hij kan gewoon naar een bestand afdrukken, maar dit was om I2C-toepassingen verder te demonstreren), en vervolgens een servo (via een I2C-controller) dient als een geïmproviseerde indicatorwijzer. Met de bibliotheek en voorbeeldcode voor deze apparaten al aanwezig, duurde het maar een paar minuten om deze demo samen te stellen (en het meeste zat in het maken van de indicatordraaiknop).
Aanbevolen:
Draai het om! - 's Werelds domste game?: 7 stappen (met afbeeldingen)
Draai het om! - 's Werelds domste game?: Origins: dit is een game die ik in een paar jaar 2018-2019 heb ontwikkeld. Oorspronkelijk heette het "Stupid Flip" en kwam voort uit mijn interesse in het maken van eenvoudige en leuke interactieve spellen die ook konden worden gebruikt voor het aanleren van coderen. Dit is ab
WAVE - 's werelds eenvoudigste DIY-soldeerbankschroef! (PCB helpende handen): 6 stappen (met afbeeldingen)
WAVE - 's werelds eenvoudigste DIY-soldeerbankschroef! (PCB Helping Hands): WAVE is waarschijnlijk het vreemdste Helping Hands-apparaat dat je ooit hebt gezien. Waarom heet het "WAVE"? Omdat het een Helping-Hands-apparaat is dat is gemaakt van onderdelen uit de magnetron! Maar het feit dat WAVE er raar uitziet, betekent niet dat het niet de
Goedkoopste mp3-muziekspeler thuis -- Doe-het-zelf: 7 stappen
Goedkoopste mp3-muziekspeler thuis || DIY: we hadden allemaal thuis een muziekspeler nodig. dus als we het proces van het maken van een muzieksysteem leren als onze eigen vereisten met de goedkoopste kosten, dan is het de perfecte instructie … op de juiste manier
LED-lamp ('s werelds beste) - Deel 2: 5 stappen
LED-lamp ('s werelds beste) - Deel 2: Gloeilamp met 230V AC-net, gemaakt met draadconnector & geen solderen! (Instructies voor 110VAC worden hieronder ook gesuggereerd.) Zie deze link voor de eerdere versie en voor stapsgewijze handleiding: https://www.instructables.com/id/Worlds-Best-Light-Bulb
Gloeilamp ('s werelds beste) met draadconnector en niet solderen !!!: 6 stappen
Gloeilamp ('s werelds beste) met draadconnector en niet solderen !!!: Maak een led-lamp - zonder te solderen