gip€¦  · web viewmijn gip voor dit jaar is een sms-module die gecombineerd wordt met een...

16
[Datum] GIP Robbe Van den Daele Robbe Van den Daele [BEDRIJFSNAAM]

Upload: others

Post on 27-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

[Datum]

GIP

Robbe Van den Daele

Robbe Van den Daele[bedrijfsnaam]

Page 2: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als
Page 3: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

Inhoud1 Beschrijving........................................................................................................................3

1.1 Doelstelling.................................................................................................................3

1.2 Denkwijze................................................................................................................... 3

2 Blokschema........................................................................................................................4

3 Prijsraming.........................................................................................................................5

4 Hardware...........................................................................................................................6

4.1 Microcontroller...........................................................................................................6

4.2 SMS-Modem...............................................................................................................7

4.3 Bluetooth-Module......................................................................................................7

4.4 Batterij........................................................................................................................8

4.5 Het schema.................................................................................................................8

5 Software.............................................................................................................................9

5.1 C-programma voor MCU............................................................................................9

5.1.1 Eerste fase...........................................................................................................9

5.1.2 Vervolg eerste fase..............................................................................................9

5.1.3 Tweede fase......................................................................................................10

5.2 Windowsapplicatie C#-programma..........................................................................10

5.2.1 Eerste fase.........................................................................................................10

5.2.2 Tweede fase......................................................................................................11

Page 4: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

1 Beschrijving

1.1DoelstellingMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als een renner plat valt. Het is de bedoeling dat de renner dan op een knop aan het oor kan drukken die een sms-signaal verstuurd naar de volgwagens met daarin zijn rugnummer, ploeg, nummer van volgwagen en zijn naam. Op die manier hoeft de rennen zijn hand niet in de lucht te steken en zich niet laten uitzakken. Zo kan er een groot werk voor de koers commissaris bespaard worden. Wat ook zeer voordelig is, is dat de tv-commentators direct op de hoogte gebracht worden over de toestand in het peloton.

1.2DenkwijzeZoals in mijn doelstelling reeds vermeld werd, zou ik een microcontroller combineren met een sms-module. Het voeden van de microcontroler met een kleine batterij zou geen probleem mogen zijn maar een normale sms-module kan tot 2 ampère vragen tijdens het versturen van de sms. Dit is de reden waarom ik voor een sms-module zal moeten kiezen die niet veel verbruikt zodat de batterij niet groot hoeft te zijn.

Om de gegevens van de renner gemakkelijk te kunnen wijzigen en op te slaan zal ik een windows applicatie schrijven waar je de gegevens kan aanpassen, opslaan en doorsturen naar de module. Op deze manier kan men voor de wedstrijd een module gemakkelijk en simpel instellen per renner.

Als de renner op de knop duwt, kan de microconroler een signaal geven aan de sms-module om het bericht met alle gegevens te verzenden naar de gevraagde gsm-nummers.

De module zal in de achterzak van de renner worden geplaatst, en zal hierdoor een kleine omvang moeten hebben. Om de print zo klein mogelijk te houden zal ik het volledige project uitwerken in SMD.

Page 5: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

2 BlokschemaOm de doelstelling van mijn GIP te bereiken zal ik zoals eerder vermeld een windows applicatie maken waar de gebruiker alle gegevens kunnen ingeven. Om deze gegevens door te sturen naar de Microcoltroller zal ik ervoor zorgen dat er een RS232 kabel gebruikt kan worden of dat de gegevens verzonden kunnen worden via bluetooth. Als er een RS232 kabel wordt gebruikt, zal de gebruiker een spanningspomp, zoals een MAX232, moeten gebruiken om de RS232 signalen om te zetten naar TTL. Ik zal de MCU dus eenmalig moeten programmeren via de PC. Dit zal ik via USBASP realiseren.

Als de renner op een knop drukt die bevestigd is achter zijn/haar oor of aan het truitje, zal de MCU de nodige informatie van de renner en de Gsm-nummers doorsturen naar de SMS-Modem via Asynchrone Seriële communicatie (TTL). Eens de modem deze informatie heeft ontvangen, zal deze direct een sms bericht versturen met de gegevens van de renner naar de vooraf ingestelde nummers.

Page 6: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

3 Prijsraming

Page 7: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

4 Hardware

4.1MicrocontrollerAls centrale eenheid gebruik ik een microcontroller, namelijk de ATMEGA324P/TQFN. Dit is een microcontroller die in SMD formaat is uitgevoerd. Hij heeft 4 poorten van telkens 8 I/O pinnen met alternatieve functies. Voor mijn GIP zal ik poort D gebruiken voor mijn Asynchrone Seriële communicatie lijnen, poort A om de drukknop in te lezen en poort B om mijn klok op aan te sluiten en om het programma in mijn MCU te laden. Ik heb voor deze microcontroller gekozen omdat we alle leerden kennen in de lessen en deze perfect voldoet aan de verlangens van mijn GIP.

Ik gebruik een klok met een frequentie van 3,6864MHz voor mijn MCU. Hiervoor heb ik ook geen specifieke voorwaarden omdat mijn GIP niet op een hoge frequentie moet werken. Ik heb dus voor dit crystal gekozen omdat ik hier ervaring mee heb vanuit de lessen.

De pin layout kunt u hier terugvinden:

Page 8: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

4.2SMS-ModemAls SMS-Modem koos ik voor de USR-GM3 module. Ik ben op deze modem gekomen omdat deze modem slechts 750mA trekt bij het versturen van een SMS. Aangezien mijn voeding niet groot mag zijn, is dit een perfecte keuze. De SMS-Modem werkt op een spanning tussen de 3.5V en 4.2V, dit kan ik namelijk perfect voeden met een batterij die ik later beschrijf.

