Bluetooth experiment

... draadloze communicatie ...

 

14 november 2005

Doel is om de robotwagen (en/of andere projecten) uit te rusten met een Bluetooth zender/ontvanger om draadloos data uit te wisselen met een computer. Hiervoor wordt de Atmel AVR AT90S8535 verbonden met een module BR-SC11A van BlueRadios. Meetgegevens verzameld door de robot, zoals lichtintensiteit en temperatuur, worden door de microcontroller doorgegeven aan de Bluetooth module. Deze zendt de data draadloos door, via een USB Bluetooth dongle MDU-0005USB van LevelOne (lijkt uiterlijk op dit ding, met de specificaties van dit ding), naar de computer. De gegevens worden door een in Delphi geschreven programma via de com-poort opgevangen en verwerkt.

De BR-SC11A is vandaag besteld (US$ 64.95). Hopelijk is ie snel binnen!

 
Links het pricipeschema. Sensoren (IR- InfraRood afstandsmeters en LDR - Light dependent resistors) zijn aangesloten op een Atmel AVR microcontroller. De hiermee verzamelde data wordt via een Bluetoothmodule verzonden naar een dongle die in een pc steekt.
 


De Bluetooth module BR-SC11A van BlueRadios.
De module is doormiddel van AT-commando's te benaderen.

.

 

Aangezien de Bluetoothmodule een voedingsspanning nodig heeft van 3,3 Volt even snel een regelbare voeding (ook bij Radio Twente in Den Haag) gekocht.

 
Inmiddels is aan op nieuwe microcontrollerbord een connector voor zowel PortA als PortC gemonteerd. Hiermee is de print feitelijk klaar en kan aangesloten worden op de Bluetoothmodule. Later kunnen de sensoren toegevoegd worden.
 
Vandaag is de BR-SC11A met de post binnen gekomen! Een keurig verpakt printje. Natuurlijk direct aangesloten aan de regelbare voeding, afgeregeld op 3,3V.
 
Voor de Bluetooth module is ook een printje gemaakt: deze biedt plaats aan een connector voor de aansluitingen voor de voedingsspanning (3,3 Volt) en de signaallijnen naar en van de microcontroller (de RS232 poort op het processorbord) . De module is gevoelig voor overspanning: er moet dus een spanningsdeler (twee weerstanden: 1K en 680 Ohm) naar de RS232 lijnen van de microcontroller. Hier volstaan twee spanningsdelers; slechts twee signaallijnen worden gebruikt: TxD en RxD.
 
De gehele testschakeling in beeld. Eerst is de schakeling getest met een RS232 kabel. Een BASCOM programma in de AVR telt van 1 to 10000 en stuurt dat getal via de RS232 kabel naar de COM poort van een computer. Een simpel terminalprogramma (zoals HyperTerminal van Microsoft) toont de getallen netjes op het scherm. Alles werkt naar behoren. Vervolgens is, in plaats van de kabel naar de COM poort, de Bluetooth module verbonden met de hoofdprint en aangesloten op de 3,3 Volt voeding. Hetzelfde BASCOM programma stuurt weer de getallen, maar nu via de Bluetooth module naar de USB Bluetooth dongle, die als een virtuele COM poort werkt. Het terminalprogramma kijkt nu niet meer naart COM1, maar naar (in dit geval) COM poort 42. Dezelfde getallen lopen binnen!!!
 

Detailfoto van de gebruikte LDR aangesloten op een van de ADC-ingangen van de AVR. Hiernaast het schema.

 

Een testprogramma in Delphi toont links de lichtintensiteit gemeten door de LDR. De LDR ligt op het tafelblad, onder een lamp (a). Met de hand afdekken van de LDR doet de lichtwaarde afnemen (b). Wanneer de LDR langzaam richting de lamp bewogen wordt, neemt de lichtintensiteit toe (c).

Het binnenhalen van de waardes op de COM poort en in Delphi omzetten naar een getal om in de grafiek te zetten viel nog niet mee! Tijdens de HCC-dagen (25 november 2005) heeft Anton Vogelaar van de HCC Pascal GebruikersGroep mij uitgelegd hoe ik dit mogelijk zou kunnen aanpakken en zodoende mij enorm geholpen. Nogmaals mijn dank Anton.
De eerste waarde die op de USB dongle binnenkomt zijn er blijkbaar twee met daartussen een Carriage Return! De functie TRY-EXCEPT loste dit probleem op. Zie hiervoor t.z.t. de broncode.

 

