Sleeptimer mit Reset durch Bewegung


#1

Hallo zusammen,

beim Stichwort Sleeptimer kommen hier noch nicht allzu viele Treffer. Der schönste ist natürlich von Thorsten. Sehr schön, dass ein Sleeptimer bald offiziell unterstützt wird. Meine Gedanken kreisen da aber schon etwas weiter.

Und zwar würde ich gern noch einen Beschleunigungssensor installieren und als Reset für den Sleeptimer nutzen. Nach Ablauf des Timers sollte die Lautstärke langsam runtergehen. Ist man noch wach, kann man der Box einen kleinen Stupser geben oder kurz wackeln. Der Sensor schlägt aus und das Signal triggert einen Reset des Timers.

Klingt simpel, ist aber bestimmt super kompliziert… Bevor ich mich also umsonst mühe: Hat hier jemand schon mal einen Beschleunigungssensor an diesem Arduino betrieben? Wäre das also nur ein Software Problem?

Beste Grüße
Christoph


#2

Hi, die einfachsten Beschleunigungssensoren haben für jede Axe einen Analogausgang und den kann man relativ einfach mit dem Arduino einlesen. Ist also wie du vermutest nur ein Software “Problem” :wink:


#3

Für ein anderes Projekt habe ich einen MPU9250 verwendet. Der hat ein „Wake on motion“. Geht in einen Tiefschlaf und aktiviert einen Interupt bei einer Erschütterung/Beschleunigung. Das müsste genau passen für Deine Anforderung.

Arduino Library

Habe ich definitiv auch auf der Liste, wenn alles andere funktioniert.


#4

Ich hab schon mal einen LIS331 benutzt, lässt sich sehr einfach bei SPI ansprechen und konfigurieren.
Der Chip bietet zwei Interrupt Leitungen, die beim überschreiten einer festgelegten Schwelle triggern (man braucht also nur dauern abfrage, ob es einen Event gab).


#5

Das klingt doch vielversprechend. Werde dann auf jeden Fall einen Sensor verbauen. Um die Software kann ich mich dann ja später kümmern…

Dank euch!


#6

Haben wir denn noch genug I/Os am Nano frei? Wie viele Ports brauchen wir dafür? Der Preis ist auf jeden Fall heiß :slight_smile:


#7

2 zusätzliche Pins sollten genügen ( einer geht auch aber dann muss man regelmäßig pollen, ob es eine Bewegung hab)


#8

Das hier wird mein erstes Arduino Projekt. Lässt sich abschätzen, wie sich das regelmäßige pollen auf die Akkulaufzeit auswirken würde? Man müsste die Frequenz ja schon recht niedrig setzen, um den Impuls nicht zu verpassen.


#9

Für sowas gibt es eigentlich Interrupt um sich dieses dauernde Abfragen zu schenken. In diesem Fall wäre es dann ein PIN Change Interrupt auf eine steigende Flanke.


#10

Solange der Aduino nicht schläft ändert sich der Stromverbrauch durch das pollen nicht merklich.

Und da die Interrupts intern durch Bits im Status Register abgebildet werden, muss man auch nur alle 250-500 ms pollen.

Ein zusätzlicher IRQ Pins ist halt die bequemere Methode, braucht aber einen Pin mehr am Controller.


#11

Wenn ich mir die aktuelle Belegung von Thorsten anschaue, sind doch noch satt und genug Pins verfügbar. Oder gibt es hier irgendeine andere Limitierung zu beachten?

Der Beschleunigungssensor hat bspw. noch so nette Gimmicks wie Tap, Double Tap und Free Fall Detection eingebaut. Zumindest für letzteres hätte ich schon eine Idee: Eine Ansage mit freundlicher Ermahnung, doch etwas vorsichtiger mit der Box umzugehen…


#12

Hahahaha!

Wenn das Pollen kein Problem ist kann man es mit den aktuellen Pins durchaus umsetzen. Interrupt Pins sind soweit ich mich erinnere gerade eher knapp.

Hat einer “den Hundeprofi unterwegs” gesehen? Die hatten da etwas für Patienten mit Demenz gezeigt was quasi ein TonUINO mit Bewegungssteuerung und nettem, stabilem Gehäuse war.


#13

Welchen Sensor meinst Du? Welche Library?


#14

There are only two external interrupt pins on the ATmega168/328 (ie, in the Arduino Uno/Nano/Duemilanove), INT0 and INT1, and they are mapped to Arduino pins 2 and 3


#15

Hi,

nicht ganz so flexibel wie Beschleunigungssensoren, aber kompatibel mit Thorstens Platine sind Neigungsschalter. Ich habe statt zweier Knöpfe diese hier verbaut: SW-520D. Man muss beim Einbau mit dem Winkel etwas experimentieren damit es klappt. “Next Track” triggert bei Release nach 500MS, ab 1000ms kippen geht die Lautstärke hoch.

Viele Grüße
Daniel