3rd party NXT sensor uitlezen met Arduino

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • almightyarjen
  • Registratie: Maart 2002
  • Laatst online: 23:01

almightyarjen

When does the hurting stop?

Topicstarter
Ik heb laatst een druksensor gekocht. Deze sensor is bedoeld om aan te sluiten op een NXT poort van Lego Mindstorms. Ik heb inmiddels de sensor aan de praat via een zogenaamde NXShield, een arduino shield met NXT poorten erop (zodat je mindstorms componenten kan aansluiten op een arduino).

Mindstorms werkt met I2C en ik wil graag die sensor zonder dat extra shield met een arduino aan de praat krijgen. Echter lukt me dat voor geen meter. Dit komt o.a. omdat ik geen idee heb wat er binnen in zit. De fabrikant wil dat (uiteraard) niet laten weten, al was hij wel behulpzaam met een tip over hoe ik dat ding werkend zou kunnen krijgen, wat geen soelaas bood:
Try calling the BaseI2CDevice class directly in your program -
http://www.openelectrons....ass_base_i2_c_device.html
Dat is me gelukt, echter lijk ik geen verbinding te krijgen met de sensor. Als ik een byte wil uitlezen krijg ik geen response en lijkt het programma te hangen.

Ik heb geen scoop tot mijn beschikking om te kijken wat er precies op de I2C gebeurt.

Om te beginnen probeer ik erachter te komen wat voor chip erin zit, wellicht dat ik aan de hand van de datasheet wat meer te weten kom over de communicatie. Heeft iemand:

- een idee wat voor chip er in zou kunnen zitten? (bereik 0 - 58 PSI)
- hoe ik dat ding aan de praat ga krijgen?

Patreon | Main Youtube | Work In Progress Youtube


Acties:
  • 0 Henk 'm!

  • Fusioxan
  • Registratie: November 2009
  • Laatst online: 08-10 07:35
Je hebt neem ik aan geen oorspronkelijke master (dus die de sensor uitleest) waar je met een logic analyzer misschien wijs uit komt?

Anders misschien een stukje code schrijven die zoveel mogelijk adressen probeert tot hij antwoord krijgt?

[ Voor 29% gewijzigd door Fusioxan op 09-07-2014 18:14 . Reden: typo's ]


Acties:
  • 0 Henk 'm!

  • almightyarjen
  • Registratie: Maart 2002
  • Laatst online: 23:01

almightyarjen

When does the hurting stop?

Topicstarter
De Arduino is de master in het geheel. Het adres van de chip is 0x18, dat staat in de documentatie van de sensor. Daarnaast weet ik ook welke adressen ik moet uitlezen voor het uitlezen van een waarde.

Patreon | Main Youtube | Work In Progress Youtube


Acties:
  • 0 Henk 'm!

  • almightyarjen
  • Registratie: Maart 2002
  • Laatst online: 23:01

almightyarjen

When does the hurting stop?

Topicstarter
Problem solved. Het blijkt dat je geen pull-up weerstanden moet gebruiken (zitten al in sensor) en dat je zowel de AN IN en de VBUS (pinnen 1 en 4) direct aan +5V moet hangen :)

Patreon | Main Youtube | Work In Progress Youtube


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Welk formaat pull-up weerstanden had je dan gebruikt? Normaal hebben die een behoorlijke range waarover ze werken.

Acties:
  • 0 Henk 'm!

  • almightyarjen
  • Registratie: Maart 2002
  • Laatst online: 23:01

almightyarjen

When does the hurting stop?

Topicstarter
47k. Kan best zijn dat het ook met pull-up weerstanden had gewerkt. Het werkte in ieder geval zonder EN die twee aansluitingen op +5V.

Patreon | Main Youtube | Work In Progress Youtube


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Dat neem ik aan van wel ja. Want dat is ruwweg een factor 10 groter dan wat je normaal gesproken gebruikt voor I2C pull-up weerstanden, die zullen dus weinig invloed hebben op de correcte weerstanden die er al op zitten.

Acties:
  • 0 Henk 'm!

  • almightyarjen
  • Registratie: Maart 2002
  • Laatst online: 23:01

almightyarjen

When does the hurting stop?

Topicstarter
Klopt... In de Lego Hardware guide stond dat ze rond de 47k aanbevolen. Ook ik vond het al aan de hoge kant, maar ik heb me er maar aan gehouden :) Grote kans dat de fabrikant van de sensor 10k oid gebruikt heeft, dan vallen die 47k's idd in het niets...

Patreon | Main Youtube | Work In Progress Youtube

Pagina: 1