Bluetooth

Hier können Sie ihre eigenen Projekte vorstellen
Antworten
Heinrichs
Beiträge: 98
Registriert: Do 21. Okt 2010, 16:31

Bluetooth

Beitrag von Heinrichs » Fr 13. Apr 2012, 12:25

Mit dem Attiny kann man auf verschiedene Weisen drahtlos kommunizieren. An anderer Stelle habe ich schon ausführlich darüber berichtet, wie man dies mit Funkmodulen bewerkstelligen kann. An dieser Stelle möchte ich vorstellen, wie unser Attiny über Bluetooth mit einem PC kommunzieren kann. Hier kommt ein Bluetooth-Adapter zum Einsatz, wie er für 8 bis 10 Euro (inkl. Portokosten) über EBAY in China erworben werden kann. Der Vorteil dieses Bausteins: Er wird einfach über RxD und TxD an den Attiny angeschlossen; die Übertragungskonfiguration ist standardmäßig 8 Bits, No Parity, 1 Stop-Bit, 9600 Baud. In BASCOM muss demnach die Schnittstelle nur über $baud = 9600 initialisiert werden - und schon kann es losgehen... Voraussetzung ist natürlich, dass am PC eine Bluetooth-Schnittstelle vorhanden ist und eingerichtet wurde. (Falls der PC keine Bluetooth-Schnittstelle hat: Für wenige Euro kann man Bluetooth-USB-Sticks kaufen).
bluetooth1.jpg
bluetooth1.jpg (60.69 KiB) 10856 mal betrachtet
Bei meiner Platine erfolgte die Verbindung folgendermaßen:

Wenn man die Bluetooth-Platine an den Attiny-Platine angeschlossen hat, fängt eine LED auf der Bluetooth-Platine an zu blinken. Am PC kann die Bluetooth-Platine unter dem Namen "linvor" gefunden werden. Die Anmeldung erfogt dann mit dem Passwort "1234". Bei erfolgreicher Verbindung leuchtet die LED nun durchgängig.

PC und Attiny können nun wie bei einer kabelgebundenen COM-Verbindung miteinander kommunizieren. Achten Sie jedoch dabei darauf, dass auf Seiten des PCs die COM-Nummer des Bluetooth-Adapters benutzt wird.

Code: Alles auswählen

' Datei für Attiny-Platine von E. Eube, G. Heinrichs und U. Ihlefeldt
' terminal->bluetooth->Attiny->LCD

'----------------------------------------------------------------------------

$regfile = "attiny2313.dat"                                 'Attiny2313
$crystal = 4000000                                          '4 MHz
$baud = 9600

'**********************************************************
'******************* Deklarationen ************************

Dim Zk As String * 16

'****************** Initialisierung ***********************

Ddrb = &B11111111                                           'Port B als Ausgangsport
Ddrd = &B01110000                                           'D4, D5, D6 als Ausgang; Rest als Eingang
Portd = &B10001111                                          'Eingänge auf high legen


Config Lcd = 16 * 2                                         'LCD konfigurieren
Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , E = Portb.4 , Rs = Portb.6
Cursor Off


'**********************************************************
'******************** Hauptprogramm ***********************

Do
  Input Zk
  Cls
  Lcd Zk
Loop

Mihilfe sogenannter AT-Codes können einzelne Parameter des Bluetooth-Moduls wie z. B. die Baudrate geändert werden. Verwirrenderweise findet man widersprüchliche Angaben dazu. Der Grund dafür ist: Für die Firmware linvor 1.5 gibt es zwei Versionen: HC-05 und HC-06. Bei der hier vorliegenden Version stehen nur wenige AT-Kommandos zur Verfügung. Diese AT-Kommandos können nur dann eingegeben werden, wenn das Bluetooth-Modul noch keine Verbindung hat, d. h. die Kontroll-LED noch blinkt. Das vollständige Kommando muss innerhalb einer einzigen Sekunde an das Modul übertragen werden. Terminalprogramme, welche direkt bei der Eingabe einer Zeichenkette Zeichen für Zeichen absenden, sind somit kaum zu gebrauchen. Benutzen Sie besser ein Terminalprogramm, welches eine Zeichenkette komplett auf Knopfdruck versenden kann. Die Zeichenkette ist nicht mit CR/LF abzuschließen.