Op de modem zit een USART RX en TX pin, dit is zeer handig omdat ik hierdoor mijn MCU rechtstreeks kan aansluiten op mijn modem. Ook heeft hij een reset pin waardoor ik dus mijn modem altijd manueel zal kunnen resetten en een ‘POWKEY’ pin. Met de ‘POWKEY’ pin zal ik de modem af en aan kunnen schakelen zonder de voedingsspanning van de modem weg te nemen.

De modem kan in 4 verschillenden modes worden geplaatst: de ‘Network Transmission Mode’, de ‘HTTPD Function Mode’, de ‘SMS Message Transmission Mode’ en de ‘CMD Mode’. Alhoewel dit logisch klikt, zal ik niet de ‘SMS Transmission Mode’ maar de ‘CMD Mode’ gaan gebruiken. Dit zal het programmeren namelijk vereenvoudigen (zie Software).

4.3Bluetooth-ModuleOm de gegevens van de PC te versturen naar de MCU, zal de gebruiker dit kunnen doen via Bluetooth. Daarvoor gebruik ik de Bluetooth module: HC-05. Dit is een zeer goedkope en zeer kleine module. Hij werkt op een spanning van 3.7V en kan rechtstreeks op de batterij worden aangesloten. Hij heeft ook een USART RX en TX pin waardoor ik deze module ook rechtstreeks op de MCU kan aansluiten.

Page 9: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

4.4BatterijAls voeding gebruik ik een 3.7V 1Ah Lithium Ion batterij. Dit is een zeer kleine maar toch krachtige batterij. Hiermee kan ik mijn volledige print voeden en de spanningspieken van 750mA van de SMS-Modem opvangen.

4.5Het schema

Page 10: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

5 Software

5.1C-programma voor MCU5.1.1 Eerste faseIn de eerste fase van het C-programma voor mijn MCU, heb ik geprobeerd om een AT-Commando te versturen naar de sms-modem wanneer ik op een drukknop duwde. Voor dit te realiseren heb ik de sms-modem in ‘cmd’ mode moeten zetten zodat ik later de gegevens van de renners naar verschillend gsm-nummers kon versturen. De tekens worden teken per teken verstuurd aangezien dit Assynchrone seriele communicatie is, ook controleer ik iedere keer als het einde string teken is gegeven. Onderstaande code toont hoe ik dit realiseerde.

5.1.2 Vervolg eerste faseOm de eerste fase van mijn C#-programma te laten communiceren met mijn MCU, heb ik het ontvangen van seriële communicatie er moeten bij voegen. Dit heb ik met interupts gedaan omdat dit makkelijk is, de MCU springt namelijk zelf naar de ISR bij het ontvangen van een teken. Als de MCU tekens ontvangt, stuur ik ze op dezelfde manier door naar de Modem als

Page 11: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

in puntje 5.1.1 ‘Eerste fase’.

5.1.3 Tweede faseDe tweede fase van het MCU-programma is het ontvangen van de gegevens van de renners en één gsm nummer. Die gegevens worden dan verstuurd naar het meegegeven gsm nummer door een AT-Commando op te stellen en te versturen naar de sms-Modem.

5.2Windowsapplicatie C#-programma5.2.1 Eerste faseIn de eerste fase van mijn C#-programma, heb ik een simpel programma geschreven die de communicatie test tussen PC en MCU. Als ik op de knop ‘Verzend gegevens’ druk, dan wordt het AT-Commando voor een sms-bericht te versturen doorgestuurd naar de MCU. De MCU stuurt deze dan door naar de sms-Modem. In deze fase heb ik ook al het dynamisch toevoegen van de textboxen en labels toegevoegd.

Dit programma werkt samen met het programma die besproken wordt in puntje 5.1.2 ‘Vervolg eerste fase’.

Page 12: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als
Page 13: GIP€¦  · Web viewMijn GIP voor dit jaar is een sms-module die gecombineerd wordt met een microcontroller. Deze kan gebruikt worden tijdens wielerwedstrijden, bijvoorbeeld als

5.2.2 Tweede faseDe 2de fase van het C#-programma is ook voor 90% het eind programma. Hier zit het volledig uitzicht van het eindresultaat in, alle gegevens kunnen verzonden worden, de gegevens van een renner kunnen opgeslagen en later ingelezen of verwijderd worden en de tekstboxen waar de gegevens worden ingevuld kunnen met één knop leeg gemaakt worden.

Om te weten of dit programma goed geschreven werd, heb ik 4 mensen die niets van het programma kenden het laten testen. Tijdens te testen kwamen 4 programmatie fouten, 3 onduidelijkheden en 2 punten waar het programma vastliep naar boven. De 4 programmatie fouten hingen vooral over het verkeerd controleren van het maximaal aantal tekens dat de gebruikers mochten ingeven en een kleine foutieve logica bij het inlezen en verwijderen van de opgeslagen gegevens. Deze fouten, onduidelijkheden en vastlooppunten heb ik in 3 uur programmatie werk er allemaal kunnen uit halen.

Om ervoor te zorgen dat het programma nooit vast liep, heb ik bij iedere code structuur waar een gebruiker iets fout kon doen of waar het mis kon lopen, gebruik gemaakt van een try-catch. Als de code die in de ‘try’ staat niet uitgevoerd kon worden, vang ik deze op door een ‘MessageBox’ te tonen met een foutmelding in de ‘catch’.