Bluetooth

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

Bluetooth

Beitrag von Heinrichs » Fr 13. Apr 2012, 14: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) 47106 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. Ich habe hierzu einen PC mit einem USB-UART-Wandler eingesetzt. Als Terminalprogramm habe ich HTerm benutzt; dieses kann eine Zeichenkette komplett auf Knopfdruck versenden. Bitte beachten: 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 oder AT+UARTx (je nach Firmware) -> Ä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) 4003-mal heruntergeladen
Zuletzt geändert von Heinrichs am Mo 9. Sep 2024, 17:37, insgesamt 8-mal geändert.

Heinrichs
Beiträge: 185
Registriert: Do 21. Okt 2010, 18:31

Re: Bluetooth

Beitrag von Heinrichs » Fr 5. Okt 2012, 19: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, 19:54, insgesamt 2-mal geändert.

Heinrichs
Beiträge: 185
Registriert: Do 21. Okt 2010, 18:31

Re: Bluetooth

Beitrag von Heinrichs » Fr 5. Okt 2012, 19: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.

Heinrichs
Beiträge: 185
Registriert: Do 21. Okt 2010, 18:31

Re: Bluetooth - Neuigkeiten

Beitrag von Heinrichs » Mi 19. Okt 2022, 17:32

Inzwischen sind die Preise für das HC-05-Modul gesunken: Auch in Deutschland kann man sie schon ab ca. 5 Euro (inkl. Porto) erhalten. Ich habe ein solches Modul erworben und musste feststellen, dass es sich von den anderen Modulen, die ich besitze, etwas unterscheidet:
  • Es besitzt neben den Anschlüssen RX, TX, GND und VCC noch die Anschlüsse STATE und EN(ABLE) sowie einen Taster. Auf die Bedeutung von den zusätzlichen Anschlüssen möchte ich hier nicht weiter eingehen. Die Aufgabe des Taster ist folgende: Möchte man mit AT-Codes arbeiten (s. Hauptartikel), dann muss das Modul bei gedrücktem Taster an die elektrische Quelle angeschlossen werden.
  • Auch im Standardbetrieb gibt es eine Änderung: Nach dem Verbindungsaufbau geht die LED des Moduls - nicht wie bislang gewohnt - vom raschen Blinken in ein Dauerleuchten über, vielmehr zeigt das Modul nun nach dem Verbindungsaufbau jede 4 bis 5 Sekunden ein kurzes Doppelblinken.

Antworten