Das Bluetooth-Modul quittiert den Empfang eines Kommandos; die Antworten sind selbst innerhalb der Version HC-06 nicht einheitlich. Deswegen führe ich sie hier nicht auf. Hier aber alle(!) AT-Kommandos im Einzelnen:

AT -> Überprüfung der Verbindung
AT+VERSION -> Rückgabe der Versionsnummer
AT+PINxxxx -> Ändern des Bluetooth-Verbindungscodes
AT+NAMEzeichenkette -> Ändern des Bluetooth-Gerätenamens
AT+BAUDx -> Ändern der Baudrate (x=1: 1200 Baud; x=2: 2400 Baud; x=3: 4800 Baud; x=4: 9600 Baud; x=5: 19200 Baud; ... )

Beachten Sie:

1. Die Änderung der Baudrate wird sofort wirksam; das Terminal muss dementsprechend neu konfiguriert werden.
2. Die Änderung des Gerätenamens wird nur wirksam, wenn man nach der Änderung ein paar Minuten verstreichen lässt und dann das Modul aus- und wieder einschaltet.
Dateianhänge
bluetooth_attiny.zip
Video
(2.49 MiB) 1100-mal heruntergeladen

Heinrichs
Beiträge: 98
Registriert: Do 21. Okt 2010, 16:31

Re: Bluetooth

Beitrag von Heinrichs » Fr 5. Okt 2012, 17:36

Probleme mit Win 7 (64 Bit)

Neulich habe ich mir für mein Notebook (Win7, 64 Bit) einen Bluetooth-USB-Dongle gekauft. Angeblich war er Win7-tauglich. Bei der Installation zeigten sich erhebliche Probleme. Die automatische Treibersuche griff auf die Microsoft-Treiber zurück, aber mit denen funktionierte der Dongle nicht; der Hersteller bot zwar Treiber an, aber für die war eine zusätzliche kostenpflichtige Software erorderlich.

In China habe ich nun für 2,45 Euro einen Dongle erworben, der auch unter Win 7 (64 Bit) arbeitet: Er wird unter der Bezeichnung "USB 20 Bluetooth V2.0 EDR Dongle" angeboten. Er arbeitet mit den Microsoft-Treibern korrekt und kann zur Kommunikation mit dem Bluetooth-COM-Adapter eingesetzt werden.
Zuletzt geändert von Heinrichs am Fr 5. Okt 2012, 17:54, insgesamt 2-mal geändert.

Heinrichs
Beiträge: 98
Registriert: Do 21. Okt 2010, 16:31

Re: Bluetooth

Beitrag von Heinrichs » Fr 5. Okt 2012, 17:51

Probleme mit der Versorgungsspannung

Manche Geräte haben schon ein merkwürdiges Verhalten: So auch der Bluetooth-COM-Adapter. Letztens kam es zwar zu einem Pairing, der Adapter konnte sich also bei meinem Notebook bemerkbar machen. Das Notebook meldete dann sogar auch eine Verbindung, aber die LED am Bluetooth-COM-Adapter hörte nicht auf zu blinken und Daten konnten dann natürlich auch nicht an den Mikrocontroller übertragen werden. Des Rätsels Lösung: Der 9V-Akku, mit welchem die Mikrocontrollerplatine und der Bluetooth-COM-Adapter betrieben wurden, war nicht mehr ganz voll; seine Leerlaufspannung war jedenfalls schon deutlich unter 9 V. Mit einem frisch geladenen Akku funktionierte alles tadellos. Offensichtlich funktionieren einige Übertragungs-Aktivitäten des Bluetooth-COM-Adapters bei Unterversorgung noch, andere wiederum nicht.

Antworten