29 november 2005

Gisteren was een trieste dag. Ik heb de Bluetoothmodule opgeblazen! Kortsluiting. Vandaag een nieuwe besteld, samen met nog maar wat Atmel-onderdelen. Omdat ook de LM317 (voltage regulator) overleden is, een nieuwe besteld. Vorige bestelling duurde precies een week. Een week is, vind ik, behoorlijk snel, maar .... ik hoop dat het nog sneller kan deze keer ;-).

Het programmeerwerk kan wel doorgaan. Bovenstaand testprogramma toont een grafiek van één uitgelezen LDR. Het programma moet uitgebreid worden zodat bijvoorbeeld twee LDR's en drie IR-afstandsmeters (dus de sensoren waarmee de robotwagen is uitgerust) worden uitgelezen en de meetwaarden in een 5-tal grafieken worden uitgezet .

4 december 2005

De module is nog niet gearriveerd! Ik moet dus nog even geduld hebben. Morgen is het Sinterklaasavond. Zou het met de Sint meegekomen zijn....? Ik heb wel inmiddels op aanraden van Anton Vogelaar het boek: "Programmeren met Delphi" van Mitchell C. Kerman besteld (ISBN 90-430-0887-7). Erg toegankelijk boek met een logische opbouw. Zeer leerzaam!

 

12 december 2005

Vandaag is de nieuwe, bij Spark Fun bestelde, Bluetoothmodule aangekomen. In totaal waren de componenten dus zo'n 12 dagen onderweg. Langer dan de vorige keer, maar .... toch nog altijd behoorlijk snel. Gauw de zaak opnieuw opbouwen!

Het Delphi programma is inmiddels uitgebreid tot 5 kanalen: 3 IR en 2 LDR kanalen. Het plotten op de verschillende hoogtes blijkt nog een hele opgave. Toch wel min of meer gelukt.
Alleen .... de grafiekjes komen nog op de verkeerde plaats terecht.

Het hangt er maar net vanaf wanneer de metingen gestart worden. De waarde die als eerste binnenkomt, komt in het eerste vak terecht. Hiernaast een voorbeeldscherm. De grafieken in het 3e en 4e vak (IR3 en LDR1) zijn echter in werkelijkheid LDR1 en LDR2 en horen dus in het 4e en de 5e vak thuis. De robotwagen moet eigenlijk eerst een dummy verzenden (bijv. 000). De computer (het programma) wacht op die 000 dummy. Wanneer die binnenkomt begint een reeks van (in dit geval) 5 waardes (3x IR en 2x LDR) die op de lijn gezet moeten worden. Het Delphi-programma wacht op de dummy en moet vervolgens de waarde die daarna volgt in het eerste vak plotten. De daarop volgende waardes worden in de opvolgende vakken geplot tot de dummy weer voorbij komt: het sein dat er nieuwe waardes aankomen. Het probleem lijkt simpel (is het natuurlijk ook), maar .... kost toch (erg veel) tijd om opgelost te worden. ;-))

 
Nieuwe BR-SC11A is inmiddels in gebruik genomen. Werkt prima. Maar wel uitkijken met de voedingsspanning dus! Ook het voedings-printje werkt weer met de nieuwe LM317.

 
15 januari 2006

Het is een tijdje stil geweest, maar nu weer een korte up-date. Sinds een paar dagen heb ik een Hp iPAQ 4150 Pocket PC. Mooi apparaatje, uitgerust met WiFi en Bluetooth(!). Gisteren een terminal emulator op de Pocket PC geinstalleerd en contact gezocht met mijn Bluetoothmodule. Ja hoor, de getallen lopen nu binnen op de iPAQ (zie hiernaast). Nu nog een programma schrijven voor de Pocket PC? Met Delphi gaat dat geloof ik niet lukken. Op zoek dus naar alternatieven. Oef.

De Hp 4150.
 
 
 
Copyright 2005, Steve Vellinga