Forum: Projekte & Code Zirpende Feldgrille v3 (Atmel Tiny13)


von Alex S. (byteman)


Angehängte Dateien:

Lesenswert?

Hallo

2008 hatte ich eine 4fach Grille gebaut die mir aber jetzt nicht mehr so 
sonderlich gut gefällt:
Beitrag "4fach Grille mit Klatschschalter(Tiny13)"

desshalb jetzt eine neue Version.
Feldgrille v3.

Damit es sich möglichst realistisch anhört habe ich mir eine Aufnahme 
vom Zirpen einer Feldgrille besorgt und es genauer angeschaut.
Die Grundfrequenz des Zirpens ist ca. 2350Hz (=D7 auf dem Klavier) und 
es gibt jeweils 8 Wiederholungen eines einzelnen Zirps.

Mit dem Microcontroller ist es am einfachsten einen Rechteckton zu 
erzeugen das passt auch sehr gut denn die Obertöne die dabei entstehen 
sind genau richtig fürs Zirpen.
Das ganze wird als Pulsweitenmodulation ausgelegt damit ein 
Lautstärkenanstieg beim Anschwingen möglich ist, dann klingt es nicht so 
hart (Das hat bei der 4fach Grille gefehlt).

Und damit es sich lebendiger anhört werden folgende Werte laufend per 
16bit Pseudozufall verändert:
-Zirpwiederholungen von 7 bis 9 einzelnen Zirps
-einzelnens Zirp mit 2 stufiger Länge
-Zirplautstärkeveränderung beim Anschwingen in 5 bis 7 stufen
-Pausendauer nach den 7 bis 9 Zirps von 116ms bis 167ms
-Zirpwiederholung von 3 bis 127 mal '7 bis 9 Zirps'
-Lange Pause von 3s bis 27s

Etwas herumprobieren und das Zirpen ist fertig.

Die Piezo-Schallwandler (27mm Durchmesser) sind eigentlich in der 
Wohnung schon laut genug aber wenn es noch lauter werden soll dann 
einfach die Alluhülle von Teelichtern mit etwas Doppelklebeband da drauf 
kleben dann freuen sich auch die Nachbarn.

Auf eine Verpolungsschutzdiode habe ich verzichtet weil der Tiny13 das 
bei 3V kurzzeitig überlebt.

Drei elektronisch zirpende Grillen erzeugen die richtige 
Sommerstimmung...

Falls es jemand nachbauen möchte, in der Zip-Datei im Anhang (oben) ist 
alles drin was man dazu braucht (Schaltplan, info, Klangbeispiele(mp3), 
Assembler und hex Datei, Fotos)

viel Spass
Alex

von Informant (Gast)


Lesenswert?

ASM

von Alex S. (byteman)


Lesenswert?

Ja, ist asm von AVR Studio 4.12

von Stephan (Gast)


Lesenswert?

cool - danke für das schöne Projekt.
Werde das mal bei einem Kollegen im Büro deponieren :-)

von Eddy C. (chrisi)


Lesenswert?

Es gab mal eine Ausgabe der Zeitschrift ELO (7/81), die hatten so eine 
elektronische Grille mit einem Fotowiderstand kombiniert, also:

Licht aus -  Grille (mit einiger Verzögerung) an
Licht an  -  Grille sofort wieder aus

Ideal für die Wohnung, um Nachts liebe Mitmenschen in den Wahnsinn zu 
treiben :-)

von frage zu attiny13 (Gast)


Lesenswert?

Kann man da eigentlich jeden Attiny13-Typ nehmen?
Bei Reichelt gibt es ATTINY 13V, ATTINY 13A und ATTINY 13-20

von Stephan S. (uxdx)


Angehängte Dateien:

Lesenswert?

Für alle PIC-Freunde habe ich eine Grille mit dem PIC16F1825 gemacht. 
Ausreichend wäre natürlich der PIC12F1822 mit nur 8 Pins, den hatte ich 
aber gerade nicht da. Man kann den Code aber leicht anpassen, oben die 
Zeilen list p=16f1825 und #include <p16f1825.inc> sowie von Port C auf 
Port A. Es geht auch mit einem PIC12F683, dann muss man aber mehr ändern 
(CONFIG und Banks).

Die Frequenz kann man mit dem Register OSCTUNE etwas ändern oder die 
Bursts von 8 auf 7 oder 9 stellen und die lange Pause von 16 auf andere 
Werte. Hat man mehrere Grillen gleichzeit laufen, ergibt das lustige 
Effekte. Anbei mal ein MP3 mit 2 Grillen in Stereo.

Der interne Oszillator läuft aus Stromspargründen mit 125 kHz, die 
Grille braucht damit im Mittel knapp 200 µA und läuft mit einer CR2032 
etwa 6-8 Wochen.

Viel Spass beim Nachbauen!

von tt2t (Gast)


Lesenswert?

Da ist ein fehler im Programm, es muss PORTA statt PORTC heissen oder 
man schliesst die Piezo-Scheibe an PORTC0 und PORTC5 an (dann geht das 
Programm aber nicht mit PIC16F1822 bzw PIC16F683).
1
; PIEZO an PORTA0 (Pin 13) und PORTA5 (Pin 2)
2
; p0 = eine Schwingung 
3
4
p0
5
  movlw  B'00100000'      ; Ausgänge setzen: 5
6
  movwf  PORTA
7
  movlw  B'00110000'      ; Ausgänge setzen: 5 4
8
  movwf  PORTA
9
  nop
10
  movlw  B'00000001'      ; Ausgänge setzen: 0
11
  movwf  PORTA
12
  movlw  B'00000011'      ; Ausgänge setzen: 0 1
13
  movwf  PORTA

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.