https://www.euroszeilen.utwente.nl/euroswiki/api.php?action=feedcontributions&user=85.145.116.50&feedformat=atomEurosWiki - Gebruikersbijdragen [nl]2024-03-29T10:57:17ZGebruikersbijdragenMediaWiki 1.35.2https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Gewenste_artikelen&diff=4643Gewenste artikelen2009-07-16T10:42:24Z<p>85.145.116.50: /* Top 10 gewenste artikelen */</p>
<hr />
<div>Een overzicht van alle '''[[Speciaal:Wantedpages|nog niet bestaande artikelen]]''' waar al wél naar wordt verwezen is '''[[Speciaal:Wantedpages|hier]]''' te vinden.<br />
<br />
==Zelf een pagina maken of bewerken==<br />
Je kunt zelf ook een pagina maken. Echt alles mag. Ook als het niet helemaal lukt of nog niet af is, voeg het toch toe. Anderen passen of vullen het wel aan.<br />
<br />
Een pagina maken is heel eenvoudig: Vul de naam in, in onderstaand vakje en klik op de knop. Je kunt ook gewoon op een rode link klikken. Meld je eerst wel even aan op de [[Speciaal:Userlogin|aanmeldpagina]].<br />
<br />
Succes!<br />
<inputbox><br />
type=create<br />
width=24<br />
break=no<br />
buttonlabel=Bewerk of maak een artikel<br />
</inputbox><br />
<br />
Een [[uitleg nieuwe pagina|uitleg]] voor het maken van een nieuwe pagina, staat ook op de wiki.<br />
<br />
== Gewenste artikelen per categorie ==<br />
Op [[Overleg:Gewenste_artikelen|de overlegpagina van dit artikel]] staan een flink aantal artikelen ingedeeld naar categorie. [[Overleg:Gewenste_artikelen|Klik daarvoor '''hier'''.]]<br />
<br />
== Top 10 gewenste artikelen==<br />
De top 10 van gewenste artikelen is:<br />
<br />
<br />
# [[Epoxy]], wat is het, waar gebruiken we het, hoe gebruiken we het (= link naar [[gebruik van Epoxy]]), veiligheid<br />
# [[Hars]], wat voor soorten hars, waar en hoe gebruiken we het, veiligheid<br />
# [[Match race]], wat is een match race?<br />
# [[Roeien]], slecht verhaal over waarom zeilen beter is :-P<br />
# [[Polijsten]], wat is het, waarom en wanneer doen we het?<br />
# [[Lichten]], uitleg + plaatjes over boordlichten, boeilichten en andere nachtlichttekens en signalen.<br />
# [[Orakel]], wie zijn het, waar weten ze veel van<br />
# [[Kotterstag]], wat is het?<br />
# [[Strandzeiler]], algemene info, verwijzing naar [[campuszeiler]]<br />
# [[Luchtweerstand]], algemene info, waar en wanneer is het belangrijk?<br />
<br />
== Nieuwe ideeën van [[Willem]] ==<br />
*[[Open varen]]<br />
*[[Olympische baan]] (en andere wedstrijd banen)<br />
*[[Tonnen project]] (door Steven of Willem)<br />
*[[Riool]]<br />
*[[Geulen]] (namen van veel geulen in de Waddenzee) -> zoiets als nu te vinden is bij [[Waddenzee]]?<br />
*[[Koegelwieck]]<br />
*[[Geien]]<br />
*[[Vliegend zwaard]]<br />
*[[Voorrang]] (uitleg over voorrang, mag ook bij [[BPR]])<br />
*[[Slaan]] ([[Voorruitslaan]], [[Achterruitslaan]], [[omslaan]], aanslaan [[platslaan]])<br />
*[[Signaal geven]] (het duidelijk van koers veranderen, zodat je laat zien dat je geen voorrang neemt)<br />
*[[Aanvaring]] (met overzicht van alle (recente) aanvaring van Euros)<br />
*[[Draaisloot]]<br />
<br />
== Ideeën van anderen ==<br />
* [[Kaartsoorten]] Friesland, zee en wad<br />
* [[Leverancierlijst]] Lijst van leverancieren waar wij onderdelen halen/bestellen. En mogelijke kortingen etc.<br />
* [[Lompe Tukker]]/[[LT]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Roeien&diff=9517Roeien2009-07-16T09:27:00Z<p>85.145.116.50: Nieuwe pagina aangemaakt met 'Roeien is het zich doelloos voortbewegen in een vaartuig. Doelloos omdat de roeier zelf niet ziet waar het heen gaat. Het blikveld van de roeier kan van richting veran...'</p>
<hr />
<div>Roeien is het zich doelloos voortbewegen in een vaartuig. Doelloos omdat de roeier zelf niet ziet waar het heen gaat. Het blikveld van de roeier kan van richting veranderd worden door het plaatsen van een spiegel achterin het vaartuig en daarna nog weer verbreed door deze te vervangen door een bolle spiegel.<br />
<br />
Een zeiler daarintegen kan prima overzicht creeren, kijken waar het schip heenvaart, gezellig met de bemanning kletsen, koppie koffie erbij, muziekje. En omdat dat op ten duur natuurlijk kan gaan vervelen is er op een zeilboot altijd de optie om ff flink in de [[grootschoot]] of aan het [[roer]] te gaan hangen zodat je je aggressie van dat klote tentamen ff kwijt kunt.<br />
<br />
Ook een leuk voordeel van een zeilboot is dat de roeiboot in een gelijkwaardige situatie moet wijken voor de zeilboot.... heerlijk :)</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Polyester&diff=5912Polyester2009-07-16T08:28:46Z<p>85.145.116.50: /* Polyesterhars versus Epoxy */</p>
<hr />
<div>'''Polyester''' is een polymeer dat, zoals het woord al zegt, bestaat uit een keten van esterverbindingen. Euros gebruikt '''polyesterhars''' om haar boten te bouwen. Hierbij wordt gebruik gemaakt van een techniek die ''handlamineren'' heet, of in het Engels ''hand-lay-up''.<br />
<br />
== Glasvezelversterkt polyester ==<br />
Door polyesterhars te verstevigingen met [[glasvezel]]s wordt een laminaat verkregen dat veel sterker is dan enkel polyesterhars. Dit verwerken van polyesterhars met glasvezels wordt door Euros [[plakken]] genoemd. Meer informatie daarover is te vinden in het artikel [[plakken]].<br />
<br />
Wanneer Eurossers polyester zeggen, bedoelen ze vaak ''polystyreen verknoopt met polyester''. Glasvezelversterkt "polyester" wordt ook wel een laminaat of [[composiet]] genoemd.<br />
<br />
== Eigenschappen polyester ==<br />
Polyester kan zowel een thermoplastische (onder invloed van temperatuur smeltend) als thermohardende (onder invloed van een chemische reactie uithardende) [[kunststof]] zijn. De thermohardende polyester is een vloeibaar mengsel, de polyesterhars, van onverzadigde polyester en [[styreen]]. Deze twee komponenten kunnen onder invloed van een [[initiator]] (een peroxide, zoals [[MEKP]]) met elkaar reageren tot een harde kunststof. Vaak is er in de fabriek al een katalysator (zoals kobalt) aan de polyesterhars toegevoegd om deze reactie sneller te laten gaan.<br />
<br />
Polyester is relatief goedkoop, maar heeft als nadeel dat het beperkt waterdampdicht is. Door invloed van water in combinatie met slecht laminaat kunnen [[delaminatie]] en [[osmose]] ontstaan. Op polyester onderdelen (bijvoorbeeld romp en dek van een schip) is de buitenste laag vaak van [[gelcoat]] (polyester op kleur), dat iets beter bestand is tegen water en UV.<br />
<br />
== Polyesterhars versus Epoxy ==<br />
In veel gevallen kan [[epoxy]] gebruikt worden als alternatief voor polyesterhars. Epoxy is duurder dan polyester, maar heeft ook enkele voordelen. Zo is epoxy watervaster '''en hecht het, i.t.t. polyesterhars, op vrijwel alle ondergronden'''. Epoxy heeft ook een langere houdbaarheid dan polyesterhars (zeker wanneer er aan de polyesterhars al een katalysator, zoals kobalt, is toegevoegd).<br />
Polyesterhars is wel beter bestand tegen U.V. straling dan epoxy. Epoxy wordt om deze reden vaak afgelakt met blanke 2-componenten lak (op [[polyurethaan]] basis).<br />
<br />
== Zie ook ==<br />
* [[Plakken]]<br />
* [[Glasvezel]]<br />
* [[Epoxy]]<br />
* [[Chemisch boten bouwen]]<br />
* [http://nl.wikipedia.org/wiki/Polyester Wikipedia over Polyester]<br />
<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Polyester&diff=5911Polyester2009-07-16T08:28:01Z<p>85.145.116.50: /* Polyesterhars versus Epxoy */</p>
<hr />
<div>'''Polyester''' is een polymeer dat, zoals het woord al zegt, bestaat uit een keten van esterverbindingen. Euros gebruikt '''polyesterhars''' om haar boten te bouwen. Hierbij wordt gebruik gemaakt van een techniek die ''handlamineren'' heet, of in het Engels ''hand-lay-up''.<br />
<br />
== Glasvezelversterkt polyester ==<br />
Door polyesterhars te verstevigingen met [[glasvezel]]s wordt een laminaat verkregen dat veel sterker is dan enkel polyesterhars. Dit verwerken van polyesterhars met glasvezels wordt door Euros [[plakken]] genoemd. Meer informatie daarover is te vinden in het artikel [[plakken]].<br />
<br />
Wanneer Eurossers polyester zeggen, bedoelen ze vaak ''polystyreen verknoopt met polyester''. Glasvezelversterkt "polyester" wordt ook wel een laminaat of [[composiet]] genoemd.<br />
<br />
== Eigenschappen polyester ==<br />
Polyester kan zowel een thermoplastische (onder invloed van temperatuur smeltend) als thermohardende (onder invloed van een chemische reactie uithardende) [[kunststof]] zijn. De thermohardende polyester is een vloeibaar mengsel, de polyesterhars, van onverzadigde polyester en [[styreen]]. Deze twee komponenten kunnen onder invloed van een [[initiator]] (een peroxide, zoals [[MEKP]]) met elkaar reageren tot een harde kunststof. Vaak is er in de fabriek al een katalysator (zoals kobalt) aan de polyesterhars toegevoegd om deze reactie sneller te laten gaan.<br />
<br />
Polyester is relatief goedkoop, maar heeft als nadeel dat het beperkt waterdampdicht is. Door invloed van water in combinatie met slecht laminaat kunnen [[delaminatie]] en [[osmose]] ontstaan. Op polyester onderdelen (bijvoorbeeld romp en dek van een schip) is de buitenste laag vaak van [[gelcoat]] (polyester op kleur), dat iets beter bestand is tegen water en UV.<br />
<br />
== Polyesterhars versus Epoxy ==<br />
In veel gevallen kan [[epoxy]] gebruikt worden als alternatief voor polyesterhars. Epoxy is duurder dan polyester, maar heeft ook enkele voordelen. Zo is epoxy watervaster en hecht het, i.t.t. polyesterhars, op vrijwel alle ondergronden. Epoxy heeft ook een langere houdbaarheid dan polyesterhars (zeker wanneer er aan de polyesterhars al een katalysator, zoals kobalt, is toegevoegd).<br />
Polyesterhars is wel beter bestand tegen U.V. straling dan epoxy. Epoxy wordt om deze reden vaak afgelakt met blanke 2-componenten lak (op [[polyurethaan]] basis).<br />
<br />
== Zie ook ==<br />
* [[Plakken]]<br />
* [[Glasvezel]]<br />
* [[Epoxy]]<br />
* [[Chemisch boten bouwen]]<br />
* [http://nl.wikipedia.org/wiki/Polyester Wikipedia over Polyester]<br />
<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=MEKP&diff=8766MEKP2009-07-16T08:17:56Z<p>85.145.116.50: </p>
<hr />
<div>MEKP (spreek uit: mek-p) is de afkorting voor Methyl Ethyl Ketone Peroxide. Het is een [[initiator]] die bij Euros gebruikt wordt om [[gelcoat]] of [[polyester]] hard te laten worden. Het is het giftigste goedje dat Euros heeft. Niet in de ogen en op je huid krijgen dus. Let ook op dat het bij het weggooien in de chemobox niet toevallig in contact komt met een restje hars of gelgoat. Door de hoge mengverhouding ontstaat er dan een superhevige reactie die heet wordt en brand kan veroorzaken. Meer info over hoe dit aan te pakken, vraag [[Willem]].<br />
<br />
Voor de juiste mengverhouding voor als je normaal gebruik wil maken van MEKP kun je vinden bij:<br />
* [[Plakken]]<br />
* [[Gelcoat]]<br />
<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=9011Ebenhaëzer Tracking System2009-07-09T08:49:08Z<p>85.145.116.50: </p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' (ETS) is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden. Het systeem, gemaakt door Steven, Gart, Willem, Menno T en Helmich is gebaseerd op een Bluetooth GPS, oude mobiele telefoon en een microcontroller. <br/><br />
De positie van de Ebenhaëzer wordt, indien de boot vaart, op vaste tijdsintervallen geregistreerd en via internet geupload. Daarna is het mogelijk om de gevaren route via de [http://squall.student.utwente.nl/ets/ ETS website] te bekijken. <br />
De precieze werking van het systeem wordt hieronder beschreven.<br/><br />
<br/><br />
<br/><br />
<br />
= Doel =<br />
Het doel van het systeem is periodiek GPS coördinaten van de EH (later eventueel andere boten) te loggen en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorsturen naar een internetserver. Als er geen GSM bereik is, worden de coördinaten tijdelijk opgeslagen tot er weer bereik is. Nadat de coördinaten verstuurt zijn, zal het voor iedereen mogelijk zijn om de positie en gevaren route op te vragen. Omdat we toch euros blijven en natuurlijk niks te makken hebben willen is er getracht de aanschaf en operationele kosten zo laag mogelijk te houden. Verder moet het systeem bij iedere tocht actief zijn, dus moet het automatisch aangaan zodra de massapik er op gaat, anders kan de schipper vergeten het aan te zetten.<br />
<br />
<br />
<br />
= Methode/Principe =<br />
Heel basic bestaat het ETS systeem uit de volgende dingen:<br/><br />
* Bluetooth GPS ontvanger (doet iets met satelieten in de ruimte)<br />
* Controller <br />
* Mobiel internet (GPRS) modem (doet iets met het GSM netwerk)<br />
* (Micro-controller) <br />
De GPS ontvangt de coördinaten. De controller verwerkt die en stuurt deze met behulp van het modem via het internet naar de thuisserver. <br/><br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een mobiele telefoon. Op de telefoon draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend.<br/><br />
Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Omdat er menselijke handelingen voor nodig waren (toetsen indrukken) om de telefoon en software op te starten hebben we een micro-controller gebruikt om die handelingen over te nemen.<br />
De thuisserver 'luistert' constant of er data van het systeem binnenkomt. Zodra de server data ontvangt wordt dat opgeslagen in een database en verwerkt op de ETS website. Nu kunnen pappie en mammie mooi kijken waar hun kroost zoal uithangt in de weekenden :p .<br />
<br />
<br />
= Aan boord van de Ebenhaëzer =<br />
<br />
== Hardware ==<br />
Belangrijkste dingen die er op de boot nodig zijn:<br />
* GPS ontvanger<br />
* Mobiele telefoon met GPRS en een interface naar GPS ontvanger (bluetooth)<br />
* Automatisch opstart systeem<br />
<br/><br />
<br />
=== GPS ontvanger ===<br />
De kortste slag om de mobiele telefoon met een GPS te laten communiceren is via bluetooth. Een bluetooth gps ontvanger was niet beschikbaar binnen de vereniging dus is er een RoyalTek Bluetooth GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br/><br />
RoyalTek RBT-2001 specificaties:<br/><br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED's voor status-indicatie<br />
<br />
Toelichting LED's statusindicatie<br />
{| {{prettytable}}<br />
|-<br />
|'''Led''' || '''Actie''' || '''Uitleg''' || '''Normale situatie op de EH'''<br />
|-<br />
|<br />
|-<br />
| Blauw || Uit || Geen Bluetooth verbinding met GSM || alleen bij het aanzetten<br />
|-<br />
| Blauw || Knippert || Bluetooth verbinding met GSM werkt || ja <br />
|-<br />
|<br />
|-<br />
| Groen || Aan || GPS is aan, maar nog geen GPS fix gereed || alleen bij het aanzetten<br />
|-<br />
| Groen || Knippert || GPS is aan en heeft een fix || ja<br />
|-<br />
|<br />
|-<br />
| Rood/Geel || Uit || Batterij is voldoende vol || ja<br />
|-<br />
| Rood/Geel || Rood || Batterij is bijna leeg || nee<br />
|-<br />
| Rood/Geel || Geel || GPS hangt aan de lader en wordt opgeladen || ja<br />
|}<br />
<br />
<br/><br />
<br/><br />
<br />
=== Mobiele telefoon ===<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
Nokia 6230i:<br/><br />
http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
==== SIMkaart ====<br />
Een telefoon heeft natuurlijk ook een provider nodig. Dus Willem heeft een prepaid Simyo simkaart met mobiel internet geregeld voor dit doel. <br/><br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br/><br />
Simyo gebruikt het KPN netwerk. In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br/><br />
<br />
=== Automatisch opstart systeem ===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren:<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* ETS applicatie op de mobiele telefoon starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden. De GPS gaan vanzelf aan als die stroom krijgt.<br/><br />
Het automatisch starten van Java software is nogal lastig. Automatisch programma's op starten bij boot-up was niet mogelijk en opstarten door een externe trigger vereiste altijd aan handmatige bevestiging van de gebruiker. <br />
Het automatisch opstarten hebben we nu opgelost door elektronisch schakelaars parallel aan de GSM knoppen te solderen en deze mbv een microcontroller (uC) electrisch aan sturen.<br />
<br/><br />
<br/><br />
==== Elektronische aanpassingen aan de GSMknoppen====<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor telefoon instellingen en software updates) is er naast elke optocoupler ook nog een externe druk schakelaar parallel gesoldeerd.<br />
<br />
Door gebruik te maken van de snelkeuze functies zijn er 3 knoppen nodig om de ETS te bedienen.<br />
* GSM power knop<br />
* Linker keuze knop<br />
* Select knop<br />
<br />
Om op te starten worden deze op de volgende manier aangestuurd:<br />
{| {{prettytable}}<br />
|-<br />
|powerknop || 'aan' || gedurende 3 seconden(telefoon gaan aan)<br />
|-<br />
| || ||Wachten tot de GSM opgestart is.<br/><br />
|-<br />
| Keuzetoets || 'aan' || gedurende 0.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
|-<br />
| || || Wachten tot de de map geopend is.<br/><br />
|-<br />
| Selecttoets || 'aan' || gedurende 0.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
|-<br />
| || || Wachten tot de de map geopend is.<br/><br />
|-<br />
| Selecttoets || 'aan' || gedurende 0.1 seconden (start eurostrack programma)<br/><br />
|-<br />
| || || Wachten tot netwerktoegang gevraagd wordt<br />
|-<br />
| Keuzetoets || 'aan' || gedurende 0.1 seconden (bevestig netwerktoegang)<br/><br />
|-<br />
|}<br />
<br/><br />
Om de ETS uit te zetten wordt gewoon de power knop weer 3 seconden indrukt.<br/><br />
<br/><br />
==== Microcontroller ====<br />
De micro-controller is er eentje uit de onuitputtelijke voorraad van gart :p . Het bleek een Atmel Attiny2313 te zijn.<br/><br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de boordspanning er langer dan een bepaalde tijd af is.<br />
<br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de boordspanning op de EH er heel even af is omdat er naar walstroom geschakeld wordt (tijdens het opstarten van de ETS). Hierdoor kan de uC in de war komen en de telefoon uit zetten ipv aan. We moeten dus ook naar de status van de telefoon kijken om de juiste actie te ondernemen.<br />
<br />
Voor een goede afwerking moeten er dus twee dingen bekend zijn:<br />
* Boordspanning status<br />
* Telefoon status<br />
<br />
De microcontroller hoeft dus alleen maar iets aan het begin en aan het eind van een evenement. In de tussentijd wordt deze in de slaapstand gezet om stroomverbruik te beperken. De boordspanning van de EH dient als interrupt om de uC uit de slaapstand te halen. Zodra de uC wakker wordt gaat deze kijken of de telefoon uit dan wel aangezet moet worden. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de boordspanning er minstens 1 minuut af zijn.<br/><br />
Om debuggen tijdens het ontwerpen en later op de EH te vergemakkelijken is er een controlle LED geplaatst. De geeft de status van het programma weer dmv van een knipper code.<br/><br />
<br/><br />
'''Hardware ontwerp'''<br/><br />
We hebben een [http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF Atmel attiny2313] microcontroller (uC):<br/><br />
Alle ETS aansluitingen hebben de volgende overwegingen:<br/><br />
<br />
'''Voeding:'''<br/><br />
We voeden de uC vanuit de telefoon batterij, dus 3,7 volt.<br/><br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de telefoon geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de telefoon status. We hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de telefoon op 'altijd aan' en tappen dit af. Dit werkt alleen als er boordspanning op de EH is.<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de telefoon aan is en 0 als de telefoon uit is. Dit werkt dus alleen als er geen boordspnning is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in. Omdat de buffer niet nodig is als de uC in de slaapstand zit, wordt de voeding van de buffer ook vanuit de uC geregeld.<br />
De LED spanning is rond de 3 volt dus die kan als IO dienen.<br />
De 2,7 volt van de lader pin is te laag om als IO te dienen dus dat doen we via de intern comperator van de uC.<br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de telefoon op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br/><br />
<br />
'''Boordspanning status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
De maximale spanning op een IO poort is: Vcc+0,5 Volt. We hebben een spanningsdeler van twee weerstanden gebruikt om de 12 volt voeding vanuit de EH om te zetten naar 3,7 volt.<br />
Om ook de uC wakker te krijgen moeten we een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
<br />
'''IO:'''<br/><br />
3 poorten om de GSM toetsen aan te sturen<br />
1 uitgang voor de controle/status led<br />
1 uitgang voor de voeding van de buffer IC<br />
<br />
Een overzicht van de uC pinbezetting:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|2 || PD0 || Uitgang naar controle/status indicatie LED<br />
|-<br />
|3 || PD1 || Uitgang naar voeding naar buffer IC<br />
|-<br />
|7 || PD3 || Uitgang naar selectknop<br />
|-<br />
|8 || PD4 || Uitgang naar keuze knop<br />
|-<br />
|9 || PD5 || Uitgang naar aanuitknop<br />
|-<br />
|10 || GND || massa microcontroller<br />
|-<br />
|12 || AIN0 || positieve ingang comparator; naar interne referentie spanning (1.1 volt)<br />
|-<br />
|13 || AIN1 || negatieve ingang comperator; naar de 'lader connector' (via buffer IC)<br />
|-<br />
|14 || PB2 || ingang vanaf telefoon achtergronf LED (via buffer IC met afvlak condensator), werkt alleen als de massapik erop zit<br />
|-<br />
|15 || PB3/PCINT3 || ingang vanaf spanningsdeler EH voeding<br />
|-<br />
|20 || Vcc || voeding microcontroller vanuit GSM accu<br />
|-<br />
|}<br />
<br/><br />
Onderdelen:<br/><br />
* Microcontroller: Atmel Attiny 2313<br />
* Buffer: LM324N<br />
* Optocoupler: CNY17F<br />
<br/><br />
Al met al hebben we het volgende schema:<br/><br />
[[Afbeelding:ETSschema.jpg|thumb|300px|centre|Electrisch schema om de uC aan te sluiten]]<br />
<br/><br />
In de uC hebben we [[#code_micro-controller|deze]] code geknald.<br/><br />
<br/><br />
Uitleg van de status LED (bij 1x 'knipper' gaat de LED 1x uit(!) ):<br />
{| {{prettytable}}<br />
|-<br />
|LED ||Uitleg <br />
|-<br />
| aan || uC is wakker en is aan het wachten of een routine uitvoeren<br />
|-<br />
| uit || uC slaapt<br />
|-<br />
| knippert 1x || ETS gaat worden opgestart <br />
|-<br />
| knippert 2x || ETS gaat worden uitgezet<br />
|-<br />
| knippert 3x || uC gaat in de slaapstand <br />
|-<br />
|}<br />
<br />
<br/><br />
<br />
=== Voeding ===<br />
Het hele ETS systeem wordt met 12 volt gevoed. Dit omdat we dan voor de telefoon en GPS ontvanger al een 12 volt adapter hebben. Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box is de 12 volt verbonden met:<br />
* Via een diode met de GSM adapter (om te voorkomen dat er stroom vanuit de GSM accu door de lader terug gaat lopen)<br />
* De GPS ontvanger adapter<br />
<br/><br />
Naast de voeding van de EH hebben de mobiele telefoon en GPS-ontvanger ook een interne accu. Hier kan het systeem ook op draaien. Hierbij moet de ETS handmatig opgestart worden met de externe toetsen en de uC moet uitgeschakeld worden anders gaat die de telefoon weer uitzetten. Het uitzetten van de uC kan eenvoudig door de 'laderplug' uit de telefoon te halen. Laden hoeft immers toch niet en de uC heeft zo geen massa en dus geen voeding meer.<br />
<br/><br/><br/><br />
<br />
=== Behuizing ===<br />
De behuizing is een 'tupperware' trommel. Lekker degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing zitten:<br />
* Mobiele telelfoon met externe knoppen en kabels<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x adapter PCB voor voeding GPS en GSM<br />
* Opvulling<br />
<br/><br />
[[Afbeelding:ETSuitgeklapt.jpg|thumb|300px|centre|ETS onderdelen in werkelijkheid]]<br />
[[Afbeelding:ETSinbehuizing.jpg|thumb|300px|centre|ETS in zijn behuizing]]<br />
<br/><br/><br />
<br />
== Software ==<br />
===Howto software op de GSM installeren===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Na het installeren moeten de toegangsrechten van connectiviteit van het ETS programma nog even ingesteld worden op 'altijd toestaan'. <br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie wordt daarom direct data (0kb) verstuurd zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* minimale verplaatsing variabel<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Bluetooth verbinding opnieuw opzetten als de bluetooth communicatie uitvalt<br />
<br />
Gewenst:<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** De ETS software merkt dit na een time-out, en gaat dan opnieuw een verbinding proberen op te zetten.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging alsnog worden verzonden.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
<br />
=== Broncode ===<br />
Steven heeft de ETS broncode, Helmich en Gart hebben een backup.<br/><br />
<br/><br />
<br/><br />
<br/><br />
<br />
= In Enschede=<br />
De data die de GSM upload is dus helemaal gestript. Geen poespas, alleen de bootletter, UTC-tijd en GPS-lokatie. De server in enschede haalt deze data weer uit elkaar en verwerkt het in een database.<br />
<br />
De database regelt o.a. de volgende dingen:<br />
* Opslaan ontvangen data in database<br />
* Er wordt een nieuw track gedefinieerd als er 45 minuten lang geen data binnen gekomen is<br />
* Interfacing naar de ETS waterkaart<br />
<br/><br />
De communicatie tussen de boot en de server kan gevolgd worden m.b.v. een [http://squall.student.utwente.nl/ets/log.txt logfile]<br/><br />
Een correcte log geeft:<br />
* Elke dag om 0600h UTC een uitroepteken als bootletter om te checken of de server draait<br />
* De bootletter (E/X/T/R/J/?) elke keer als de ETS opstart<br />
* Elke x(1/2/5/10/15/30/60) aantal minuten de bootletter (E/X/T/R/J/?) en een reeks coördinaten zodra de boot vaart<br />
<br/><br />
<br/><br />
<br />
<br />
= Ontwerpbeslissingen =<br />
Hier zullen de belangrijkste keuzes die gedaan zijn bij het maken van het systeem beschreven worden.<br />
<br />
== GPRS ==<br />
Het gebruik van SMS is veel makkelijker dan het gebruik van GPRS, aangezien het vanaf een microcontroller mogelijk is om direct SMS berichten te versturen. Voor GPRS is dat een stuk lastiger. GPRS is echter vele malen goedkoper, omdat we zeer weinig data versturen: 10 bytes per coördinaat. Naar schatting zou SMS rond de 50 euro per jaar kosten, waar we met GPRS aan 1 à 2 euro genoeg zouden moeten hebben voor een vaarseizoen.<br />
<br />
== Java op de telefoon ==<br />
Voor het versturen van de data zijn vier verschillende mogelijkheden: <br />
* door Java op de telefoon, <br />
* door andere software op de telefoon (symbian),<br />
* door de microcontroller <br />
* een PC.<br />
<br />
== Microcontroller ==<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS of een vooraf ingesteld alarm. Helaas vraagt de Nokia uit Series 40 platform de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Mogelijke andere opties waren:<br />
# Altijd aanlaten; maar hiervoor was het stroomverbruik te hoog.<br />
# Mechanisch starten door de knoppen in te drukken, maar dat leek een beetje omslachtig<br />
# Elektronisch schakelaars aan de knoppen solderen en deze mbv een microcontroller (uC) electrisch aan sturen. <br />
<br />
Uiteindelijke bleek de laatste optie het handigst.<br />
<br />
<br />
<br/><br/><br />
=Bijlagen=<br />
== code micro-controller ==<br />
In de uC hebben we de volgende code geknald:<br/><br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br />
<br/><br />
<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
===Wensen===<br />
* Snelheid meenemen in de routes (bijvoorbeeld zoiets: [http://eurosweb.student.utwente.nl/menno/tracklog-terugvaart-lichtekooi.html Tracklog terugvaart Lichtekooi]), gemaakt met [http://www.gpsvisualizer.com/map_input?form=google GPS Visualizer])<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br />
<br />
=== Opties ===<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
Pushregistery:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=9004Ebenhaëzer Tracking System2009-07-06T09:50:02Z<p>85.145.116.50: /* Voeding */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' (ETS) is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden. Het systeem, gemaakt door Steven, Gart, Willem, Menno T en Helmich is gebaseerd op een Bluetooth GPS, oude mobiele telefoon en een microcontroller. <br/><br />
De positie van de Ebenhaëzer wordt, indien de boot vaart, op vaste tijdsintervallen geregistreerd en via internet geupload. Daarna is het mogelijk om de gevaren route via de [http://squall.student.utwente.nl/ets/ ETS website] te bekijken. <br />
De precieze werking van het systeem wordt hieronder beschreven.<br/><br />
<br/><br />
<br/><br />
<br />
= Doel =<br />
Het doel van het systeem is periodiek GPS coördinaten van de EH (later eventueel andere boten) te loggen en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorsturen naar een internetserver. Als er geen GSM bereik is, worden de coördinaten tijdelijk opgeslagen tot er weer bereik is. Nadat de coördinaten verstuurt zijn, zal het voor iedereen mogelijk zijn om de positie en gevaren route op te vragen. Omdat we toch euros blijven en natuurlijk niks te makken hebben willen is er getracht de aanschaf en operationele kosten zo laag mogelijk te houden. Verder moet het systeem bij iedere tocht actief zijn, dus moet het automatisch aangaan zodra de massapik er op gaat, anders kan de schipper vergeten het aan te zetten.<br />
<br />
<br />
<br />
= Methode/Principe =<br />
Heel basic bestaat het ETS systeem uit de volgende dingen:<br/><br />
* Bluetooth GPS ontvanger (doet iets met satelieten in de ruimte)<br />
* Controller <br />
* Mobiel internet (GPRS) modem (doet iets met het GSM netwerk)<br />
* (Micro-controller) <br />
De GPS ontvangt de coördinaten. De controller verwerkt die en stuurt deze met behulp van het modem via het internet naar de thuisserver. <br/><br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een mobiele telefoon. Op de telefoon draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend.<br/><br />
Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Omdat er menselijke handelingen voor nodig waren (toetsen indrukken) om de telefoon en software op te starten hebben we een micro-controller gebruikt om die handelingen over te nemen.<br />
De thuisserver 'luistert' constant of er data van het systeem binnenkomt. Zodra de server data ontvangt wordt dat opgeslagen in een database en verwerkt op de ETS website. Nu kunnen pappie en mammie mooi kijken waar hun kroost zoal uithangt in de weekenden :p .<br />
<br />
<br />
= Aan boord =<br />
<br />
== Hardware ==<br />
Belangrijkste dingen die er op de boot nodig zijn:<br />
* GPS ontvanger<br />
* Mobiele telefoon met GPRS en een interface naar GPS ontvanger (bluetooth)<br />
* Automatisch opstart systeem<br />
<br/><br />
<br />
=== GPS ontvanger ===<br />
De kortste slag om de mobiele telefoon met een GPS te laten communiceren is via bluetooth. Een bluetooth gps ontvanger was niet beschikbaar binnen de vereniging dus is er een RoyalTek Bluetooth GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br/><br />
RoyalTek RBT-2001 specificaties:<br/><br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED's voor status-indicatie<br />
<br />
Toelichting LED's statusindicatie<br />
{| {{prettytable}}<br />
|-<br />
|'''Led''' || '''Actie''' || '''Uitleg''' || '''Normale situatie op de EH'''<br />
|-<br />
|<br />
|-<br />
| Blauw || Uit || Geen Bluetooth verbinding met GSM ||<br />
|-<br />
| Blauw || Knippert || Bluetooth verbinding met GSM werkt || * <br />
|-<br />
|<br />
|-<br />
| Groen || Aan || GPS is aan, maar nog geen GPS fix gereed ||<br />
|-<br />
| Groen || Knippert || GPS is aan en heeft een fix || *<br />
|-<br />
|<br />
|-<br />
| Geel || Uit || Batterij is voldoende vol ||<br />
|-<br />
| Geel || Knippert || Batterij is bijna leeg ||<br />
|-<br />
| Geel || Aan || Batterij hangt aan de lader en wordt opgeladen || *<br />
|}<br />
<br />
<br/><br />
<br/><br />
<br />
<br />
=== Mobiele telefoon ===<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
Nokia 6230i:<br/><br />
http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
==== SIMkaart ====<br />
Een telefoon heeft natuurlijk ook een provider nodig. Dus Willem heeft een prepaid Simyo simkaart met mobiel internet geregeld voor dit doel. <br/><br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br/><br />
Simyo gebruikt het KPN netwerk. In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br/><br />
<br />
=== Automatisch opstart systeem ===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren:<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* ETS applicatie op de mobiele telefoon starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden. De GPS gaan vanzelf aan als die stroom krijgt.<br/><br />
Het automatisch starten van Java software is nogal lastig. Automatisch programma's op starten bij boot-up was niet mogelijk en opstarten door een externe trigger vereiste altijd aan handmatige bevestiging van de gebruiker. <br />
Het automatisch opstarten hebben we nu opgelost door elektronisch schakelaars parallel aan de GSM knoppen te solderen en deze mbv een microcontroller (uC) electrisch aan sturen.<br />
<br/><br />
<br/><br />
==== Elektronische aanpassingen aan de GSMknoppen====<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor telefoon instellingen en software updates) is er naast elke optocoupler ook nog een externe druk schakelaar parallel gesoldeerd.<br />
<br />
Door gebruik te maken van de snelkeuze functies zijn er 3 knoppen nodig om de ETS te bedienen.<br />
* GSM power knop<br />
* Linker keuze knop<br />
* Select knop<br />
<br />
Om op te starten worden deze op de volgende manier aangestuurd:<br />
{| {{prettytable}}<br />
|-<br />
|powerknop || 'aan' || gedurende 3 seconden(telefoon gaan aan)<br />
|-<br />
| || ||Wachten tot de GSM opgestart is.<br/><br />
|-<br />
| Keuzetoets || 'aan' || gedurende 0.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
|-<br />
| || || Wachten tot de de map geopend is.<br/><br />
|-<br />
| Selecttoets || 'aan' || gedurende 0.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
|-<br />
| || || Wachten tot de de map geopend is.<br/><br />
|-<br />
| Selecttoets || 'aan' || gedurende 0.1 seconden (start eurostrack programma)<br/><br />
|-<br />
| || || Wachten tot netwerktoegang gevraagd wordt<br />
|-<br />
| Keuzetoets || 'aan' || gedurende 0.1 seconden (bevestig netwerktoegang)<br/><br />
|-<br />
|}<br />
<br/><br />
Om de ETS uit te zetten wordt gewoon de power knop weer 3 seconden indrukt.<br/><br />
<br/><br />
==== Microcontroller ====<br />
De micro-controller is er eentje uit de onuitputtelijke voorraad van gart :p . Het bleek een Atmel Attiny2313 te zijn.<br/><br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de boordspanning er langer dan een bepaalde tijd af is.<br />
<br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de boordspanning op de EH er heel even af is omdat er naar walstroom geschakeld wordt (tijdens het opstarten van de ETS). Hierdoor kan de uC in de war komen en de telefoon uit zetten ipv aan. We moeten dus ook naar de status van de telefoon kijken om de juiste actie te ondernemen.<br />
<br />
Voor een goede afwerking moeten er dus twee dingen bekend zijn:<br />
* Boordspanning status<br />
* Telefoon status<br />
<br />
De microcontroller hoeft dus alleen maar iets aan het begin en aan het eind van een evenement. In de tussentijd wordt deze in de slaapstand gezet om stroomverbruik te beperken. De boordspanning van de EH dient als interrupt om de uC uit de slaapstand te halen. Zodra de uC wakker wordt gaat deze kijken of de telefoon uit dan wel aangezet moet worden. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de boordspanning er minstens 1 minuut af zijn.<br/><br />
Om debuggen tijdens het ontwerpen en later op de EH te vergemakkelijken is er een controlle LED geplaatst. De geeft de status van het programma weer dmv van een knipper code.<br/><br />
<br/><br />
'''Hardware ontwerp'''<br/><br />
We hebben een [http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF Atmel attiny2313] microcontroller (uC):<br/><br />
Alle ETS aansluitingen hebben de volgende overwegingen:<br/><br />
<br />
'''Voeding:'''<br/><br />
We voeden de uC vanuit de telefoon batterij, dus 3,7 volt.<br/><br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de telefoon geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de telefoon status. We hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de telefoon op 'altijd aan' en tappen dit af. Dit werkt alleen als er boordspanning op de EH is.<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de telefoon aan is en 0 als de telefoon uit is. Dit werkt dus alleen als er geen boordspnning is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in. Omdat de buffer niet nodig is als de uC in de slaapstand zit, wordt de voeding van de buffer ook vanuit de uC geregeld.<br />
De LED spanning is rond de 3 volt dus die kan als IO dienen.<br />
De 2,7 volt van de lader pin is te laag om als IO te dienen dus dat doen we via de intern comperator van de uC.<br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de telefoon op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br/><br />
<br />
'''Boordspanning status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
De maximale spanning op een IO poort is: Vcc+0,5 Volt. We hebben een spanningsdeler van twee weerstanden gebruikt om de 12 volt voeding vanuit de EH om te zetten naar 3,7 volt.<br />
Om ook de uC wakker te krijgen moeten we een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
<br />
'''IO:'''<br/><br />
3 poorten om de GSM toetsen aan te sturen<br />
1 uitgang voor de controle/status led<br />
1 uitgang voor de voeding van de buffer IC<br />
<br />
Een overzicht van de uC pinbezetting:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|2 || PD0 || Uitgang naar controle/status indicatie LED<br />
|-<br />
|3 || PD1 || Uitgang naar voeding naar buffer IC<br />
|-<br />
|7 || PD3 || Uitgang naar selectknop<br />
|-<br />
|8 || PD4 || Uitgang naar keuze knop<br />
|-<br />
|9 || PD5 || Uitgang naar aanuitknop<br />
|-<br />
|10 || GND || massa microcontroller<br />
|-<br />
|12 || AIN0 || positieve ingang comparator; naar interne referentie spanning (1.1 volt)<br />
|-<br />
|13 || AIN1 || negatieve ingang comperator; naar de 'lader connector' (via buffer IC)<br />
|-<br />
|14 || PB2 || ingang vanaf telefoon achtergronf LED (via buffer IC met afvlak condensator), werkt alleen als de massapik erop zit<br />
|-<br />
|15 || PB3/PCINT3 || ingang vanaf spanningsdeler EH voeding<br />
|-<br />
|20 || Vcc || voeding microcontroller vanuit GSM accu<br />
|-<br />
|}<br />
<br />
<br />
Al met al hebben we het volgende schema:<br/><br />
[[Afbeelding:ETSschema.jpg|thumb|300px|centre|Electrisch schema om de uC aan te sluiten]]<br />
<br/><br />
In de uC hebben we [[#code_micro-controller|deze]] code geknald.<br/><br />
<br/><br />
Uitleg van de status LED (bij 1x 'knipper' gaat de LED 1x uit(!) ):<br />
{| {{prettytable}}<br />
|-<br />
|LED ||Uitleg <br />
|-<br />
| aan || uC is wakker en is aan het wachten of een routine uitvoeren<br />
|-<br />
| uit || uC slaapt<br />
|-<br />
| knippert 1x || ETS gaat worden opgestart <br />
|-<br />
| knippert 2x || ETS gaat worden uitgezet<br />
|-<br />
| knippert 3x || uC gaat in de slaapstand <br />
|-<br />
|}<br />
<br />
<br/><br />
<br />
=== Voeding ===<br />
Het hele ETS systeem wordt met 12 volt gevoed. Dit omdat we dan voor de telefoon en GPS ontvanger al een 12 volt adapter hebben. Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box is de 12 volt verbonden met:<br />
* Via een diode met de GSM adapter (om te voorkomen dat er stroom vanuit de GSM accu door de lader terug gaat lopen)<br />
* De GPS ontvanger adapter<br />
<br/><br />
Naast de voeding van de EH hebben de mobiele telefoon en GPS-ontvanger ook een interne accu. Hier kan het systeem ook op draaien. Hierbij moet de ETS handmatig opgestart worden met de externe toetsen en de uC moet uitgeschakeld worden anders gaat die de telefoon weer uitzetten. Het uitzetten van de uC kan eenvoudig door de 'laderplug' uit de telefoon te halen. Laden hoeft immers toch niet en de uC heeft zo geen massa en dus geen voeding meer.<br />
<br/><br/><br/><br />
<br />
=== Behuizing ===<br />
De behuizing is een 'tupperware' trommel. Lekker degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing zitten:<br />
* Mobiele telelfoon met externe knoppen en kabels<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x adapter PCB voor voeding GPS en GSM<br />
* Opvulling<br />
<br/><br/><br />
<br />
== Software ==<br />
===Howto software op de GSM installeren===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Na het installeren moeten de toegangsrechten van connectiviteit van het ETS programma nog even ingesteld worden op 'altijd toestaan'. <br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie wordt daarom direct data (0kb) verstuurd zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* minimale verplaatsing variabel<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Bluetooth verbinding opnieuw opzetten als de bluetooth communicatie uitvalt<br />
<br />
Gewenst:<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** De ETS software merkt dit na een time-out, en gaat dan opnieuw een verbinding proberen op te zetten.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging alsnog worden verzonden.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
<br />
=== Broncode ===<br />
Steven heeft de ETS broncode, Helmich en Gart hebben een backup.<br/><br />
<br/><br />
<br/><br />
<br/><br />
= In Enschede=<br />
De data die de GSM upload is dus helemaal gestript. Geen poespas, alleen de bootletter, UTC-tijd en GPS-lokatie. De server in enschede haalt deze data weer uit elkaar en verwerkt het in een database.<br />
<br />
De database regelt o.a. de volgende dingen:<br />
* Opslaan ontvangen data in database<br />
* Er wordt een nieuw track gedefinieerd als er 45 minuten lang geen data binnen gekomen is<br />
* Interfacing naar de ETS waterkaart<br />
<br/><br />
<br/><br />
<br />
<br />
= Ontwerpbeslissingen =<br />
Hier zullen de belangrijkste keuzes die gedaan zijn bij het maken van het systeem beschreven worden.<br />
<br />
== GPRS ==<br />
Het gebruik van SMS is veel makkelijker dan het gebruik van GPRS, aangezien het vanaf een microcontroller mogelijk is om direct SMS berichten te versturen. Voor GPRS is dat een stuk lastiger. GPRS is echter vele malen goedkoper, omdat we zeer weinig data versturen: 10 bytes per coördinaat. Naar schatting zou SMS rond de 50 euro per jaar kosten, waar we met GPRS aan 1 à 2 euro genoeg zouden moeten hebben voor een vaarseizoen.<br />
<br />
== Java op de telefoon ==<br />
Voor het versturen van de data zijn vier verschillende mogelijkheden: <br />
* door Java op de telefoon, <br />
* door andere software op de telefoon (symbian),<br />
* door de microcontroller <br />
* een PC.<br />
<br />
== Microcontroller ==<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS of een vooraf ingesteld alarm. Helaas vraagt de Nokia uit Series 40 platform de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Mogelijke andere opties waren:<br />
# Altijd aanlaten; maar hiervoor was het stroomverbruik te hoog.<br />
# Mechanisch starten door de knoppen in te drukken, maar dat leek een beetje omslachtig<br />
# Elektronisch schakelaars aan de knoppen solderen en deze mbv een microcontroller (uC) electrisch aan sturen. <br />
<br />
Uiteindelijke bleek de laatste optie het handigst.<br />
<br />
<br />
<br/><br/><br />
=Bijlagen=<br />
== code micro-controller ==<br />
In de uC hebben we de volgende code geknald:<br/><br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br />
<br/><br />
== Pin bezetting Nokia telefoon ==<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
===Wensen===<br />
* Snelheid meenemen in de routes (bijvoorbeeld zoiets: [http://eurosweb.student.utwente.nl/menno/tracklog-terugvaart-lichtekooi.html Tracklog terugvaart Lichtekooi]), gemaakt met [http://www.gpsvisualizer.com/map_input?form=google GPS Visualizer])<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br />
<br />
=== Opties ===<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
Pushregistery:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=9003Ebenhaëzer Tracking System2009-07-06T09:49:32Z<p>85.145.116.50: /* Voeding */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' (ETS) is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden. Het systeem, gemaakt door Steven, Gart, Willem, Menno T en Helmich is gebaseerd op een Bluetooth GPS, oude mobiele telefoon en een microcontroller. <br/><br />
De positie van de Ebenhaëzer wordt, indien de boot vaart, op vaste tijdsintervallen geregistreerd en via internet geupload. Daarna is het mogelijk om de gevaren route via de [http://squall.student.utwente.nl/ets/ ETS website] te bekijken. <br />
De precieze werking van het systeem wordt hieronder beschreven.<br/><br />
<br/><br />
<br/><br />
<br />
= Doel =<br />
Het doel van het systeem is periodiek GPS coördinaten van de EH (later eventueel andere boten) te loggen en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorsturen naar een internetserver. Als er geen GSM bereik is, worden de coördinaten tijdelijk opgeslagen tot er weer bereik is. Nadat de coördinaten verstuurt zijn, zal het voor iedereen mogelijk zijn om de positie en gevaren route op te vragen. Omdat we toch euros blijven en natuurlijk niks te makken hebben willen is er getracht de aanschaf en operationele kosten zo laag mogelijk te houden. Verder moet het systeem bij iedere tocht actief zijn, dus moet het automatisch aangaan zodra de massapik er op gaat, anders kan de schipper vergeten het aan te zetten.<br />
<br />
<br />
<br />
= Methode/Principe =<br />
Heel basic bestaat het ETS systeem uit de volgende dingen:<br/><br />
* Bluetooth GPS ontvanger (doet iets met satelieten in de ruimte)<br />
* Controller <br />
* Mobiel internet (GPRS) modem (doet iets met het GSM netwerk)<br />
* (Micro-controller) <br />
De GPS ontvangt de coördinaten. De controller verwerkt die en stuurt deze met behulp van het modem via het internet naar de thuisserver. <br/><br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een mobiele telefoon. Op de telefoon draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend.<br/><br />
Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Omdat er menselijke handelingen voor nodig waren (toetsen indrukken) om de telefoon en software op te starten hebben we een micro-controller gebruikt om die handelingen over te nemen.<br />
De thuisserver 'luistert' constant of er data van het systeem binnenkomt. Zodra de server data ontvangt wordt dat opgeslagen in een database en verwerkt op de ETS website. Nu kunnen pappie en mammie mooi kijken waar hun kroost zoal uithangt in de weekenden :p .<br />
<br />
<br />
= Aan boord =<br />
<br />
== Hardware ==<br />
Belangrijkste dingen die er op de boot nodig zijn:<br />
* GPS ontvanger<br />
* Mobiele telefoon met GPRS en een interface naar GPS ontvanger (bluetooth)<br />
* Automatisch opstart systeem<br />
<br/><br />
<br />
=== GPS ontvanger ===<br />
De kortste slag om de mobiele telefoon met een GPS te laten communiceren is via bluetooth. Een bluetooth gps ontvanger was niet beschikbaar binnen de vereniging dus is er een RoyalTek Bluetooth GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br/><br />
RoyalTek RBT-2001 specificaties:<br/><br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED's voor status-indicatie<br />
<br />
Toelichting LED's statusindicatie<br />
{| {{prettytable}}<br />
|-<br />
|'''Led''' || '''Actie''' || '''Uitleg''' || '''Normale situatie op de EH'''<br />
|-<br />
|<br />
|-<br />
| Blauw || Uit || Geen Bluetooth verbinding met GSM ||<br />
|-<br />
| Blauw || Knippert || Bluetooth verbinding met GSM werkt || * <br />
|-<br />
|<br />
|-<br />
| Groen || Aan || GPS is aan, maar nog geen GPS fix gereed ||<br />
|-<br />
| Groen || Knippert || GPS is aan en heeft een fix || *<br />
|-<br />
|<br />
|-<br />
| Geel || Uit || Batterij is voldoende vol ||<br />
|-<br />
| Geel || Knippert || Batterij is bijna leeg ||<br />
|-<br />
| Geel || Aan || Batterij hangt aan de lader en wordt opgeladen || *<br />
|}<br />
<br />
<br/><br />
<br/><br />
<br />
<br />
=== Mobiele telefoon ===<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
Nokia 6230i:<br/><br />
http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
==== SIMkaart ====<br />
Een telefoon heeft natuurlijk ook een provider nodig. Dus Willem heeft een prepaid Simyo simkaart met mobiel internet geregeld voor dit doel. <br/><br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br/><br />
Simyo gebruikt het KPN netwerk. In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br/><br />
<br />
=== Automatisch opstart systeem ===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren:<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* ETS applicatie op de mobiele telefoon starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden. De GPS gaan vanzelf aan als die stroom krijgt.<br/><br />
Het automatisch starten van Java software is nogal lastig. Automatisch programma's op starten bij boot-up was niet mogelijk en opstarten door een externe trigger vereiste altijd aan handmatige bevestiging van de gebruiker. <br />
Het automatisch opstarten hebben we nu opgelost door elektronisch schakelaars parallel aan de GSM knoppen te solderen en deze mbv een microcontroller (uC) electrisch aan sturen.<br />
<br/><br />
<br/><br />
==== Elektronische aanpassingen aan de GSMknoppen====<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor telefoon instellingen en software updates) is er naast elke optocoupler ook nog een externe druk schakelaar parallel gesoldeerd.<br />
<br />
Door gebruik te maken van de snelkeuze functies zijn er 3 knoppen nodig om de ETS te bedienen.<br />
* GSM power knop<br />
* Linker keuze knop<br />
* Select knop<br />
<br />
Om op te starten worden deze op de volgende manier aangestuurd:<br />
{| {{prettytable}}<br />
|-<br />
|powerknop || 'aan' || gedurende 3 seconden(telefoon gaan aan)<br />
|-<br />
| || ||Wachten tot de GSM opgestart is.<br/><br />
|-<br />
| Keuzetoets || 'aan' || gedurende 0.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
|-<br />
| || || Wachten tot de de map geopend is.<br/><br />
|-<br />
| Selecttoets || 'aan' || gedurende 0.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
|-<br />
| || || Wachten tot de de map geopend is.<br/><br />
|-<br />
| Selecttoets || 'aan' || gedurende 0.1 seconden (start eurostrack programma)<br/><br />
|-<br />
| || || Wachten tot netwerktoegang gevraagd wordt<br />
|-<br />
| Keuzetoets || 'aan' || gedurende 0.1 seconden (bevestig netwerktoegang)<br/><br />
|-<br />
|}<br />
<br/><br />
Om de ETS uit te zetten wordt gewoon de power knop weer 3 seconden indrukt.<br/><br />
<br/><br />
==== Microcontroller ====<br />
De micro-controller is er eentje uit de onuitputtelijke voorraad van gart :p . Het bleek een Atmel Attiny2313 te zijn.<br/><br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de boordspanning er langer dan een bepaalde tijd af is.<br />
<br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de boordspanning op de EH er heel even af is omdat er naar walstroom geschakeld wordt (tijdens het opstarten van de ETS). Hierdoor kan de uC in de war komen en de telefoon uit zetten ipv aan. We moeten dus ook naar de status van de telefoon kijken om de juiste actie te ondernemen.<br />
<br />
Voor een goede afwerking moeten er dus twee dingen bekend zijn:<br />
* Boordspanning status<br />
* Telefoon status<br />
<br />
De microcontroller hoeft dus alleen maar iets aan het begin en aan het eind van een evenement. In de tussentijd wordt deze in de slaapstand gezet om stroomverbruik te beperken. De boordspanning van de EH dient als interrupt om de uC uit de slaapstand te halen. Zodra de uC wakker wordt gaat deze kijken of de telefoon uit dan wel aangezet moet worden. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de boordspanning er minstens 1 minuut af zijn.<br/><br />
Om debuggen tijdens het ontwerpen en later op de EH te vergemakkelijken is er een controlle LED geplaatst. De geeft de status van het programma weer dmv van een knipper code.<br/><br />
<br/><br />
'''Hardware ontwerp'''<br/><br />
We hebben een [http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF Atmel attiny2313] microcontroller (uC):<br/><br />
Alle ETS aansluitingen hebben de volgende overwegingen:<br/><br />
<br />
'''Voeding:'''<br/><br />
We voeden de uC vanuit de telefoon batterij, dus 3,7 volt.<br/><br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de telefoon geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de telefoon status. We hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de telefoon op 'altijd aan' en tappen dit af. Dit werkt alleen als er boordspanning op de EH is.<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de telefoon aan is en 0 als de telefoon uit is. Dit werkt dus alleen als er geen boordspnning is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in. Omdat de buffer niet nodig is als de uC in de slaapstand zit, wordt de voeding van de buffer ook vanuit de uC geregeld.<br />
De LED spanning is rond de 3 volt dus die kan als IO dienen.<br />
De 2,7 volt van de lader pin is te laag om als IO te dienen dus dat doen we via de intern comperator van de uC.<br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de telefoon op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br/><br />
<br />
'''Boordspanning status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
De maximale spanning op een IO poort is: Vcc+0,5 Volt. We hebben een spanningsdeler van twee weerstanden gebruikt om de 12 volt voeding vanuit de EH om te zetten naar 3,7 volt.<br />
Om ook de uC wakker te krijgen moeten we een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
<br />
'''IO:'''<br/><br />
3 poorten om de GSM toetsen aan te sturen<br />
1 uitgang voor de controle/status led<br />
1 uitgang voor de voeding van de buffer IC<br />
<br />
Een overzicht van de uC pinbezetting:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|2 || PD0 || Uitgang naar controle/status indicatie LED<br />
|-<br />
|3 || PD1 || Uitgang naar voeding naar buffer IC<br />
|-<br />
|7 || PD3 || Uitgang naar selectknop<br />
|-<br />
|8 || PD4 || Uitgang naar keuze knop<br />
|-<br />
|9 || PD5 || Uitgang naar aanuitknop<br />
|-<br />
|10 || GND || massa microcontroller<br />
|-<br />
|12 || AIN0 || positieve ingang comparator; naar interne referentie spanning (1.1 volt)<br />
|-<br />
|13 || AIN1 || negatieve ingang comperator; naar de 'lader connector' (via buffer IC)<br />
|-<br />
|14 || PB2 || ingang vanaf telefoon achtergronf LED (via buffer IC met afvlak condensator), werkt alleen als de massapik erop zit<br />
|-<br />
|15 || PB3/PCINT3 || ingang vanaf spanningsdeler EH voeding<br />
|-<br />
|20 || Vcc || voeding microcontroller vanuit GSM accu<br />
|-<br />
|}<br />
<br />
<br />
Al met al hebben we het volgende schema:<br/><br />
[[Afbeelding:ETSschema.jpg|thumb|300px|centre|Electrisch schema om de uC aan te sluiten]]<br />
<br/><br />
In de uC hebben we [[#code_micro-controller|deze]] code geknald.<br/><br />
<br/><br />
Uitleg van de status LED (bij 1x 'knipper' gaat de LED 1x uit(!) ):<br />
{| {{prettytable}}<br />
|-<br />
|LED ||Uitleg <br />
|-<br />
| aan || uC is wakker en is aan het wachten of een routine uitvoeren<br />
|-<br />
| uit || uC slaapt<br />
|-<br />
| knippert 1x || ETS gaat worden opgestart <br />
|-<br />
| knippert 2x || ETS gaat worden uitgezet<br />
|-<br />
| knippert 3x || uC gaat in de slaapstand <br />
|-<br />
|}<br />
<br />
<br/><br />
<br />
=== Voeding ===<br />
Het hele ETS systeem wordt met 12 volt gevoed. Dit omdat we dan voor de telefoon en GPS ontvanger al een 12 volt adapter hebben. Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box is de 12 volt verbonden met:<br />
* Via een diode met de GSM adapter (om te voorkomen dat er stroom vanuit de GSM accu door de lader terug gaat lopen)<br />
* De GPS ontvanger adapter<br />
<br/><br/><br />
Naast de voeding van de EH hebben de mobiele telefoon en GPS-ontvanger ook een interne accu. Hier kan het systeem ook op draaien. Hierbij moet de ETS handmatig opgestart worden met de externe toetsen en de uC moet uitgeschakeld worden anders gaat die de telefoon weer uitzetten. Het uitzetten van de uC kan eenvoudig door de 'laderplug' uit de telefoon te halen. Laden hoeft immers toch niet en de uC heeft zo geen massa en dus geen voeding meer.<br />
<br/><br/><br />
<br />
=== Behuizing ===<br />
De behuizing is een 'tupperware' trommel. Lekker degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing zitten:<br />
* Mobiele telelfoon met externe knoppen en kabels<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x adapter PCB voor voeding GPS en GSM<br />
* Opvulling<br />
<br/><br/><br />
<br />
== Software ==<br />
===Howto software op de GSM installeren===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Na het installeren moeten de toegangsrechten van connectiviteit van het ETS programma nog even ingesteld worden op 'altijd toestaan'. <br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie wordt daarom direct data (0kb) verstuurd zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* minimale verplaatsing variabel<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Bluetooth verbinding opnieuw opzetten als de bluetooth communicatie uitvalt<br />
<br />
Gewenst:<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** De ETS software merkt dit na een time-out, en gaat dan opnieuw een verbinding proberen op te zetten.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging alsnog worden verzonden.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
<br />
=== Broncode ===<br />
Steven heeft de ETS broncode, Helmich en Gart hebben een backup.<br/><br />
<br/><br />
<br/><br />
<br/><br />
= In Enschede=<br />
De data die de GSM upload is dus helemaal gestript. Geen poespas, alleen de bootletter, UTC-tijd en GPS-lokatie. De server in enschede haalt deze data weer uit elkaar en verwerkt het in een database.<br />
<br />
De database regelt o.a. de volgende dingen:<br />
* Opslaan ontvangen data in database<br />
* Er wordt een nieuw track gedefinieerd als er 45 minuten lang geen data binnen gekomen is<br />
* Interfacing naar de ETS waterkaart<br />
<br/><br />
<br/><br />
<br />
<br />
= Ontwerpbeslissingen =<br />
Hier zullen de belangrijkste keuzes die gedaan zijn bij het maken van het systeem beschreven worden.<br />
<br />
== GPRS ==<br />
Het gebruik van SMS is veel makkelijker dan het gebruik van GPRS, aangezien het vanaf een microcontroller mogelijk is om direct SMS berichten te versturen. Voor GPRS is dat een stuk lastiger. GPRS is echter vele malen goedkoper, omdat we zeer weinig data versturen: 10 bytes per coördinaat. Naar schatting zou SMS rond de 50 euro per jaar kosten, waar we met GPRS aan 1 à 2 euro genoeg zouden moeten hebben voor een vaarseizoen.<br />
<br />
== Java op de telefoon ==<br />
Voor het versturen van de data zijn vier verschillende mogelijkheden: <br />
* door Java op de telefoon, <br />
* door andere software op de telefoon (symbian),<br />
* door de microcontroller <br />
* een PC.<br />
<br />
== Microcontroller ==<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS of een vooraf ingesteld alarm. Helaas vraagt de Nokia uit Series 40 platform de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Mogelijke andere opties waren:<br />
# Altijd aanlaten; maar hiervoor was het stroomverbruik te hoog.<br />
# Mechanisch starten door de knoppen in te drukken, maar dat leek een beetje omslachtig<br />
# Elektronisch schakelaars aan de knoppen solderen en deze mbv een microcontroller (uC) electrisch aan sturen. <br />
<br />
Uiteindelijke bleek de laatste optie het handigst.<br />
<br />
<br />
<br/><br/><br />
=Bijlagen=<br />
== code micro-controller ==<br />
In de uC hebben we de volgende code geknald:<br/><br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br />
<br/><br />
== Pin bezetting Nokia telefoon ==<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
===Wensen===<br />
* Snelheid meenemen in de routes (bijvoorbeeld zoiets: [http://eurosweb.student.utwente.nl/menno/tracklog-terugvaart-lichtekooi.html Tracklog terugvaart Lichtekooi]), gemaakt met [http://www.gpsvisualizer.com/map_input?form=google GPS Visualizer])<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br />
<br />
=== Opties ===<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
Pushregistery:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Bestand:ETSschema.jpg&diff=9423Bestand:ETSschema.jpg2009-07-06T09:44:43Z<p>85.145.116.50: </p>
<hr />
<div>Electrisch schema uC<br />
(De GND van de mobiele telefoon loopt door de lader van de telefoon)</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8993Ebenhaëzer Tracking System2009-06-19T21:06:33Z<p>85.145.116.50: /* Mechanisch toetsen bedienen */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' (ETS) is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via de [http://squall.student.utwente.nl/ets/ ETS website].<br />
<br />
Het systeem, gemaakt door Steven, Gart, Willem, Menno T en Helmich is gebaseerd op een Bluetooth GPS, oude mobiele telefoon en een microcontroller. De positie van de Ebenhaëzer wordt iedere halve minuut geregistreerd, indien de boot vaart, en eens per kwartier via GPRS geüpload. Hierna worden alle coördinaten op de server opgeslagen en is het mogelijk om de gevaren route te bekijken. De precieze werking van het systeem wordt hieronder beschreven.<br />
<br />
= Doel =<br />
Het doel van het systeem is periodiek GPS coördinaten van de EH (later eventueel andere boten) te loggen en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorsturen naar een internetserver. Als er geen GSM bereik is, dienen de coördinaten tijdelijk opgeslagen te worden tot er weer bereik is. Nadat de coördinaten verstuurt zijn, zal het voor iedereen mogelijk moeten zijn op de positie en gevaren route op te vragen. Uiteraard moet er getracht worden de kosten zo laag mogelijk te houden. Verder moet het systeem bij iedere tocht actief zijn, dus moet het automatisch aangaan zodra de massapik er op gaat, anders kan de schipper vergeten het aan te zetten.<br />
<br />
De realisering van de bovenstaande eisen is hieronder te lezen.<br />
<br />
Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we een goede GPS en GSM ontvangst. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
= Methode/Principe =<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br/><br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br/><br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om een bepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
= Aan boord =<br />
<br />
== Hardware ==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br/><br/><br />
=== GSM ===<br />
Nokia 6230i:<br/><br />
http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
=== GPS ontvanger ===<br />
RoyalTek RBT-2001 specificaties:<br/><br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br/><br />
<br/><br />
=== SIMkaart ===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br/><br />
=== Automatisch starten ===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren:<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br/><br />
De GPS gaan vanzelf aan als die stroom krijgt.<br/><br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS of een vooraf ingesteld alarm. Helaas vraagt de Nokia uit Series 40 platform de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Mogelijke andere opties waren:<br />
# Altijd aanlaten; maar hiervoor was het stroomverbruik te hoog.<br />
# Mechanisch starten door de knoppen in te drukken, maar dat leek een beetje omslachtig<br />
# Elektronisch schakelaars aan de knoppen solderen en deze mbv een microcontroller (uC) electrisch aan sturen. <br />
<br />
Uiteindelijke bleek de laatste optie het handigst.<br />
<br />
<br/><br/><br />
=== Elektronische aanpassingen aan de GSMknoppen===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor telefoon instellingen en software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Door gebruik te maken van de snelkeuze functies hebben 3 knoppen nodig om de java software te starten.<br />
* GSM power knop<br />
* Linker keuze knop<br />
* Select knop<br />
<br />
Deze moet op de volgende manier aangestuurd worden:<br />
powerknop 'aan' gedurende 3 seconden(telefoon gaan aan)<br/><br />
Wachten tot de GSM opgestart is.<br/><br />
Keuzetoets 'aan' gedurende 0.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (start eurostrack programma)<br/><br />
Wachten tot netwerktoegang gevraagd wordt<br />
Keuzetoets 'aan' gedurende 0.1 seconden (bevestig netwerktoegang)<br/><br />
<br/><br />
<br />
Om de ETS uit te zetten kunnen we gewoon de power knop weer 3 seconden indrukken.<br/><br />
<br/><br />
=== Microcontroller ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er langer dan een bepaalde tijd af is.<br />
<br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er heel even af is omdat er naar walstroom geschakeld wordt (tijdens het opstarten). Hierdoor kan de uC in de war komen en de GSM uit zetten ipv aan. We moeten dus ook naar de status van de GSM kijken om de juiste actie te ondernemen.<br />
<br />
Voor een goede afwerking moeten er dus twee dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden om stroomverbruik te beperken. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de massapik er minstens 1 minuut af zijn.<br />
<br />
We voeden de uC vanuit de GSM batterij, dus 3,7 volt.<br />
<br />
<br/><br />
We hebben een [http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF Atmel attiny2313] uC:<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. We hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in. Omdat de buffer niet nodig is als de uC in de slaapstand zit, wordt de voeding van de buffer ook vanuit de uC geregeld.<br />
De LED spanning is rond de 3 volt dus die kan als IO dienen.<br />
De 2,7 volt van de lader pin is te laag om als IO te dienen dus dat doen we via de intern comperator van de uC.<br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
De maximale spanning op een IO poort is: Vcc+0,5 Volt. We hebben een spanningsdeler van twee weerstanden gebruikt om de 12 volt voeding vanuit de EH om te zetten naar 3,7 volt.<br />
Om ook de uC wakker te krijgen moeten we een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
<br />
<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|2 || PD0 || Uitgang naar controle/status indicatie LED<br />
|-<br />
|3 || PD1 || Uitgang naar voeding naar buffer IC<br />
|-<br />
|7 || PD3 || Uitgang naar selectknop<br />
|-<br />
|8 || PD4 || Uitgang naar keuze knop<br />
|-<br />
|9 || PD5 || Uitgang naar aanuitknop<br />
|-<br />
|10 || GND || massa microcontroller<br />
|-<br />
|12 || AIN0 || positieve ingang comparator; naar interne referentie spanning (1.1 volt)<br />
|-<br />
|13 || AIN1 || negatieve ingang comperator; naar de 'lader connector' (via buffer IC)<br />
|-<br />
|14 || PB2 || ingang vanaf GSM Led (via buffer IC met afvlak condensator), werkt alleen als de massapik erop zit<br />
|-<br />
|15 || PB3/PCINT3 || ingang vanaf spanningsdeler EH voeding<br />
|-<br />
|20 || Vcc || voeding microcontroller vanuit GSM accu<br />
|-<br />
|}<br />
<br />
<br />
Al me al krijgen we het volgende schema:<br/><br />
[[Afbeelding:ETSschema.jpg|thumb|300px|centre|Electrisch schema om de uC aan te sluiten]]<br />
<br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
In de uC hebben we de volgende code geknald:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br />
<br />
<br />
<br/><br/><br />
<br />
=== Voeding ===<br />
Het hele ETS systeem wordt met 12 volt gevoed. Dit omdat we dan voor de telefoon en GPS ontvanger al een 12 volt adapter hebben. Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box is de 12 volt verbonden met:<br />
* Via een diode met de GSM adapter (om te voorkomen dat er stroom vanuit de GSM accu door de lader terug gaat lopen)<br />
* De GPS ontvanger adapter<br />
<br/><br/><br />
<br />
=== Behuizing ===<br />
De behuizing is een 'tupperware' trommel. Lekker degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing zitten:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x adapter PCB voor voeding GPS en GSM<br />
* En een bult pruttel om de loze ruimte op te vullen<br />
<br/><br/><br />
<br />
== Software ==<br />
===Howto software op de GSM installeren===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren moet er in de GSM bij de opties van het ETS programma toegang connectiviteit nog even op 'altijd toestaan' gezet worden.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie versturen we dus direct even data (0kb) zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Bluetooth verbinding opnieuw opzetten als de bluetooth communicatie uitvalt<br />
<br />
<br />
Gewenst:<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
<br />
<br />
=== Broncode ===<br />
Jahaa die zou je wel willen hebben he :p<br />
<br />
<br />
<br />
<br/><br/><br />
= Op het internet =<br />
=== Features ===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden. De data die de GSM upload is dus helemaal gestript. Geen poespas, alleen de bootletter, tijd en lokatie. De server haalt deze data weer uit elkaar en verwerkt het in een database.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
<br/><br />
<br/><br />
<br />
<br />
<br />
= Ontwerpbeslissingen =<br />
Hier zullen de belangrijkste keuzes die gedaan zijn bij het maken van het systeem beschreven worden.<br />
<br />
== GPRS ==<br />
Het gebruik van SMS is veel makkelijker dan het gebruik van GPRS, aangezien het vanaf een microcontroller mogelijk is om direct SMS berichten te versturen. Voor GPRS is dat een stuk lastiger. GPRS is echter vele malen goedkoper, omdat we zeer weinig data versturen: 10 bytes per coördinaat. Naar schatting zou SMS rond de 50 euro per jaar kosten, waar we met GPRS aan 1 à 2 euro genoeg zouden moeten hebben voor een vaarseizoen.<br />
<br />
== Java op de telefoon ==<br />
Voor het versturen van de data zijn vier verschillende mogelijkheden: door Java op de telefoon, door andere software op de telefoon, door de microcontroller of door een PC.<br />
<br />
== Microcontroller ==<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
===Wensen===<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br />
<br />
<br />
<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
Pushregistery:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8992Ebenhaëzer Tracking System2009-06-19T21:06:05Z<p>85.145.116.50: /* Testing */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' (ETS) is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via de [http://squall.student.utwente.nl/ets/ ETS website].<br />
<br />
Het systeem, gemaakt door Steven, Gart, Willem, Menno T en Helmich is gebaseerd op een Bluetooth GPS, oude mobiele telefoon en een microcontroller. De positie van de Ebenhaëzer wordt iedere halve minuut geregistreerd, indien de boot vaart, en eens per kwartier via GPRS geüpload. Hierna worden alle coördinaten op de server opgeslagen en is het mogelijk om de gevaren route te bekijken. De precieze werking van het systeem wordt hieronder beschreven.<br />
<br />
= Doel =<br />
Het doel van het systeem is periodiek GPS coördinaten van de EH (later eventueel andere boten) te loggen en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorsturen naar een internetserver. Als er geen GSM bereik is, dienen de coördinaten tijdelijk opgeslagen te worden tot er weer bereik is. Nadat de coördinaten verstuurt zijn, zal het voor iedereen mogelijk moeten zijn op de positie en gevaren route op te vragen. Uiteraard moet er getracht worden de kosten zo laag mogelijk te houden. Verder moet het systeem bij iedere tocht actief zijn, dus moet het automatisch aangaan zodra de massapik er op gaat, anders kan de schipper vergeten het aan te zetten.<br />
<br />
De realisering van de bovenstaande eisen is hieronder te lezen.<br />
<br />
Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we een goede GPS en GSM ontvangst. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
= Methode/Principe =<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br/><br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br/><br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om een bepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
= Aan boord =<br />
<br />
== Hardware ==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br/><br/><br />
=== GSM ===<br />
Nokia 6230i:<br/><br />
http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
=== GPS ontvanger ===<br />
RoyalTek RBT-2001 specificaties:<br/><br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br/><br />
<br/><br />
=== SIMkaart ===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br/><br />
=== Automatisch starten ===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren:<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br/><br />
De GPS gaan vanzelf aan als die stroom krijgt.<br/><br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS of een vooraf ingesteld alarm. Helaas vraagt de Nokia uit Series 40 platform de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Mogelijke andere opties waren:<br />
# Altijd aanlaten; maar hiervoor was het stroomverbruik te hoog.<br />
# Mechanisch starten door de knoppen in te drukken, maar dat leek een beetje omslachtig<br />
# Elektronisch schakelaars aan de knoppen solderen en deze mbv een microcontroller (uC) electrisch aan sturen. <br />
<br />
Uiteindelijke bleek de laatste optie het handigst.<br />
<br />
<br/><br/><br />
=== Elektronische aanpassingen aan de GSMknoppen===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor telefoon instellingen en software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Door gebruik te maken van de snelkeuze functies hebben 3 knoppen nodig om de java software te starten.<br />
* GSM power knop<br />
* Linker keuze knop<br />
* Select knop<br />
<br />
Deze moet op de volgende manier aangestuurd worden:<br />
powerknop 'aan' gedurende 3 seconden(telefoon gaan aan)<br/><br />
Wachten tot de GSM opgestart is.<br/><br />
Keuzetoets 'aan' gedurende 0.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (start eurostrack programma)<br/><br />
Wachten tot netwerktoegang gevraagd wordt<br />
Keuzetoets 'aan' gedurende 0.1 seconden (bevestig netwerktoegang)<br/><br />
<br/><br />
<br />
Om de ETS uit te zetten kunnen we gewoon de power knop weer 3 seconden indrukken.<br/><br />
<br/><br />
=== Microcontroller ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er langer dan een bepaalde tijd af is.<br />
<br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er heel even af is omdat er naar walstroom geschakeld wordt (tijdens het opstarten). Hierdoor kan de uC in de war komen en de GSM uit zetten ipv aan. We moeten dus ook naar de status van de GSM kijken om de juiste actie te ondernemen.<br />
<br />
Voor een goede afwerking moeten er dus twee dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden om stroomverbruik te beperken. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de massapik er minstens 1 minuut af zijn.<br />
<br />
We voeden de uC vanuit de GSM batterij, dus 3,7 volt.<br />
<br />
<br/><br />
We hebben een [http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF Atmel attiny2313] uC:<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. We hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in. Omdat de buffer niet nodig is als de uC in de slaapstand zit, wordt de voeding van de buffer ook vanuit de uC geregeld.<br />
De LED spanning is rond de 3 volt dus die kan als IO dienen.<br />
De 2,7 volt van de lader pin is te laag om als IO te dienen dus dat doen we via de intern comperator van de uC.<br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
De maximale spanning op een IO poort is: Vcc+0,5 Volt. We hebben een spanningsdeler van twee weerstanden gebruikt om de 12 volt voeding vanuit de EH om te zetten naar 3,7 volt.<br />
Om ook de uC wakker te krijgen moeten we een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
<br />
<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|2 || PD0 || Uitgang naar controle/status indicatie LED<br />
|-<br />
|3 || PD1 || Uitgang naar voeding naar buffer IC<br />
|-<br />
|7 || PD3 || Uitgang naar selectknop<br />
|-<br />
|8 || PD4 || Uitgang naar keuze knop<br />
|-<br />
|9 || PD5 || Uitgang naar aanuitknop<br />
|-<br />
|10 || GND || massa microcontroller<br />
|-<br />
|12 || AIN0 || positieve ingang comparator; naar interne referentie spanning (1.1 volt)<br />
|-<br />
|13 || AIN1 || negatieve ingang comperator; naar de 'lader connector' (via buffer IC)<br />
|-<br />
|14 || PB2 || ingang vanaf GSM Led (via buffer IC met afvlak condensator), werkt alleen als de massapik erop zit<br />
|-<br />
|15 || PB3/PCINT3 || ingang vanaf spanningsdeler EH voeding<br />
|-<br />
|20 || Vcc || voeding microcontroller vanuit GSM accu<br />
|-<br />
|}<br />
<br />
<br />
Al me al krijgen we het volgende schema:<br/><br />
[[Afbeelding:ETSschema.jpg|thumb|300px|centre|Electrisch schema om de uC aan te sluiten]]<br />
<br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
In de uC hebben we de volgende code geknald:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br />
<br />
<br />
<br/><br/><br />
<br />
=== Voeding ===<br />
Het hele ETS systeem wordt met 12 volt gevoed. Dit omdat we dan voor de telefoon en GPS ontvanger al een 12 volt adapter hebben. Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box is de 12 volt verbonden met:<br />
* Via een diode met de GSM adapter (om te voorkomen dat er stroom vanuit de GSM accu door de lader terug gaat lopen)<br />
* De GPS ontvanger adapter<br />
<br/><br/><br />
<br />
=== Behuizing ===<br />
De behuizing is een 'tupperware' trommel. Lekker degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing zitten:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x adapter PCB voor voeding GPS en GSM<br />
* En een bult pruttel om de loze ruimte op te vullen<br />
<br/><br/><br />
<br />
== Software ==<br />
===Howto software op de GSM installeren===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren moet er in de GSM bij de opties van het ETS programma toegang connectiviteit nog even op 'altijd toestaan' gezet worden.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie versturen we dus direct even data (0kb) zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Bluetooth verbinding opnieuw opzetten als de bluetooth communicatie uitvalt<br />
<br />
<br />
Gewenst:<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
<br />
<br />
=== Broncode ===<br />
Jahaa die zou je wel willen hebben he :p<br />
<br />
<br />
<br />
<br/><br/><br />
= Op het internet =<br />
=== Features ===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden. De data die de GSM upload is dus helemaal gestript. Geen poespas, alleen de bootletter, tijd en lokatie. De server haalt deze data weer uit elkaar en verwerkt het in een database.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
<br/><br />
<br/><br />
<br />
<br />
<br />
= Ontwerpbeslissingen =<br />
Hier zullen de belangrijkste keuzes die gedaan zijn bij het maken van het systeem beschreven worden.<br />
<br />
== GPRS ==<br />
Het gebruik van SMS is veel makkelijker dan het gebruik van GPRS, aangezien het vanaf een microcontroller mogelijk is om direct SMS berichten te versturen. Voor GPRS is dat een stuk lastiger. GPRS is echter vele malen goedkoper, omdat we zeer weinig data versturen: 10 bytes per coördinaat. Naar schatting zou SMS rond de 50 euro per jaar kosten, waar we met GPRS aan 1 à 2 euro genoeg zouden moeten hebben voor een vaarseizoen.<br />
<br />
== Java op de telefoon ==<br />
Voor het versturen van de data zijn vier verschillende mogelijkheden: door Java op de telefoon, door andere software op de telefoon, door de microcontroller of door een PC.<br />
<br />
== Microcontroller ==<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
===Wensen===<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br />
<br />
<br />
<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
Pushregistery:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8990Ebenhaëzer Tracking System2009-06-19T20:01:13Z<p>85.145.116.50: /* Microcontroller */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' (ETS) is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via de [http://squall.student.utwente.nl/ets/ ETS website].<br />
<br />
Het systeem, gemaakt door Steven, Gart, Willem, Menno T en Helmich is gebaseerd op een Bluetooth GPS, oude mobiele telefoon en een microcontroller. De positie van de Ebenhaëzer wordt iedere halve minuut geregistreerd, indien de boot vaart, en eens per kwartier via GPRS geüpload. Hierna worden alle coördinaten op de server opgeslagen en is het mogelijk om de gevaren route te bekijken. De precieze werking van het systeem wordt hieronder beschreven.<br />
<br />
= Doel =<br />
Het doel van het systeem is periodiek GPS coördinaten van de EH (later eventueel andere boten) te loggen en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorsturen naar een internetserver. Als er geen GSM bereik is, dienen de coördinaten tijdelijk opgeslagen te worden tot er weer bereik is. Nadat de coördinaten verstuurt zijn, zal het voor iedereen mogelijk moeten zijn op de positie en gevaren route op te vragen. Uiteraard moet er getracht worden de kosten zo laag mogelijk te houden. Verder moet het systeem bij iedere tocht actief zijn, dus moet het automatisch aangaan zodra de massapik er op gaat, anders kan de schipper vergeten het aan te zetten.<br />
<br />
De realisering van de bovenstaande eisen is hieronder te lezen.<br />
<br />
Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we een goede GPS en GSM ontvangst. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
= Methode/Principe =<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br/><br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br/><br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om een bepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
= Aan boord =<br />
<br />
== Hardware ==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br/><br/><br />
=== GSM ===<br />
Nokia 6230i:<br/><br />
http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
=== GPS ontvanger ===<br />
RoyalTek RBT-2001 specificaties:<br/><br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br/><br />
<br/><br />
=== SIMkaart ===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br/><br />
=== Automatisch starten ===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren:<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br/><br />
De GPS gaan vanzelf aan als die stroom krijgt.<br/><br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS of een vooraf ingesteld alarm. Helaas vraagt de Nokia uit Series 40 platform de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Mogelijke andere opties waren:<br />
# Altijd aanlaten; maar hiervoor was het stroomverbruik te hoog.<br />
# Mechanisch starten door de knoppen in te drukken, maar dat leek een beetje omslachtig<br />
# Elektronisch schakelaars aan de knoppen solderen en deze mbv een microcontroller (uC) electrisch aan sturen. <br />
<br />
Uiteindelijke bleek de laatste optie het handigst.<br />
<br />
<br/><br/><br />
=== Elektronische aanpassingen aan de GSMknoppen===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor telefoon instellingen en software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Door gebruik te maken van de snelkeuze functies hebben 3 knoppen nodig om de java software te starten.<br />
* GSM power knop<br />
* Linker keuze knop<br />
* Select knop<br />
<br />
Deze moet op de volgende manier aangestuurd worden:<br />
powerknop 'aan' gedurende 3 seconden(telefoon gaan aan)<br/><br />
Wachten tot de GSM opgestart is.<br/><br />
Keuzetoets 'aan' gedurende 0.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (start eurostrack programma)<br/><br />
Wachten tot netwerktoegang gevraagd wordt<br />
Keuzetoets 'aan' gedurende 0.1 seconden (bevestig netwerktoegang)<br/><br />
<br/><br />
<br />
Om de ETS uit te zetten kunnen we gewoon de power knop weer 3 seconden indrukken.<br/><br />
<br/><br />
=== Microcontroller ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er langer dan een bepaalde tijd af is.<br />
<br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er heel even af is omdat er naar walstroom geschakeld wordt (tijdens het opstarten). Hierdoor kan de uC in de war komen en de GSM uit zetten ipv aan. We moeten dus ook naar de status van de GSM kijken om de juiste actie te ondernemen.<br />
<br />
Voor een goede afwerking moeten er dus twee dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden om stroomverbruik te beperken. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de massapik er minstens 1 minuut af zijn.<br />
<br />
We voeden de uC vanuit de GSM batterij, dus 3,7 volt.<br />
<br />
<br/><br />
We hebben een [http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF Atmel attiny2313] uC:<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. We hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in. Omdat de buffer niet nodig is als de uC in de slaapstand zit, wordt de voeding van de buffer ook vanuit de uC geregeld.<br />
De LED spanning is rond de 3 volt dus die kan als IO dienen.<br />
De 2,7 volt van de lader pin is te laag om als IO te dienen dus dat doen we via de intern comperator van de uC.<br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
De maximale spanning op een IO poort is: Vcc+0,5 Volt. We hebben een spanningsdeler van twee weerstanden gebruikt om de 12 volt voeding vanuit de EH om te zetten naar 3,7 volt.<br />
Om ook de uC wakker te krijgen moeten we een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
<br />
<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|2 || PD0 || Uitgang naar controle/status indicatie LED<br />
|-<br />
|3 || PD1 || Uitgang naar voeding naar buffer IC<br />
|-<br />
|7 || PD3 || Uitgang naar selectknop<br />
|-<br />
|8 || PD4 || Uitgang naar keuze knop<br />
|-<br />
|9 || PD5 || Uitgang naar aanuitknop<br />
|-<br />
|10 || GND || massa microcontroller<br />
|-<br />
|12 || AIN0 || positieve ingang comparator; naar interne referentie spanning (1.1 volt)<br />
|-<br />
|13 || AIN1 || negatieve ingang comperator; naar de 'lader connector' (via buffer IC)<br />
|-<br />
|14 || PB2 || ingang vanaf GSM Led (via buffer IC met afvlak condensator), werkt alleen als de massapik erop zit<br />
|-<br />
|15 || PB3/PCINT3 || ingang vanaf spanningsdeler EH voeding<br />
|-<br />
|20 || Vcc || voeding microcontroller vanuit GSM accu<br />
|-<br />
|}<br />
<br />
<br />
Al me al krijgen we het volgende schema:<br/><br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
<br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
In de uC hebben we de volgende code geknald:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br />
<br />
<br />
<br/><br/><br />
<br />
=== Voeding ===<br />
Het hele ETS systeem wordt met 12 volt gevoed. Dit omdat we dan voor de telefoon en GPS ontvanger al een 12 volt adapter hebben. Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box is de 12 volt verbonden met:<br />
* Via een diode met de GSM adapter (om te voorkomen dat er stroom vanuit de GSM accu door de lader terug gaat lopen)<br />
* De GPS ontvanger adapter<br />
<br/><br/><br />
<br />
=== Behuizing ===<br />
De behuizing is een 'tupperware' trommel. Lekker degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing zitten:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x adapter PCB voor voeding GPS en GSM<br />
* En een bult pruttel om de loze ruimte op te vullen<br />
<br/><br/><br />
<br />
== Software ==<br />
===Howto software op de GSM installeren===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren moet er in de GSM bij de opties van het ETS programma toegang connectiviteit nog even op 'altijd toestaan' gezet worden.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie versturen we dus direct even data (0kb) zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Bluetooth verbinding opnieuw opzetten als de bluetooth communicatie uitvalt<br />
<br />
<br />
Gewenst:<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
<br />
<br />
=== Broncode ===<br />
Jahaa die zou je wel willen hebben he :p<br />
<br />
<br />
<br />
<br/><br/><br />
= Op het internet =<br />
=== Features ===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden. De data die de GSM upload is dus helemaal gestript. Geen poespas, alleen de bootletter, tijd en lokatie. De server haalt deze data weer uit elkaar en verwerkt het in een database.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
<br/><br />
<br/><br />
<br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
<br />
<br />
= Ontwerpbeslissingen =<br />
Hier zullen de belangrijkste keuzes die gedaan zijn bij het maken van het systeem beschreven worden.<br />
<br />
== GPRS ==<br />
Het gebruik van SMS is veel makkelijker dan het gebruik van GPRS, aangezien het vanaf een microcontroller mogelijk is om direct SMS berichten te versturen. Voor GPRS is dat een stuk lastiger. GPRS is echter vele malen goedkoper, omdat we zeer weinig data versturen: 10 bytes per coördinaat. Naar schatting zou SMS rond de 50 euro per jaar kosten, waar we met GPRS aan 1 à 2 euro genoeg zouden moeten hebben voor een vaarseizoen.<br />
<br />
== Java op de telefoon ==<br />
Voor het versturen van de data zijn vier verschillende mogelijkheden: door Java op de telefoon, door andere software op de telefoon, door de microcontroller of door een PC.<br />
<br />
== Microcontroller ==<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
===Wensen===<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br />
<br />
<br />
<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
Pushregistery:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8989Ebenhaëzer Tracking System2009-06-19T19:32:29Z<p>85.145.116.50: </p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' (ETS) is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via de [http://squall.student.utwente.nl/ets/ ETS website].<br />
<br />
Het systeem, gemaakt door Steven, Gart, Willem, Menno T en Helmich is gebaseerd op een Bluetooth GPS, oude mobiele telefoon en een microcontroller. De positie van de Ebenhaëzer wordt iedere halve minuut geregistreerd, indien de boot vaart, en eens per kwartier via GPRS geüpload. Hierna worden alle coördinaten op de server opgeslagen en is het mogelijk om de gevaren route te bekijken. De precieze werking van het systeem wordt hieronder beschreven.<br />
<br />
= Doel =<br />
Het doel van het systeem is periodiek GPS coördinaten van de EH (later eventueel andere boten) te loggen en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorsturen naar een internetserver. Als er geen GSM bereik is, dienen de coördinaten tijdelijk opgeslagen te worden tot er weer bereik is. Nadat de coördinaten verstuurt zijn, zal het voor iedereen mogelijk moeten zijn op de positie en gevaren route op te vragen. Uiteraard moet er getracht worden de kosten zo laag mogelijk te houden. Verder moet het systeem bij iedere tocht actief zijn, dus moet het automatisch aangaan zodra de massapik er op gaat, anders kan de schipper vergeten het aan te zetten.<br />
<br />
De realisering van de bovenstaande eisen is hieronder te lezen.<br />
<br />
Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we een goede GPS en GSM ontvangst. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
= Methode/Principe =<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br/><br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br/><br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om een bepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
= Aan boord =<br />
<br />
== Hardware ==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br/><br/><br />
=== GSM ===<br />
Nokia 6230i:<br/><br />
http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
=== GPS ontvanger ===<br />
RoyalTek RBT-2001 specificaties:<br/><br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br/><br />
<br/><br />
=== SIMkaart ===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br/><br />
=== Automatisch starten ===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren:<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br/><br />
De GPS gaan vanzelf aan als die stroom krijgt.<br/><br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS of een vooraf ingesteld alarm. Helaas vraagt de Nokia uit Series 40 platform de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Mogelijke andere opties waren:<br />
# Altijd aanlaten; maar hiervoor was het stroomverbruik te hoog.<br />
# Mechanisch starten door de knoppen in te drukken, maar dat leek een beetje omslachtig<br />
# Elektronisch schakelaars aan de knoppen solderen en deze mbv een microcontroller (uC) electrisch aan sturen. <br />
<br />
Uiteindelijke bleek de laatste optie het handigst.<br />
<br />
<br/><br/><br />
=== Elektronische aanpassingen aan de GSMknoppen===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor telefoon instellingen en software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Door gebruik te maken van de snelkeuze functies hebben 3 knoppen nodig om de java software te starten.<br />
* GSM power knop<br />
* Linker keuze knop<br />
* Select knop<br />
<br />
Deze moet op de volgende manier aangestuurd worden:<br />
powerknop 'aan' gedurende 3 seconden(telefoon gaan aan)<br/><br />
Wachten tot de GSM opgestart is.<br/><br />
Keuzetoets 'aan' gedurende 0.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (start eurostrack programma)<br/><br />
Wachten tot netwerktoegang gevraagd wordt<br />
Keuzetoets 'aan' gedurende 0.1 seconden (bevestig netwerktoegang)<br/><br />
<br/><br />
<br />
Om de ETS uit te zetten kunnen we gewoon de power knop weer 3 seconden indrukken.<br/><br />
<br/><br />
=== Microcontroller ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er langer dan een bepaalde tijd af is.<br />
<br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er heel even af is omdat er naar walstroom geschakeld wordt (tijdens het opstarten). Hierdoor kan de uC in de war komen en de GSM uit zetten ipv aan. We moeten dus ook naar de status van de GSM kijken om de juiste actie te ondernemen.<br />
<br />
Voor een goede afwerking moeten er dus twee dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden om stroomverbruik te beperken. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de massapik er minstens 1 minuut af zijn.<br />
<br />
We voeden de uC vanuit de GSM batterij, dus 3,7 volt.<br />
<br />
<br/><br />
We hebben een [http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF Atmel attiny2313] uC:<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. We hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in. Omdat de buffer niet nodig is als de uC in de slaapstand zit, wordt de voeding van de buffer ook vanuit de uC geregeld.<br />
De LED spanning is rond de 3 volt dus die kan als IO dienen.<br />
De 2,7 volt van de lader pin is te laag om als IO te dienen dus dat doen we via de intern comperator van de uC.<br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
De maximale spanning op een IO poort is: Vcc+0,5 Volt. We hebben een spanningsdeler van twee weerstanden gebruikt om de 12 volt voeding vanuit de EH om te zetten naar 3,7 volt.<br />
Om ook de uC wakker te krijgen moeten we een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
<br />
<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|2 || PD0 || Uitgang naar controle/status indicatie LED<br />
|-<br />
|3 || PD1 || Uitgang naar voeding naar buffer IC<br />
|-<br />
|7 || PD3 || Uitgang naar selectknop<br />
|-<br />
|8 || PD4 || Uitgang naar keuze knop<br />
|-<br />
|9 || PD5 || Uitgang naar aanuitknop<br />
|-<br />
|10 || GND || massa microcontroller<br />
|-<br />
|12 || AIN0 || positieve ingang comparator; naar interne referentie spanning (1.1 volt)<br />
|-<br />
|13 || AIN1 || negatieve ingang comperator; naar de 'lader connector' (via buffer IC)<br />
|-<br />
|14 || PB2 || ingang vanaf GSM Led (via buffer IC met afvlak condensator), werkt alleen als de massapik erop zit<br />
|-<br />
|15 || PB2/PCINT3 || ingang vanaf spanningsdeler EH voeding<br />
|-<br />
|20 || Vcc || voeding microcontroller vanuit GSM accu<br />
|-<br />
|}<br />
<br />
<br />
Al me al krijgen we het volgende schema:<br/><br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
<br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
In de uC hebben we de volgende code geknald:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br />
<br />
<br />
<br/><br/><br />
<br />
=== Voeding ===<br />
Het hele ETS systeem wordt met 12 volt gevoed. Dit omdat we dan voor de telefoon en GPS ontvanger al een 12 volt adapter hebben. Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box is de 12 volt verbonden met:<br />
* Via een diode met de GSM adapter (om te voorkomen dat er stroom vanuit de GSM accu door de lader terug gaat lopen)<br />
* De GPS ontvanger adapter<br />
<br/><br/><br />
<br />
=== Behuizing ===<br />
De behuizing is een 'tupperware' trommel. Lekker degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing zitten:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x adapter PCB voor voeding GPS en GSM<br />
* En een bult pruttel om de loze ruimte op te vullen<br />
<br/><br/><br />
<br />
== Software ==<br />
===Howto software op de GSM installeren===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren moet er in de GSM bij de opties van het ETS programma toegang connectiviteit nog even op 'altijd toestaan' gezet worden.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie versturen we dus direct even data (0kb) zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Bluetooth verbinding opnieuw opzetten als de bluetooth communicatie uitvalt<br />
<br />
<br />
Gewenst:<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
<br />
<br />
=== Broncode ===<br />
Jahaa die zou je wel willen hebben he :p<br />
<br />
<br />
<br />
<br/><br/><br />
= Op het internet =<br />
=== Features ===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden. De data die de GSM upload is dus helemaal gestript. Geen poespas, alleen de bootletter, tijd en lokatie. De server haalt deze data weer uit elkaar en verwerkt het in een database.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
<br/><br />
<br/><br />
<br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
<br />
<br />
= Ontwerpbeslissingen =<br />
Hier zullen de belangrijkste keuzes die gedaan zijn bij het maken van het systeem beschreven worden.<br />
<br />
== GPRS ==<br />
Het gebruik van SMS is veel makkelijker dan het gebruik van GPRS, aangezien het vanaf een microcontroller mogelijk is om direct SMS berichten te versturen. Voor GPRS is dat een stuk lastiger. GPRS is echter vele malen goedkoper, omdat we zeer weinig data versturen: 10 bytes per coördinaat. Naar schatting zou SMS rond de 50 euro per jaar kosten, waar we met GPRS aan 1 à 2 euro genoeg zouden moeten hebben voor een vaarseizoen.<br />
<br />
== Java op de telefoon ==<br />
Voor het versturen van de data zijn vier verschillende mogelijkheden: door Java op de telefoon, door andere software op de telefoon, door de microcontroller of door een PC.<br />
<br />
== Microcontroller ==<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
===Wensen===<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br />
<br />
<br />
<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
Pushregistery:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8988Ebenhaëzer Tracking System2009-06-19T18:50:42Z<p>85.145.116.50: </p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' (ETS) is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via de [http://squall.student.utwente.nl/ets/ ETS website].<br />
<br />
Het systeem, gemaakt door Steven, Gart, Willem, Menno T en Helmich is gebaseerd op een Bluetooth GPS, oude mobiele telefoon en een microcontroller. De positie van de Ebenhaëzer wordt iedere halve minuut geregistreerd, indien de boot vaart, en eens per kwartier via GPRS geüpload. Hierna worden alle coördinaten op de server opgeslagen en is het mogelijk om de gevaren route te bekijken. De precieze werking van het systeem wordt hieronder beschreven.<br />
<br />
= Doel =<br />
Het doel van het systeem is periodiek GPS coördinaten van de EH (later eventueel andere boten) te loggen en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorsturen naar een internetserver. Als er geen GSM bereik is, dienen de coördinaten tijdelijk opgeslagen te worden tot er weer bereik is. Nadat de coördinaten verstuurt zijn, zal het voor iedereen mogelijk moeten zijn op de positie en gevaren route op te vragen. Uiteraard moet er getracht worden de kosten zo laag mogelijk te houden. Verder moet het systeem bij iedere tocht actief zijn, dus moet het automatisch aangaan zodra de massapik er op gaat, anders kan de schipper vergeten het aan te zetten.<br />
<br />
De realisering van de bovenstaande eisen is hieronder te lezen.<br />
<br />
Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we een goede GPS en GSM ontvangst. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
= Methode/Principe =<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br/><br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br/><br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om een bepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
= Aan boord =<br />
<br />
== Hardware ==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
=== GSM ===<br />
Nokia 6230i:<br/><br />
http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
=== GPS ontvanger ===<br />
RoyalTek RBT-2001 specificaties:<br/><br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br/><br />
=== SIMkaart ===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br />
=== Automatisch starten ===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren:<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br/><br />
De GPS gaan vanzelf aan als die stroom krijgt.<br/><br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS of een vooraf ingesteld alarm. Helaas vraagt de Nokia uit Series 40 platform de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Mogelijke andere opties waren:<br />
# Altijd aanlaten; maar hiervoor was het stroomverbruik te hoog.<br />
# Mechanisch starten door de knoppen in te drukken, maar dat leek een beetje omslachtig<br />
# Elektronisch schakelaars aan de knoppen solderen en deze mbv een microcontroller (uC) electrisch aan sturen. <br />
<br />
Uiteindelijke bleek de laatste optie het handigst.<br />
<br />
<br />
=== Elektronische aanpassingen aan de GSMknoppen===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor telefoon instellingen en software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Door gebruik te maken van de snelkeuze functies hebben 3 knoppen nodig om de java software te starten.<br />
* GSM power knop<br />
* Linker keuze knop<br />
* Select knop<br />
<br />
Deze moet op de volgende manier aangestuurd worden:<br />
powerknop 'aan' gedurende 3 seconden(telefoon gaan aan)<br/><br />
Wachten tot de GSM opgestart is.<br/><br />
Keuzetoets 'aan' gedurende 0.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
Wachten tot de de map geopend is.<br/><br />
Selecttoets 'aan' gedurende 0.1 seconden (start eurostrack programma)<br/><br />
Wachten tot netwerktoegang gevraagd wordt<br />
Keuzetoets 'aan' gedurende 0.1 seconden (bevestig netwerktoegang)<br/><br />
<br/><br />
<br />
Om de ETS uit te zetten kunnen we gewoon de power knop weer 3 seconden indrukken.<br/><br />
<br />
=== Microcontroller ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er langer dan een bepaalde tijd af is.<br />
<br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er heel even af is omdat er naar walstroom geschakeld wordt (tijdens het opstarten). Hierdoor kan de uC in de war komen en de GSM uit zetten ipv aan. We moeten dus ook naar de status van de GSM kijken om de juiste actie te ondernemen.<br />
<br />
Voor een goede afwerking moeten er dus twee dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden om stroomverbruik te beperken. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de massapik er minstens 1 minuut af zijn.<br />
<br />
We voeden de uC vanuit de GSM batterij, dus 3,7 volt.<br />
<br />
<br/><br />
We hebben een [http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF Atmel attiny2313] uC:<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. We hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in:<br />
<br />
Comperator: (kijkt naar de GSM status als de massapik eraf is. De spanning is te laag om als IO te dienen, vandaar de comperator)<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar de 'lader connector' <br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
PB2/PCINT2 PIN 14 = naar GSM Led, werkt alleen als de massapik erop zit<br />
<br />
<br/><br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
De maximale spanning op een IO poort is: Vcc+0,5 Volt. We hebben een spanningsdeler van twee weerstanden gebruikt om de 12 volt voeding vanuit de EH om te zetten naar 3,7 volt.<br />
Om ook deuC wakker te krijgen moeten we een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
PIN15 - IO - ingang - PB2/PCINT3 <br/><br />
<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PD0 PIN2 = status indicatie led<br/><br />
PD1 PIN3 = voeding naar buffer IC<br/><br />
PD3 PIN7 = selectknop<br/><br />
PD4 PIN8 = keuze knop<br/><br />
PD5 PIN9 = aanuitknop<br/><br />
<br/><br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
<br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
Complete code:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br />
<br />
<br />
<br/><br />
<br />
=== Voeding ===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* Een diode in serie om te voorkomen dat er stroom vanuit de GSM accu door de lader terug gaat lopen.<br />
<br/><br />
<br />
=== Behuizing ===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
== Software ==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
---<br />
Na een week stilstaan is de GPS accu leeg. Als je dan de voeding inschakelt, gaat alles wel aan, maar als je vervolgens heel even de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. De GSM blijft wel aan omdat die accu nog wel vol is. Op dat moment vervalt de bluetooth communicatie. Dit is opgelost in de java software door de bluetooth verbinding te controleren. Zodra er een bepaalde tijd geen data komt wordt de verbinding opnieuw op gezet.<br />
---<br />
<br />
=== Broncode ===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
= Op het internet =<br />
=== Features ===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
=== Howto ===<br />
<br/><br/><br />
<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
= Ontwerpbeslissingen =<br />
Hier zullen de belangrijkste keuzes die gedaan zijn bij het maken van het systeem beschreven worden.<br />
<br />
== GPRS ==<br />
Het gebruik van SMS is veel makkelijker dan het gebruik van GPRS, aangezien het vanaf een microcontroller mogelijk is om direct SMS berichten te versturen. Voor GPRS is dat een stuk lastiger. GPRS is echter vele malen goedkoper, omdat we zeer weinig data versturen: 10 bytes per coördinaat. Naar schatting zou SMS rond de 50 euro per jaar kosten, waar we met GPRS aan 1 à 2 euro genoeg zouden moeten hebben voor een vaarseizoen.<br />
<br />
== Java op de telefoon ==<br />
Voor het versturen van de data zijn vier verschillende mogelijkheden: door Java op de telefoon, door andere software op de telefoon, door de microcontroller of door een PC.<br />
<br />
== Microcontroller ==<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
Pushregistery:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8985Ebenhaëzer Tracking System2009-06-17T21:04:45Z<p>85.145.116.50: /* Wie gaat wat doen? */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# <s>Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt</s><br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** <s>breadbord met optocouplers bouwen > beta</s><br />
** <s>GSM accu gebruiken om PCB te voeden</s><br />
** <s>microcontroller PCB aansluiten aan GSM > beta</s><br />
** <s>comperator functie uitzoeken</s><br />
** <s>sleepfunctie + wake up uitzoeken</s><br />
* PCB maken<br />
* <s>Inbouwen in behuizing</s><br />
* <s>Voeding voor ETS regelen</s><br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* <s>microcontroller</s> <br />
** <s>alternatieve voeding pcb??</s><br />
* <s>Java software aanpassen aan onze wensen</s><br />
** <s>Bluetooth watchdog?</s><br />
** <s>Kwaliteit GPS fix meenemen, geen data voor beschikbaar</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br/><br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan. <br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
<br />
Na een week stilstaan is de GPS accu leeg. Als je dan de voeding inschakelt, gaat alles wel aan, maar als je vervolgens heel even de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. De GSM blijft wel aan omdat die accu nog wel vol is. Op dat moment vervalt de bluetooth communicatie. Dit is op gelost in de java software door de bluetooth verbinding te controleren. Zodra er een bepaalde tijd geen data komt wordt de verbinding opnieuw op gezet.<br />
<br />
Voor een goede afwerking moeten er 2 dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
(de telefoonstatus moet bekend zijn zodat de uC weet of de telefoon aan moet of uit. Een probleem kan ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Een telefoon status kan dit voorkomen.)<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de Massapik er minstens 1 minuut af zijn.<br />
<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. WE hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in:<br />
<br />
Comperator: (kijkt naar de GSM status als de massapik eraf is. De spanning is te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar de 'lader connector' <br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
PB2/PCINT2 PIN 14 = naar GSM Led, werkt alleen als de massapik erop zit<br />
<br />
<br/><br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
We moeten een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
PIN15 - IO - ingang - PB2/PCINT3 <br/><br />
<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PD0 PIN2 = status indicatie led<br/><br />
PD1 PIN3 = voeding naar buffer IC<br/><br />
PD3 PIN7 = selectknop<br/><br />
PD4 PIN8 = keuze knop<br/><br />
PD5 PIN9 = aanuitknop<br/><br />
<br/><br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
Complete code:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8984Ebenhaëzer Tracking System2009-06-17T21:04:03Z<p>85.145.116.50: /* Lange termijn / optimalisatie */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** <s>breadbord met optocouplers bouwen > beta</s><br />
** <s>GSM accu gebruiken om PCB te voeden</s><br />
** <s>microcontroller PCB aansluiten aan GSM > beta</s><br />
** <s>comperator functie uitzoeken</s><br />
** <s>sleepfunctie + wake up uitzoeken</s><br />
* PCB maken<br />
* <s>Inbouwen in behuizing</s><br />
* <s>Voeding voor ETS regelen</s><br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* <s>microcontroller</s> <br />
** <s>alternatieve voeding pcb??</s><br />
* <s>Java software aanpassen aan onze wensen</s><br />
** <s>Bluetooth watchdog?</s><br />
** <s>Kwaliteit GPS fix meenemen, geen data voor beschikbaar</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br/><br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan. <br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
<br />
Na een week stilstaan is de GPS accu leeg. Als je dan de voeding inschakelt, gaat alles wel aan, maar als je vervolgens heel even de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. De GSM blijft wel aan omdat die accu nog wel vol is. Op dat moment vervalt de bluetooth communicatie. Dit is op gelost in de java software door de bluetooth verbinding te controleren. Zodra er een bepaalde tijd geen data komt wordt de verbinding opnieuw op gezet.<br />
<br />
Voor een goede afwerking moeten er 2 dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
(de telefoonstatus moet bekend zijn zodat de uC weet of de telefoon aan moet of uit. Een probleem kan ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Een telefoon status kan dit voorkomen.)<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de Massapik er minstens 1 minuut af zijn.<br />
<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. WE hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in:<br />
<br />
Comperator: (kijkt naar de GSM status als de massapik eraf is. De spanning is te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar de 'lader connector' <br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
PB2/PCINT2 PIN 14 = naar GSM Led, werkt alleen als de massapik erop zit<br />
<br />
<br/><br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
We moeten een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
PIN15 - IO - ingang - PB2/PCINT3 <br/><br />
<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PD0 PIN2 = status indicatie led<br/><br />
PD1 PIN3 = voeding naar buffer IC<br/><br />
PD3 PIN7 = selectknop<br/><br />
PD4 PIN8 = keuze knop<br/><br />
PD5 PIN9 = aanuitknop<br/><br />
<br/><br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
Complete code:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8983Ebenhaëzer Tracking System2009-06-17T21:02:49Z<p>85.145.116.50: /* korte termijn */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** <s>breadbord met optocouplers bouwen > beta</s><br />
** <s>GSM accu gebruiken om PCB te voeden</s><br />
** <s>microcontroller PCB aansluiten aan GSM > beta</s><br />
** <s>comperator functie uitzoeken</s><br />
** <s>sleepfunctie + wake up uitzoeken</s><br />
* PCB maken<br />
* <s>Inbouwen in behuizing</s><br />
* <s>Voeding voor ETS regelen</s><br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br/><br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan. <br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
<br />
Na een week stilstaan is de GPS accu leeg. Als je dan de voeding inschakelt, gaat alles wel aan, maar als je vervolgens heel even de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. De GSM blijft wel aan omdat die accu nog wel vol is. Op dat moment vervalt de bluetooth communicatie. Dit is op gelost in de java software door de bluetooth verbinding te controleren. Zodra er een bepaalde tijd geen data komt wordt de verbinding opnieuw op gezet.<br />
<br />
Voor een goede afwerking moeten er 2 dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
(de telefoonstatus moet bekend zijn zodat de uC weet of de telefoon aan moet of uit. Een probleem kan ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Een telefoon status kan dit voorkomen.)<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de Massapik er minstens 1 minuut af zijn.<br />
<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. WE hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in:<br />
<br />
Comperator: (kijkt naar de GSM status als de massapik eraf is. De spanning is te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar de 'lader connector' <br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
PB2/PCINT2 PIN 14 = naar GSM Led, werkt alleen als de massapik erop zit<br />
<br />
<br/><br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
We moeten een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
PIN15 - IO - ingang - PB2/PCINT3 <br/><br />
<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PD0 PIN2 = status indicatie led<br/><br />
PD1 PIN3 = voeding naar buffer IC<br/><br />
PD3 PIN7 = selectknop<br/><br />
PD4 PIN8 = keuze knop<br/><br />
PD5 PIN9 = aanuitknop<br/><br />
<br/><br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
Complete code:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8982Ebenhaëzer Tracking System2009-06-17T20:58:51Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br/><br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan. <br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
<br />
Na een week stilstaan is de GPS accu leeg. Als je dan de voeding inschakelt, gaat alles wel aan, maar als je vervolgens heel even de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. De GSM blijft wel aan omdat die accu nog wel vol is. Op dat moment vervalt de bluetooth communicatie. Dit is op gelost in de java software door de bluetooth verbinding te controleren. Zodra er een bepaalde tijd geen data komt wordt de verbinding opnieuw op gezet.<br />
<br />
Voor een goede afwerking moeten er 2 dingen bekend zijn:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
(de telefoonstatus moet bekend zijn zodat de uC weet of de telefoon aan moet of uit. Een probleem kan ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Een telefoon status kan dit voorkomen.)<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om de uC uit de slaapstand te halen. Om niet bij elke omschakeling naar walstroom de hele ETS opnieuw op te starten moet de Massapik er minstens 1 minuut af zijn.<br />
<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
<br />
'''Telefoonstatus'''<br/><br />
Het vervelende was dat we op de GSM geen pin konden vinden die een logisch uitkomst gaf overeenkomstig met de GSM status. WE hebben een work-around gemaakt:<br />
* We zetten de achtergrond LED verlichting van de GSM op 'altijd aan' en tappen dit af. Dit werkt alleen als de massapik erop zit<br />
* Een bepaalde pin (lader??) geeft, als de massapik eraf is, een spanning van 2,7 volt als de GSM aan is en 0 als de GSM uit is. Dit werkt dus alleen als de massapik eraf is.<br />
Beide signalen tappen we via een buffer af en sturen die de uC in:<br />
<br />
Comperator: (kijkt naar de GSM status als de massapik eraf is. De spanning is te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar de 'lader connector' <br/><br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
PB2/PCINT2 PIN 14 = naar GSM Led, werkt alleen als de massapik erop zit<br />
<br />
<br/><br />
<br />
'''Massapik status'''<br/><br />
IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
We moeten een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
PIN15 - IO - ingang - PB2/PCINT3 <br/><br />
<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PD0 PIN2 = status indicatie led<br/><br />
PD1 PIN3 = voeding naar buffer IC<br/><br />
PD3 PIN7 = selectknop<br/><br />
PD4 PIN8 = keuze knop<br/><br />
PD5 PIN9 = aanuitknop<br/><br />
<br/><br />
<br />
'''Let er bij AVR studio op dat je ook daad werkelijk de juiste HEX file upload. Dat moet je nog apart instellen bij de programmer opties.'''<br />
<br />
<br/><br />
<br />
Complete code:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
<br />
#define F_CPU 1000000UL // 1 MHz<br />
#include <util/delay.h><br />
<br />
<br />
// PB3/PCINT3 PIN15 = EH voedingssignaal<br />
// PB2/PCINT2 PIN14 = GSM Led, werkt alleen als er voeding is<br />
// PB1/AIN0 PIN13 = GSM lader, werkt alleen als er geen voeding is, via comparator<br />
// Comparator uitgang = (ACSR, ACO)<br />
<br />
// PD0 PIN2 = controle led<br />
// PD1 PIN3 = buffer<br />
// PD3 PIN7 = selectknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = aanuitknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
<br />
PCMSK = (1 << PCINT3); // stel: PCINT3 (PB3) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
PORTD |= (1 << PD1); // buffer aan<br />
PORTD |= (1 << PD0); // statusled aan<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 20 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_onoff() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD5); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD5); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan of uit is<br />
}<br />
<br />
<br />
void ets_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om snelkeuze opties te kiezen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); <br />
_delay_ms(1900); // wacht 2 sec voor openen snelkeuze menu<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om verzamel map te openen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor openen verzamelmap<br />
<br />
PORTD |= (1 << PD3); // Activeer select knop gedurende 0.1 sec om ets programma te starten<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer select knop<br />
_delay_ms(2900); // wacht 3 sec voor starten programma en tot netwerktoegang gevraagd wordt<br />
<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec om netwerktoegang te bevestigen<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
void led(int i) {<br />
for (; i > 0; i--) {<br />
PORTD &= ~(1 << PD0);<br />
_delay_ms(500);<br />
PORTD |= (1 << PD0);<br />
_delay_ms(500);<br />
}<br />
_delay_ms(1000);<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
_delay_ms(6000); // wacht 6s voor stabilisatie<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
led(1);<br />
// Wacht voor omzetten walstroom<br />
for (int i = 0; i < 10; i++) {<br />
_delay_ms(6000);<br />
}<br />
if (bit_is_clear(PINB, PB3) && bit_is_clear(ACSR, ACO)) // Voeding is uit en GSM lader is aan: GSM uitzetten<br />
{<br />
gsm_onoff(); // schakel GSM uit<br />
}<br />
}<br />
else if (bit_is_set(PINB, PB3) && bit_is_clear(PINB, PB2)) // Voeding is aan en GSM led is uit: GSM aanzetten<br />
{<br />
led(2);<br />
gsm_onoff(); // schakel GSM in <br />
ets_start(); // Start de ETS op <br />
}<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
led(3);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8976Ebenhaëzer Tracking System2009-06-09T08:59:44Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS en interface naar GPS ontvanger<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable (U=2.7volt)<br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br/><br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br/><br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een optocoupler gebruikt worden, die de twee ringen als het ware kortsluit. De ingang van de optocoupler zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. (PS in eerste instantie gebruikten we transistoren maar dat kan niet omdat er dan een gemeenschappelijke massa gemaakt moet worden)<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Optcocouplers worden gebruikt om de 2 ringen kort te sluiten waardoor die bewuste toets wordt bedient.]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn er parallel aan de GSM zijde van de microcontroller nog externe drukschakelaars geplaatst.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan. <br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v op de "Vout" van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
We moeten een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
PIN14 - IO - ingang - PB2/PCINT2 <br/><br />
<s>PIN 6 - IO ingang - PD2/INT0 - </s><br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator) is omgezet naar INT0</s><br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<br/><br />
Getest: werkt!<br />
<br/><br />
'''LET OP: Hier wordt nog een verkeerde poort voor het EH voedingssignaal gebruikt!'''<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br/><br />
Getest: werkt!<br />
<br/><br />
'''LET OP: Hier wordt nog een verkeerde poort voor het EH voedingssignaal gebruikt!'''<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
Sleepfunctie code:<br/><br />
PCINT2 (PIN14) (=voeding EH) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet ff alle uitgang 200ms hoog tijdens start up. Daarna: <br />
*Als voeding EH = aanwezig > alle uitgang een voor een hoog > daarna slaapstand <br />
*Als voeding EH = afwezig > alle uitgangen laag, 2 seconden wachten en in de slaapstand<br />
Door de een signaal aan te bieden op INT0 (= voeding EH aan/uit zetten) moet de uC weer wakker worden. stroom verbruik gaat dan omhoog. In slaap stand moet het verbruik rond de 6 uA zijn.<br/><br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
Zie ook: http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html<br />
<br/><br />
Getest: werkt!<br />
<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB2/PCINT2 PIN14 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void slapen_gaan()<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
PCMSK = (1 << PCINT2); // stel: PCINT2 (PB2) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // slaap modus. lijkt erop dat hier idle ipv power down ingesteld wordt<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
// sei(); // globale interrupts aan<br />
cli(); //globale interrupt uitschakelen<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
// _delay_ms(1); // uC de tijd geven weer stabiel te worden<br />
<br />
//even de poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
<br />
if (bit_is_set(PINB, PB2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD3); //aan/uit knop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); //aan/uit knop uit<br />
<br />
PORTD |= (1 << PD4); //keuzeknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); //keuzeknop uit<br />
<br />
PORTD |= (1 << PD5); //selectknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
<br />
slapen_gaan(); //we zijn klaar, hop in de slaapstand<br />
} <br />
<br />
else //voeding is uit, dus geen actie<br />
{ <br />
PORTD = 0; // alles uit<br />
_delay_ms(2000); <br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
</pre><br />
<br/><br/><br />
<br />
<br />
BETA!! Complete code:<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB2/PCINT2 PIN14 = EH voedingssignaal (PINB, PB2)<br />
// PB1/AIN0 PIN13 = GSM Vout signaal <br />
// Comperator uitgang = (ACSR, ACO)<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() //Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
PCMSK = (1 << PCINT2); // stel: PCINT2 (PB2) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
cli(); //globale interrupt uitschakelen<br />
<br />
}<br />
<br />
<br />
void slapen_gaan() // commandos om in de slaapstand te gaan<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// ACSR = (1 << ACD); // comparator uitschakelen <br />
ACSR |= (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
void delay_long() // Create long delay for 15 sec<br />
{<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
_delay_ms(5000); // wait 5 sec<br />
// longest possible delay is: _delay_ms(6553)<br />
}<br />
<br />
<br />
void gsm_off() //Push the on-off button of the GSM long enough to turn it on or off, and wait afterwards until the GSM is really on or off.<br />
{<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk uit is<br />
}<br />
<br />
<br />
void gsm_start() //Turn the GSM on and start the program. <br />
{<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
<br />
delay_long(); // wacht tot 20 sec<br />
_delay_ms(1900); <br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
<br />
_delay_ms(1900); // wacht tot 22 sec<br />
PORTD |= (1 << PD5); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
<br />
_delay_ms(2900); // wacht tot 25 sec<br />
PORTD |= (1 << PD5); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
<br />
_delay_ms(2900); // wacht tot 28 sec<br />
PORTD |= (1 << PD4); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
}<br />
<br />
<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() <br />
{<br />
init();<br />
<br />
<br />
if (bit_is_clear(ACSR, ACO)) // de GSM is nog aan(comperator poort werk geinventeerd), eerst uitzetten<br />
{ <br />
gsm_off(); // schakel de GSM uit<br />
}<br />
<br />
<br />
// Oneindige loop<br />
while (1) <br />
{<br />
if (bit_is_clear(PINB, PB2) && bit_is_clear(ACSR, ACO)) // Voeding=uit & GSM=aan > GSM uitzetten<br />
{ <br />
gsm_off(); // schakel GSM uit <br />
} <br />
<br />
else if (bit_is_set(PINB, PB2) && bit_is_set(ACSR, ACO)) // Voeding=aan & GSM=uit > zet de GSM aan<br />
{<br />
gsm_start(); // Start de ETS op <br />
}<br />
<br />
else // Alles is in orde, dus ga lekker slapen<br />
{<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8970Ebenhaëzer Tracking System2009-06-04T13:51:13Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
We moeten een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br/><br />
PIN14 - IO - ingang - PB2/PCINT2 <br/><br />
<s>PIN 6 - IO ingang - PD2/INT0 - </s><br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) (=voeding EH) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet ff alle uitgang 200ms hoog tijdens start up. Daarna: <br />
*Als voeding EH = aanwezig > alle uitgang een voor een hoog > daarna slaapstand <br />
*Als voeding EH = afwezig > alle uitgangen laag, 2 seconden wachten en in de slaapstand<br />
Door de een signaal aan te bieden op INT0 (= voeding EH aan/uit zetten) moet de uC weer wakker worden. stroom verbruik gaat dan omhoog. In slaap stand moet het verbruik rond de 6 uA zijn.<br/><br />
Nog even spelen met die "sei(); // globale interrupts aan" Nog niet helemaal duidelijk waar die moeten.<br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
Zie ook: http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB2/PCINT2 PIN14 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void slapen_gaan()<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// ACSR = (1 << ACD); // comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
<br />
// na de slaapstand is de uC uitgeweest en begint opnieuw aan het hoofdprogramma<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
PCMSK = (1 << PCINT2); // stel: PCINT2 (PB2) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// ACSR = (1 << ACBG); //comparator instellen op bandgap<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // slaap modus. lijkt erop dat hier idle ipv power down ingesteld wordt<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
// sei(); // globale interrupts aan<br />
cli(); //globale interrupt uitschakelen<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
// _delay_ms(1); // uC de tijd geven weer stabiel te worden<br />
<br />
//even de poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
<br />
if (bit_is_set(PINB, PB2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD3); //aan/uit knop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); //aan/uit knop uit<br />
<br />
PORTD |= (1 << PD4); //keuzeknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); //keuzeknop uit<br />
<br />
PORTD |= (1 << PD5); //selectknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
<br />
slapen_gaan(); //we zijn klaar, hop in de slaapstand<br />
} <br />
<br />
else //voeding is uit, dus geen actie<br />
{ <br />
PORTD = 0; // alles uit<br />
_delay_ms(2000); <br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8969Ebenhaëzer Tracking System2009-06-04T13:28:47Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
We moeten een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br />
PIN14 - IO - ingang - PB2/PCINT2 <br/><br />
<s>PIN 6 - IO ingang - PD2/INT0 - </s><br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) (=voeding EH) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet ff alle uitgang 200ms hoog tijdens start up. Daarna: <br />
*Als voeding EH = aanwezig > alle uitgang een voor een hoog > daarna slaapstand <br />
*Als voeding EH = afwezig > alle uitgangen laag, 2 seconden wachten en in de slaapstand<br />
Door de een signaal aan te bieden op INT0 (= voeding EH aan/uit zetten) moet de uC weer wakker worden. stroom verbruik gaat dan omhoog. In slaap stand moet het verbruik rond de 6 uA zijn.<br/><br />
Nog even spelen met die "sei(); // globale interrupts aan" Nog niet helemaal duidelijk waar die moeten.<br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
Zie ook: http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB2/PCINT2 PIN14 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void slapen_gaan()<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// comparator inschakelen<br />
_delay_ms(1); // uC de tijd geven weer stabiel te worden<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
PCMSK = (1 << PCINT2); // stel: PCINT2 (PB2) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// ACSR=0x80; //comparator inschakelen<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // slaap modus. lijkt erop dat hier idle ipv power down ingesteld wordt<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
// sei(); // globale interrupts aan<br />
cli(); //globale interrupt uitschakelen<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//even de poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
<br />
if (bit_is_set(PINB, PB2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD3); //aan/uit knop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); //aan/uit knop uit<br />
<br />
PORTD |= (1 << PD4); //keuzeknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); //keuzeknop uit<br />
<br />
PORTD |= (1 << PD5); //selectknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
<br />
slapen_gaan(); //we zijn klaar, hop in de slaapstand<br />
} <br />
<br />
else //voeding is uit, dus geen actie<br />
{ <br />
PORTD = 0; // alles uit<br />
_delay_ms(2000); <br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8968Ebenhaëzer Tracking System2009-06-04T13:16:38Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
We moeten een Pin Change Interrupt hebben > dus poorten "PCINTO(n)"<br />
PIN14 - IO - ingang - PB2/PCINT2 <br/><br />
<s>PIN 6 - IO ingang - PD2/INT0 - </s><br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) (=voeding EH) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet ff alle uitgang 200ms hoog tijdens start up. Daarna: <br />
*Als voeding EH = aanwezig > alle uitgang een voor een hoog > daarna slaapstand <br />
*Als voeding EH = afwezig > alle uitgangen laag, 2 seconden wachten en in de slaapstand<br />
Door de een signaal aan te bieden op INT0 (= voeding EH aan/uit zetten) moet de uC weer wakker worden. stroom verbruik gaat dan omhoog. In slaap stand moet het verbruik rond de 6 uA zijn.<br/><br />
Nog even spelen met die "sei(); // globale interrupts aan" Nog niet helemaal duidelijk waar die moeten.<br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
Zie ook: http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB2/PCINT2 PIN14 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void slapen_gaan()<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// comparator inschakelen<br />
_delay_ms(1); // uC de tijd geven weer stabiel te worden<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
PCMSK = (1 << PCINT2); // stel: PCINT2 (PB2) in op pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// ACSR=0x80; //comparator inschakelen<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // slaap modus. lijkt erop dat hier idle ipv power down ingesteld wordt<br />
MCUCR = (1 << SM0); //slaapmodes instellen op 'power down'<br />
sei(); // globale interrupts aan<br />
// cli(); //globale interrupt uitschakelen<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//even de poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
<br />
if (bit_is_set(PINB, PB2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD3); //aan/uit knop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); //aan/uit knop uit<br />
<br />
PORTD |= (1 << PD4); //keuzeknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); //keuzeknop uit<br />
<br />
PORTD |= (1 << PD5); //selectknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
<br />
slapen_gaan(); //we zijn klaar, hop in de slaapstand<br />
} <br />
<br />
else //voeding is uit, dus geen actie<br />
{ <br />
PORTD = 0; // alles uit<br />
_delay_ms(2000); <br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Buitenboordmotor&diff=2963Buitenboordmotor2009-06-03T07:38:00Z<p>85.145.116.50: /* Het startklaarmaken van een benzine buitenboordmotor */</p>
<hr />
<div>Een '''buitenboordmotor''' is een motor die, in tegenstelling tot een inboord [[dieselmotor]], aan de buitenkant van de boot is bevestigd. Buitenboordmotoren starten meestal niet als je ze heel snel nodig hebt. Buitenboordmotoren lopen op benzine met of zonder [[mengsmering]]. Het wel of niet gebruiken van mengsmering hangt af van of het een [[tweetakt]] of [[viertakt]] motor betreft. Een buitenboordmotor wordt vaak afgekort tot '''bbm.'''<br />
<br />
== Het startklaarmaken van een benzine buitenboordmotor ==<br />
Voordat je de motor wilt gebruiken, moet je de buitenboordmotor startklaar maken. Een aantal zaken moeten worden uitgevoerd of gecontroleerd:<br />
* Aansluiten benzinetank (bij externe brandstoftank)<br />
* Opendraaien ontluchting (op de motor of op de externe tank)<br />
* Benzinekraantje openzetten/in de goede stand zetten<br />
* Brandstof in de motor pompen met het pompje (bij externe brandstoftank)<br />
* De [[motorsteun]] laten zakken totdat de schroef voldoende in het water steekt (meestal helemaal naar beneden)<br />
* Controleren of de motor in z'n vrij staat<br />
* Controleren of het dodemanskoord er goed in zit<br />
<br />
== Het starten van een buitenboordmotor == <br />
Als je de motor wilt starten moet je natuurlijk voldoen aan de bovenstaande punten maar dan loopt ie nog niet. De buitenboordmotoren van Euros worden allemaal met de hand aangeslingerd. Eerst moet de gashendel op startgas ingesteld worden. Dan trek je het aantrekkoord rustig aan tot het aangrijpingspunt waarna je met een stevige ruk de motor kan starten.<br />
<br />
Als de motor koud is kan je de choke gebruiken. Die voegt extra benzine toe waardoor de motor dan wel start, zodra deze loopt kun je die weer uit zetten. Pas hiermee wel op! Een aantal keer de choke gebruiken verzuipt de motor en dan moet je heel vaak de motor aanslingeren om alle overbodige benzine er weer uit te krijgen als je dit nog lukt. Een veilige verhouding is ongeveer 2x zonder choke voor elke 1x met. Je moet je ondertussen ook gaan afvragen waarom je motor niet start zeker als hij dat in het verleden wel soepeler deed. <br />
<br />
Als een motor koud is en zeker als je hem daarna op weinig toeren wilt gebruiken is het soms verstandig om hem eerst in z'n neutraal wat gas te geven zodat hij wat op temperatuur komt. <br />
<br />
== Het stoppen van de motor == <br />
Draai het gas met de gashendel helemaal dicht, schakel naar de neutraal en druk op de stopknop. <br />
<br />
Als je hem niet meer gaat gebruiken/opklappen draai dan de ontluchting en benzinekraan ook weer dicht.<br />
<br />
[[Categorie:Bootonderdeel]][[categorie:motor]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8967Ebenhaëzer Tracking System2009-06-02T18:50:54Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) (=voeding EH) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet ff alle uitgang 200ms hoog tijdens start up. Daarna: <br />
*Als voeding EH = aanwezig > alle uitgang een voor een hoog > daarna slaapstand <br />
*Als voeding EH = afwezig > alle uitgangen laag, 2 seconden wachten en in de slaapstand<br />
Door de een signaal aan te bieden op INT0 (= voeding EH aan/uit zetten) moet de uC weer wakker worden. stroom verbruik gaat dan omhoog. In slaap stand moet het verbruik rond de 6 uA zijn.<br/><br />
Nog even spelen met die "sei(); // globale interrupts aan" Nog niet helemaal duidelijk waar die moeten.<br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
Zie ook: http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void slapen_gaan()<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
//nodig? sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// comparator inschakelen<br />
_delay_ms(1); // uC de tijd geven weer stabiel te worden<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// ACSR=0x80; //comparator inschakelen<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // slaap modus. lijkt erop dat hier idle ipv power down ingesteld wordt<br />
MCUCR=0x10; //slaapmodes instellen op 'power down'<br />
sei(); // globale interrupts aan<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//even de poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD3); //aan/uit knop aan<br />
_delay_ms(1000);<br />
PORTD &= ~(1 << PD3); //aan/uit knop uit<br />
<br />
PORTD |= (1 << PD4); //keuzeknop aan<br />
_delay_ms(1000);<br />
PORTD &= ~(1 << PD4); //keuzeknop uit<br />
<br />
PORTD |= (1 << PD5); //selectknop aan<br />
_delay_ms(1000);<br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
<br />
slapen_gaan(); //we zijn klaar, hop in de slaapstand<br />
} <br />
<br />
else //voeding is uit, dus geen actie<br />
{ <br />
PORTD = 0; // alles uit<br />
_delay_ms(2000);<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8966Ebenhaëzer Tracking System2009-05-29T10:10:22Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) (=voeding EH) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet ff alle uitgang 200ms hoog tijdens start up. Daarna: <br />
*Als voeding EH = aanwezig > alle uitgang een voor een hoog > daarna slaapstand <br />
*Als voeding EH is afwezig > alle uitgangen laag en slaapstand<br />
Door de een signaal aan te bieden op INT0 (= voeding EH aan/uit zetten) moet de uC weer wakker worden. stroom verbruik gaat dan omhoog. In slaap stand moet het verbruik rond de 6 uA zijn.<br/><br />
Nog even spelen met die "sei(); // globale interrupts aan" Nog niet helemaal duidelijk waar die moeten.<br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
volatile unsigned int sleep_timer; //sleeptime variable definieren<br />
<br />
<br />
void slapen_gaan()<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// comparator uitschakelen <br />
sleep_enable(); // slaap modus toegestaan<br />
//nodig? sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten als de uC weerwakker wordt (voorkomt onverwachts in slaapmodus)<br />
// comparator inschakelen<br />
_delay_ms(1); // uC de tijd geven weer stabiel te worden<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // Zet alle D uitgangen laag (geen pull-up aan)<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
ACSR=0x80; //comparator inschakelen<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // slaap modus. lijkt erop dat hier idle ipv power down ingesteld wordt<br />
MCUCR=0x10; //slaapmodes instellen op 'power down'<br />
sei(); // globale interrupts aan<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//even de poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD3); //aan/uit knop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); //aan/uit knop uit<br />
<br />
PORTD |= (1 << PD4); //keuzeknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); //keuzeknop uit<br />
<br />
PORTD |= (1 << PD5); //selectknop aan<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
<br />
slapen_gaan(); //we zijn klaar, hop in de slaapstand<br />
} <br />
<br />
else //voeding is uit, dus geen actie<br />
{ <br />
PORTD = 0; // alles uit<br />
slapen_gaan(); // hop in de slaapstand <br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8965Ebenhaëzer Tracking System2009-05-28T20:09:35Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet alleen de uC in de slaapstand naar 8 seconden. het stroomverbruik moet dat een stuk lager worden. Door de een signaal aan te bieden op INT0 moet de uC weer wakker worden.<br/><br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
update: sleepfunctie werkt we, maar nog even vaag of hij er ook weer uitkomt (lijkt nu nog heel lang te duren)<br/><br />
Verder loopt er nog steeds 3mA aan stroom in de slaap stand. Dat moet lager kunnen.<br />
<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
volatile unsigned int sleep_timer; //sleeptime variable definieren<br />
<br />
<br />
ISR(PCINT_vect) // Het pin-change interrupt is alleen om de CPU uit de slaap modus te krijgen.<br />
{<br />
}<br />
<br />
<br />
ISR(TIMER0_COMPA_vect) // Timer interrupt elke 1 / 1.000.000 / 64 / 6 seconden; 2604 interrupts per seconde<br />
{<br />
sleep_timer++;<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
//clocktimer instellingen voor de sleeptimer <br />
TCCR0A = (1 << WGM01); // timer 0 telt t/m 5 om 6 random getallen van 0 t/m 5 te genereren<br />
TCCR0B = (1 << CS01) | (1 << CS00); // cpu clock / 64<br />
OCR0A = 5; // de timer loopt t/m 5<br />
TIMSK = (1 << OCIE0A); // schakel timer ouput compare interrupt in<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus lijkt erop dat hier idle ipv power down ingesteld wordt<br />
MCUCR=0x10; //slaapmodes op power down zetten<br />
<br />
// sleep_enable(); // slaap modus toegestaan liever in de IF functie dan is er minder kans op vage dingen <br />
sei(); // globale interrupts aan<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100);<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
PORTD |= (1 << PD5); // Activeer selectknop zolang deze brand zitten we niet in de slaapstand<br />
<br />
if(sleep_timer > 13020) // voor testing: na 5sec in slaap modus; (x maal 2604 interrupts = 52080)<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
sleep_enable(); // slaap modus toegestaan<br />
ACSR=0x80; // comperator uitschakelen <br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten (voorkomt onverwachts in slaapmodus)<br />
ACSR=0x60; // comperator inschakelen<br />
_delay_ms(1); // internal reference voltage de kans geven stabiel te worden<br />
sleep_timer = 0; // reset de timer<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8964Ebenhaëzer Tracking System2009-05-28T19:50:09Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet alleen de uC in de slaapstand naar 8 seconden. het stroomverbruik moet dat een stuk lager worden. Door de een signaal aan te bieden op INT0 moet de uC weer wakker worden.<br/><br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
update: sleepfunctie werkt we, maar nog even vaag of hij er ook weer uitkomt (lijkt nu nog heel lang te duren)<br/><br />
Verder loopt er nog steeds 3mA aan stroom in de slaap stand. Dat moet lager kunnen.<br />
<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
volatile unsigned int sleep_timer; //sleeptime variable definieren<br />
<br />
<br />
ISR(PCINT_vect) // Het pin-change interrupt is alleen om de CPU uit de slaap modus te krijgen.<br />
{<br />
}<br />
<br />
<br />
ISR(TIMER0_COMPA_vect) // Timer interrupt elke 1 / 1.000.000 / 64 / 6 seconden; 2604 interrupts per seconde<br />
{<br />
sleep_timer++;<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
//clocktimer instellingen voor de sleeptimer <br />
TCCR0A = (1 << WGM01); // timer 0 telt t/m 5 om 6 random getallen van 0 t/m 5 te genereren<br />
TCCR0B = (1 << CS01) | (1 << CS00); // cpu clock / 64<br />
OCR0A = 5; // de timer loopt t/m 5<br />
TIMSK = (1 << OCIE0A); // schakel timer ouput compare interrupt in<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
// sleep_enable(); // slaap modus toegestaan liever in de IF functie dan is er minder kans op vage dingen <br />
sei(); // globale interrupts aan<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100);<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
PORTD |= (1 << PD5); // Activeer selectknop zolang deze brand zitten we niet in de slaapstand<br />
<br />
if(sleep_timer > 13020) // voor testing: na 5sec in slaap modus; (x maal 2604 interrupts = 52080)<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
sleep_enable(); // slaap modus toegestaan<br />
ACSR=0x80; // comperator uitschakelen <br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten (voorkomt onverwachts in slaapmodus)<br />
ACSR=0x60; // comperator inschakelen<br />
_delay_ms(1); // internal reference voltage de kans geven stabiel te worden<br />
sleep_timer = 0; // reset de timer<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8963Ebenhaëzer Tracking System2009-05-28T19:36:55Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br/><br/><br />
<br />
Let er bij AVR studio op dat je ook daad werkelijk de goed HEX file upload. Dat moet je nog apart instellen bij de programmer opties.<br />
<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet alleen de uC in de slaapstand naar 8 seconden. het stroomverbruik moet dat een stuk lager worden. Door de een signaal aan te bieden op INT0 moet de uC weer wakker worden.<br/><br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
update: sleepfunctie werkt we, maar nog even vaag of hij er ook weer uitkomt (lijkt nu nog heel lang te duren)<br/><br />
Verder loopt er nog steeds 3mA aan stroom in de slaap stand. Dat moet lager kunnen.<br />
<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
volatile unsigned int sleep_timer; //sleeptime variable definieren<br />
<br />
<br />
ISR(PCINT_vect) // Het pin-change interrupt is alleen om de CPU uit de slaap modus te krijgen.<br />
{<br />
}<br />
<br />
<br />
ISR(TIMER0_COMPA_vect) // Timer interrupt elke 1 / 1.000.000 / 64 / 6 seconden; 2604 interrupts per seconde<br />
{<br />
sleep_timer++;<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
//clocktimer instellingen voor de sleeptimer <br />
TCCR0A = (1 << WGM01); // timer 0 telt t/m 5 om 6 random getallen van 0 t/m 5 te genereren<br />
TCCR0B = (1 << CS01) | (1 << CS00); // cpu clock / 64<br />
OCR0A = 5; // de timer loopt t/m 5<br />
TIMSK = (1 << OCIE0A); // schakel timer ouput compare interrupt in<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
// sleep_enable(); // slaap modus toegestaan <br />
sei(); // globale interrupts aan<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100);<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
PORTD |= (1 << PD5); // Activeer selectknop zolang deze brand zitten we niet in de slaapstand<br />
// sleep_timer = 20000;<br />
<br />
if(sleep_timer > 13020) // voor testing: na 5sec in slaap modus; (x maal 2604 interrupts = 52080)<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// sleep_enable(); // slaap modus toegestaan<br />
ACSR=0x80; // comperator uitschakelen <br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten (voorkomt onverwachts in slaapmodus)<br />
ACSR=0x60; // comperator inschakelen<br />
_delay_ms(1); // internal reference voltage de kans geven stabiel te worden<br />
sleep_timer = 0; // reset de timer<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8962Ebenhaëzer Tracking System2009-05-28T19:35:24Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop en daarna de selectknop.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
comperator test script. >> comparator werkt op deze manier<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
//poorten testen<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(500);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet alleen de uC in de slaapstand naar 8 seconden. het stroomverbruik moet dat een stuk lager worden. Door de een signaal aan te bieden op INT0 moet de uC weer wakker worden.<br/><br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
update: sleepfunctie werkt we, maar nog even vaag of hij er ook weer uitkomt (lijkt nu nog heel lang te duren)<br/><br />
Verder loopt er nog steeds 3mA aan stroom in de slaap stand. Dat moet lager kunnen.<br />
<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
volatile unsigned int sleep_timer; //sleeptime variable definieren<br />
<br />
<br />
ISR(PCINT_vect) // Het pin-change interrupt is alleen om de CPU uit de slaap modus te krijgen.<br />
{<br />
}<br />
<br />
<br />
ISR(TIMER0_COMPA_vect) // Timer interrupt elke 1 / 1.000.000 / 64 / 6 seconden; 2604 interrupts per seconde<br />
{<br />
sleep_timer++;<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
//clocktimer instellingen voor de sleeptimer <br />
TCCR0A = (1 << WGM01); // timer 0 telt t/m 5 om 6 random getallen van 0 t/m 5 te genereren<br />
TCCR0B = (1 << CS01) | (1 << CS00); // cpu clock / 64<br />
OCR0A = 5; // de timer loopt t/m 5<br />
TIMSK = (1 << OCIE0A); // schakel timer ouput compare interrupt in<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
// sleep_enable(); // slaap modus toegestaan <br />
sei(); // globale interrupts aan<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(100); <br />
<br />
PORTD |= (1 << PD5); // Activeer selectknop<br />
_delay_ms(200);<br />
PORTD &= ~(1 << PD5); // Deactiveer select knop<br />
_delay_ms(100);<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
PORTD |= (1 << PD5); // Activeer selectknop zolang deze brand zitten we niet in de slaapstand<br />
// sleep_timer = 20000;<br />
<br />
if(sleep_timer > 13020) // voor testing: na 5sec in slaap modus; (x maal 2604 interrupts = 52080)<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
// sleep_enable(); // slaap modus toegestaan<br />
ACSR=0x80; // comperator uitschakelen <br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten (voorkomt onverwachts in slaapmodus)<br />
ACSR=0x60; // comperator inschakelen<br />
_delay_ms(1); // internal reference voltage de kans geven stabiel te worden<br />
sleep_timer = 0; // reset de timer<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8958Ebenhaëzer Tracking System2009-05-27T20:43:21Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen, vandaar de comperator)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar niets: (interne) referentie spanning (1.1 volt)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
<s>PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)</s> is omgezet naar INT0<br/><br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
<s>DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!</s><br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij het opstarten gaat de aan/uit knop ff aan, daarna de keuze knop ff aan.<br/><br />
* Bij signaal "EH voeding" aan moet de selectknop aan gaan<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
// PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
// GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
// set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
// DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
// ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
<br />
PORTD |= (1 << PD3); // Activeer aan/uit knop<br />
_delay_ms(1000);<br />
PORTD &= ~(1 << PD3); // Deactiveer aan/uit knop<br />
_delay_ms(2000); <br />
<br />
PORTD |= (1 << PD4); // Activeer keuzeknop<br />
_delay_ms(1000);<br />
PORTD &= ~(1 << PD4); // Deactiveer keuze knop<br />
_delay_ms(2000); <br />
<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(PIND, PD2)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD5); //selectknop aan<br />
} <br />
<br />
if (bit_is_clear(PIND, PD2)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD5); //selectknop uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
BETA comperator test script.<br/><br />
Comperator is ingesteld met interne referentie spanning op de positieve ingang. GSM Vout signaal komt op de negatieve ingang.<br/><br />
De juiste bit wordt wel uitgelezen, met AVR studio was het niet mogelijk(?) om de comperator zelf te testen.<br/><br />
Zo geprogrammeerd dan de led van de aanuitknop aan moet gaan aan als de GSM aan is.<br/><br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
DIDR=0x03; //disable digital input buffer to reduce power consumption<br />
<br />
// Analog Comparator initialization<br />
// Analog Comparator: ON<br />
// Analog Comparator Analog comparator bandgap select: on<br />
ACSR=0x60;<br />
<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
<br />
if (bit_is_set(ACSR, ACO)) // GSM is uit (poort werk geinventeerd)<br />
{ <br />
PORTD &= ~(1 << PD3); //PD3 uit<br />
} <br />
<br />
if (bit_is_clear(ACSR, ACO)) // GSM is aan (poort werk geinventeerd)<br />
{ <br />
PORTD |= (1 << PD3); //PD3 aan<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br/><br />
<br />
<br />
<br />
<br />
BETA!! Sleepfunctie code:<br/><br />
INT0 (PIN6) is ingesteld om de uC uit de sleep krijgen. <br />
Deze code zet alleen de uC in de slaapstand naar 8 seconden. het stroomverbruik moet dat een stuk lager worden. Door de een signaal aan te bieden op INT0 moet de uC weer wakker worden.<br/><br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PD2/INT0 PIN6 = EH voedingssignaal<br />
// PB1/AIN0 PIN13 = GSM Vout signaal<br />
<br />
// PD3 PIN7 = aanuitknop<br />
// PD4 PIN8 = keuze knop<br />
// PD5 PIN9 = selectknop<br />
<br />
volatile unsigned int sleep_timer; //sleeptime variable definieren<br />
<br />
<br />
ISR(PCINT_vect) // Het pin-change interrupt is alleen om de CPU uit de slaap modus te krijgen.<br />
{<br />
}<br />
<br />
<br />
ISR(TIMER0_COMPA_vect) // Timer interrupt elke 1 / 1.000.000 / 64 / 6 seconden; 2604 interrupts per seconde<br />
{<br />
sleep_timer++;<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x78; // PORTD PD3-PD6 als uitgang; PORTD PD0-PD2 als ingang<br />
PORTD = 0; // Zet alle D uitgangen laag<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = 0; // geen pull-up aan<br />
<br />
PCMSK = (1 << INT0); // activeer INT0 (PB2) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
if(sleep_timer > 20832) // voor testing: na 8sec in slaap modus; (x maal 2604 interrupts = 52080)<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
sleep_enable(); // slaap modus toegestaan<br />
ACSR=0x80; // comperator uitschakelen <br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten (voorkomt onverwachts in slaapmodus)<br />
ACSR=0x60; // comperator inschakelen<br />
_delay_ms(1); // internal reference voltage de kans geven stabiel te worden<br />
sleep_timer = 0; // reset de timer<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Werkende(?)C code met [[oude pin bezetting]]. Nog zonder comperator en sleep functie:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
// PB0/PCINT0 PIN = EH voedingssignaal<br />
// PB1/ PIN = GSM Vout signaal<br />
<br />
// PD2 PIN = aanuitknop<br />
// PD3 PIN = keuze knop<br />
// PD4 PIN = selectknop<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8951Ebenhaëzer Tracking System2009-05-27T18:38:02Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar (interne) referentie spanning (moeten boven de GSM Vout spanning liggen als de GSM uit staat)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
???'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)<br />
<br/>???<br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij voeding aan moet lampje IO3 aangaan (is keuzeknop)<br/><br />
* bij GSM aan moet lampje IO4 aangaan (is selectknop)<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_set(PINB, PB0)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD3); //IO3 aan<br />
} <br />
<br />
if (bit_is_clear(PINB, PB0)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD3); //IO3 uit<br />
}<br />
<br />
if (bit_is_set(PINB, PB1)) //gsm is aan<br />
{ <br />
PORTD |= (1 << PD4); //IO4 aan<br />
}<br />
<br />
if (bit_is_clear(PINB, PB1)) //gsm is uit <br />
{ <br />
PORTD &= ~(1 << PD4); //IO4 uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
<br />
BETA!! Sleepfunctie code:<br/><br />
Alleen INT0 kan de uC uit de sleep krijgen. <br />
Deze code zet alleen de uC in de slaapstand naar 8 seconden. het stroomverbruik moet dat een stuk lager worden. Door de een signaal aan te bieden op INT0 moet de uC weer wakker worden.<br/><br />
Vraag: volgens de datasheet is INTO pin 6 van uC. Pin 12 is PCINT0. Er moet even getest worden met welke pin (6 of 12) de uC weer uit de slaapstand komt.<br/><br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
<br />
<br />
volatile unsigned int sleep_timer; //sleeptime variable definieren<br />
<br />
<br />
ISR(PCINT_vect) // Het pin-change interrupt is alleen om de CPU uit de slaap modus te krijgen.<br />
{<br />
}<br />
<br />
<br />
ISR(TIMER0_COMPA_vect) // Timer interrupt elke 1 / 1.000.000 / 64 / 6 seconden; 2604 interrupts per seconde<br />
{<br />
sleep_timer++;<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
if(sleep_timer > 20832) // voor testing: na 8sec in slaap modus; (x maal 2604 interrupts = 52080)<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
sleep_enable(); // slaap modus toegestaan<br />
// comperator uitschakelen <br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten (voorkomt onverwachts in slaapmodus)<br />
// comperator inschakelen<br />
// delay van 100us om de referentiespanning op te bouwen<br />
sleep_timer = 0; // reset de timer<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Uiteindelijke C code:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8950Ebenhaëzer Tracking System2009-05-27T18:30:43Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
===korte termijn===<br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb (uC kan praktisch uitgeschakeld worden dus misschien voldoet alleen een batterij wel)<br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Inbouwen in behuizing<br />
* Voeding voor ETS regelen<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
<br />
===Lange termijn / optimalisatie===<br />
* microcontroller <br />
** alternatieve voeding pcb??<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
<br />
<br />
===Afgerond===<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** <s>microcontroller programmer regelen</s><br />
* Java software aanpassen aan onze wensen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* <s>Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)</s><br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan. Dit gaan we op vangen door dmv van een signaal (2.7 volt) van de telefoon af te tappen die aangeeft of die aan is.<br />
<br/><br />
We hebben ween Atmel attiny2313 uC:<br/><br />
http://www.atmel.com/dyn/resources/prod_documents/DOC2543.PDF<br/><br />
<br />
We hebben een aantal pinnen van de uC nodig:<br/><br />
'''Voeding:'''<br/><br />
PIN 20 - Vcc - voeding microcontroller<br/><br />
PIN 10 - GND - massa microcontroller<br/><br />
<br />
'''Comperator: (kijkt of de telefoon aan is. die 2.7v van de telefoon is waarschijnlijk te laag om als IO te dienen)'''<br/><br />
PIN 12 - positieve ingang comparator - AIN0 - naar (interne) referentie spanning (moeten boven de GSM Vout spanning liggen als de GSM uit staat)<br/><br />
PIN 13 - negatieve ingang comperator - AIN1 - naar GSM 'Vout' <br/><br />
<br />
Opmerking: De interne referentiespanning kan alleen op AIN0 ingesteld worden. Dit betekend dat de GSM op de negatieve AIN1 moet. Hierdoor werkt het bitje geinventeerd. Geen probleem maar wel ff opletten in de software.<br />
<br />
<br/><br />
<br />
'''IO voor om te kijken of de EH boordspanning aan is, tevens INTERRUPT pin om uit de slaapstand te komen:<br/><br />
???'''<br/><br />
PIN 6 - IO ingang - PD2/INT0 - <br/> <br />
PIN 12 - IO ingang - PB0/PCINT0 (maar deze pin hebben we al nodig voor de comperator)<br />
<br/>???<br />
<br />
'''IO om de knoppen aan te sturen:'''<br/><br />
PIN 7 - IO uitgang - PD3 - naar optocoupler Aan/uit knop<br/><br />
PIN 8 - IO uitgang - PD4 - naar optocoupler keuze knop<br/><br />
PIN 9 - IO uitgang - PD5 - naar optocoupler select knop<br/><br />
<br />
DEZE PIN OUT IS NOG NIET DOORGEVOERD IN DE ONDERSTAANDE SCRIPTS!!<br />
<br />
<br/><br/><br />
Hardware test script<br/><br />
* Bij voeding aan moet lampje IO3 aangaan (is keuzeknop)<br/><br />
* bij GSM aan moet lampje IO4 aangaan (is selectknop)<br/><br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_set(PINB, PB0)) // voeding is aan<br />
{ <br />
PORTD |= (1 << PD3); //IO3 aan<br />
} <br />
<br />
if (bit_is_clear(PINB, PB0)) //voeding is uit<br />
{ <br />
PORTD &= ~(1 << PD3); //IO3 uit<br />
}<br />
<br />
if (bit_is_set(PINB, PB1)) //gsm is aan<br />
{ <br />
PORTD |= (1 << PD4); //IO4 aan<br />
}<br />
<br />
if (bit_is_clear(PINB, PB1)) //gsm is uit <br />
{ <br />
PORTD &= ~(1 << PD4); //IO4 uit<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br />
<br/><br/><br/><br />
<br />
BETA!! Sleepfunctie code:<br/><br />
Alleen INT0 kan de uC uit de sleep krijgen. <br />
Deze code zet alleen de uC in de slaapstand naar 8 seconden. het stroomverbruik moet dat een stuk lager worden. Door de een signaal aan te bieden op INT0 moet de uC weer wakker worden.<br/><br />
Vraag: volgens de datasheet is INTO pin 6 van uC. Pin 12 is PCINT0. Er moet even getest worden met welke pin (6 of 12) de uC weer uit de slaapstand komt.<br/><br />
Als de comperator gebruik maakt van een interne referentie moet die ook nog uitgeschakeld worden<br />
<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
<br />
<br />
volatile unsigned int sleep_timer; //sleeptime variable definieren<br />
<br />
<br />
ISR(PCINT_vect) // Het pin-change interrupt is alleen om de CPU uit de slaap modus te krijgen.<br />
{<br />
}<br />
<br />
<br />
ISR(TIMER0_COMPA_vect) // Timer interrupt elke 1 / 1.000.000 / 64 / 6 seconden; 2604 interrupts per seconde<br />
{<br />
sleep_timer++;<br />
}<br />
<br />
<br />
<br />
void init() // Initialisatie poorten timer en interrups<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
<br />
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // meest energie zuinige slaap modus<br />
<br />
}<br />
<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
<br />
while(1) // oneindige loop<br />
{<br />
if(sleep_timer > 20832) // voor testing: na 8sec in slaap modus; (x maal 2604 interrupts = 52080)<br />
{<br />
PORTD = 0; // alle poorten laag zetten om stroomverbruik te verlagen<br />
sleep_enable(); // slaap modus toegestaan<br />
// comperator uitschakelen <br />
sei(); // globale interrupts aan, om te zorgen dat de uC uit de slaapstand kan komen<br />
sleep_cpu(); // slaapstand<br />
sleep_disable(); // slaap modus toestaand uitzetten (voorkomt onverwachts in slaapmodus)<br />
// comperator inschakelen<br />
sleep_timer = 0; // reset de timer<br />
}<br />
<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
</pre><br />
<br/><br/><br />
<br />
<br />
Uiteindelijke C code:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
// PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
// PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
// PORTB = 3; // laatste 2 regels hefden elkaar op dus op deze manier samen genomen<br />
PORTB = (1 << PB0) | (1 << PB1); // PB0, massapik ingang, en PB1, telefoon status ingang, pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8936Ebenhaëzer Tracking System2009-05-26T18:47:59Z<p>85.145.116.50: /* TODO list */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller <br />
** PCB met optocouplers bouwen > beta<br />
** batterij voeding pcb<br />
** <s>microcontroller programmer regelen</s><br />
** microcontroller PCB aansluiten aan GSM > beta<br />
** comperator functie uitzoeken<br />
** sleepfunctie + wake up uitzoeken<br />
* Java software aanpassen aan onze wensen<br />
** Bluetooth watchdog?<br />
** Kwaliteit GPS fix meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan.<br />
<br />
Aangepaste C code:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init() {<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = (1 << PB0); // PB0 pull-up aan, massapik ingang<br />
PORTB = (1 << PB1); // PB1 pull-up aan, telefoon status ingang<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0; // Zet alle uitgangen laag<br />
}<br />
<br />
/**<br />
* Delay for 19.6 sec<br />
*/<br />
void delay_long() {<br />
_delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
// _delay_ms(6553); // Sleep the maximum amount (6.5 sec)<br />
}<br />
<br />
/**<br />
* Push the on-off button of the GSM long enough to turn it on or off,<br />
* and wait afterwards until the GSM is really on or off.<br />
*/<br />
void gsm_onoff() {<br />
// Activeer aan/uit knop gedurende 3 sec<br />
PORTD |= (1 << PD2);<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
delay_long(); // Wacht tot GSM daadwerkelijk aan- of uit is<br />
}<br />
<br />
/**<br />
* Turn the GSM on and start the program. If the GSM is already on, it is turned off first.<br />
*/<br />
void gsm_start() {<br />
if (bit_is_set(PINB, PB1)) { // GSM is aan, eerst uitzetten<br />
gsm_onoff();<br />
}<br />
<br />
// GSM aanzetten<br />
if (bit_is_clear(PINB, PB1)) {<br />
gsm_onoff();<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(3000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(3000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main() {<br />
init();<br />
<br />
// Oneindige loop<br />
while (1) {<br />
if (bit_is_clear(PINB, PB0) && bit_is_set(PINB, PB1)) { // Spanning is weg en GSM is aan, GSM uitzetten<br />
gsm_onoff();<br />
} else if (bit_is_set(PINB, PB0) && bit_is_clear(PINB, PB1)) { // GSM is uit en er is wel spanning, zet de GSM aan<br />
gsm_start();<br />
}<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
<br />
</pre><br />
<br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
* Een diode in serie om schade door ompolen te voorkomen<br />
<br/><br />
<br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8928Ebenhaëzer Tracking System2009-05-25T20:26:04Z<p>85.145.116.50: /* Microcontroller algoritme */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Kwaliteit GPS fix meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
=== Microcontroller algoritme ===<br />
<br />
De microcontroller heeft de volgende taken:<br />
* De telefoon aan zetten en het ETS programma opstarten zodra de massapik omgezet wordt.<br />
* De telefoon uitzetten als de massapik er <s>langer dan een bepaalde tijd</s> af is.<br />
(na een week stilstaan is de GPS accu leeg. dus als je dan de voeding en schakeld, gaat alles wel aan. Maar als je vervolgens heel ff de voeding eraf hebt gaat de GPS wel weer uit omdat zijn accu leeg is. Dan verliezen beide hun communicatie. Er is een reset nodig om die communicatie weer op te zetten. > Dus alles uit als de stroom er ff afgaat)<br />
<br />
Als input zijn de volgende twee signalen beschikbaar:<br />
* Massapik status<br />
* Telefoon status<br />
<br />
In principe hoeft de microcontroller dus alleen maar iets te doen aan het begin en aan het eind van een evenement. In de tussentijd kan deze in slaapstand gezet worden. De massapik ingang kan dan als interrupt dienen om hem uit de slaapstand te halen.<br />
<br />
Op dit moment hebben we alleen het aan en uit zetten nog maar geïmplementeerd. Een probleem kan nu nog ontstaan als de massapik eventjes wordt aangeschakeld en binnen de opstartfase van de telefoon weer uit. In de volgende cyclus is het dan mogelijk dat de microcontroller de telefoon uitzet in plaats van aan.<br />
<br />
Aangepaste C code:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init()<br />
{<br />
int q;<br />
q = 0;<br />
<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
// PORTD = 0x7f; // PORTD PD0-PD6 alle uitgangen hoog > even later wordt deze weer 0 gemaakt<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = (1 << PB0); // PB0 pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0;<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
PORTD |= (1 << PD2); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(2000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
_delay_ms(20000); // wacht tot 20 sec (in werkelijkheid zijn dit minder dan 20 seconden, en de microcontroller heeft<br />
_delay_ms(20000); // wacht tot 20 sec (blijkbaar een maximale delay tijd per delay instructie, daarom meerdere instructies<br />
_delay_ms(20000); // wacht tot 20 sec (achter elkaar<br />
<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(5000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(5000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(5000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
<br />
<br />
<br />
// oneindige loop<br />
while(1)<br />
{<br />
<br />
if (bit_is_clear(PINB, PB0)&q=0) <br />
{ <br />
PORTD |= (1 << PD2); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
q = 1; // q hoog maken zodra de telefoon uit is gezet en er geen voeding is<br />
_delay_ms(20000); // telefoon de tijd geven om uit te schakelen<br />
_delay_ms(20000); // telefoon de tijd geven om uit te schakelen<br />
}<br />
elseif(bit_is_set(PINB, PB0)&q=1) // onduidelijk of bitisset werkt<br />
{ <br />
q = 0; // q laag maken als de telefoon is uitgezet er weer voeding is<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
</pre><br />
<br />
<br/><br />
<br/><br />
Mogelijke code met 'is gsm aan' controle via een extra input:<br />
<pre><br />
#include <avr/io.h><br />
#include <avr/interrupt.h><br />
#include <avr/sleep.h><br />
#include <util/delay.h><br />
<br />
<br />
<br />
/*<br />
* Initialisatie poorten timer en interrups<br />
*/<br />
<br />
void init()<br />
{<br />
DDRD = 0x7f; // PORTD PD0-PD6 als uitgang<br />
// PORTD = 0x7f; // PORTD PD0-PD6 alle uitgangen hoog > even later wordt deze weer 0 gemaakt<br />
<br />
DDRB = 0; // PORTB PB0-PB7 volledig als ingang<br />
PORTB = (1 << PB0); // PB0 pull-up aan<br />
<br />
PCMSK = (1 << PCINT0); // activeer PCINT0 (PB0) voor pin-change detectie<br />
GIMSK = (1 << PCIE); // schakel pin-change interrupt in<br />
<br />
PORTD = 0;<br />
}<br />
<br />
/*<br />
* Hoofdprogramma<br />
*/<br />
int main()<br />
{<br />
init();<br />
<br />
<br />
if (bit_is_clear(PINB, PB1)) //als GSM uit is > aanzetten<br />
{ <br />
PORTD |= (1 << PD2); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(2000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
_delay_ms(20000); // wacht tot 20 sec (in werkelijkheid zijn dit minder dan 20 seconden, en de microcontroller heeft<br />
_delay_ms(20000); // wacht tot 20 sec (blijkbaar een maximale delay tijd per delay instructie, daarom meerdere instructies<br />
_delay_ms(20000); // wacht tot 20 sec (achter elkaar<br />
}<br />
<br />
else // als gsm niet uit is > uitzetten, wachten en dan aanzetten<br />
{ <br />
PORTD |= (1 << PD2); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(2000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
_delay_ms(20000); <br />
_delay_ms(20000); <br />
<br />
PORTD |= (1 << PD2); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(2000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
_delay_ms(20000); // wacht tot 20 sec (in werkelijkheid zijn dit minder dan 20 seconden, en de microcontroller heeft<br />
_delay_ms(20000); // wacht tot 20 sec (blijkbaar een maximale delay tijd per delay instructie, daarom meerdere instructies<br />
_delay_ms(20000); // wacht tot 20 sec (achter elkaar<br />
}<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
_delay_ms(5000); // wacht tot 22 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(5000); // wacht tot 25 sec<br />
<br />
PORTD |= (1 << PD4); // Activeer select knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD4); // Deactiveer select knop<br />
_delay_ms(5000); // wacht tot 28 sec<br />
<br />
PORTD |= (1 << PD3); // Activeer keuze knop gedurende 0.1 sec<br />
_delay_ms(100);<br />
PORTD &= ~(1 << PD3); // Deactiveer keuze knop<br />
<br />
<br />
<br />
// oneindige loop<br />
while(1)<br />
{<br />
<br />
if (bit_is_clear(PINB, PB0)&q=0) <br />
{ <br />
PORTD |= (1 << PD2); // Activeer aan/uit knop gedurende 3 sec<br />
_delay_ms(3000);<br />
PORTD &= ~(1 << PD2); // Deactiveer aan/uit knop<br />
q = 1; // q hoog maken zodra de telefoon uit is gezet en er geen voeding is<br />
_delay_ms(20000); // telefoon de tijd geven om uit te schakelen<br />
_delay_ms(20000); // telefoon de tijd geven om uit te schakelen<br />
}<br />
<br />
elseif(bit_is_set(PINB, PB0)&q=1) // onduidelijk of bitisset werkt<br />
{ <br />
q = 0; // q laag maken als de telefoon is uitgezet er weer voeding is<br />
}<br />
<br />
}<br />
<br />
return 0;<br />
}<br />
<br />
</pre><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8921Ebenhaëzer Tracking System2009-05-23T13:44:33Z<p>85.145.116.50: /* Features */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Kwaliteit GPS fix meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br />
Pinbezetting POP port:<br />
{| {{prettytable}}<br />
|-<br />
|Pin ||Name ||Function <br />
|-<br />
|1 ||Vin ||5V Input <br />
|-<br />
|2 ||Gnd ||Ground <br />
|-<br />
|3 ||ACI ||Auto-Connect-Ignition ( automatic recognition of connected accessories ) (short with pin 2 for handsfree recognition)<br />
|-<br />
|4 ||V Out ||Connected to pin 3 in DKU-2 usb data cable <br />
|-<br />
|5 ||USB PwrDet ||USB Power Detection (only used for USB connection) <br />
|-<br />
|6 ||F-Bus Rx ||Serial data bus (receive) <br />
|-<br />
|7 ||F-Bus Tx ||Serial data bus (transmit) <br />
|-<br />
|8 ||Gnd ||Ground <br />
|-<br />
|9 ||X Mic N ||audio input - <br />
|-<br />
|10 ||X Mic P ||audio input + <br />
|-<br />
|11 ||HS Ear L N ||(Headset) left audio output - <br />
|-<br />
|12 ||HS Ear L P ||(Headset) left audio output + <br />
|-<br />
|13 ||HS Ear R N ||(Headset) right audio output - <br />
|-<br />
|14 ||HS Ear R P ||(Headset) right audio output + <br />
|-<br />
|}<br />
Pin 1 is the one with a small distance to the other pins. <br />
<br />
<br />
<br />
<br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
<br/><br />
Dit is voor een ideale situatie. Maar het gebeurd ook dat de stroom op de EH er ff af is (tijdens het opstarten) de UC krijgt dan nog geen trigger dat de GSM uit moet maar gaat zelf wel uit. Bij de volgende start gaat de GSM dus uit ipv aan.<br />
Hier moeten we nog ff op dokteren.<br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.a-netz.de/nokia6230port.en.php<br/><br />
http://pinouts.ru/CellularPhones-Nokia/nokia_pop_pinout.shtml<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8917Ebenhaëzer Tracking System2009-05-21T15:34:38Z<p>85.145.116.50: /* Benodigdheden */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Kwaliteit GPS fix meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
* <s>Glaszekering houder + zekering (loods)</s><br />
* <s>Sigarettenstekker</s><br />
* <s>2 aderig snoer (loods)</s><br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8916Ebenhaëzer Tracking System2009-05-21T15:00:55Z<p>85.145.116.50: /* Benodigdheden */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Kwaliteit GPS fix meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
* Glaszekering houder + zekering (loods)<br />
* Sigarettenstekker<br />
* 2 aderig snoer (loods)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8915Ebenhaëzer Tracking System2009-05-21T14:26:53Z<p>85.145.116.50: </p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Kwaliteit GPS fix meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
<br />
Mogelijke opties zijn:<br />
<br />
* Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
<br />
* Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
Optie is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
<br />
Mogelijke alternatieve GPS opties:<br/><br/><br />
*GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu > dat kan bij de optie van de applicatie> "toegang applicatie > communicatie > altijd toestaan)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth. Stroom verbruik kan misschien verlaagd worden door een tweak uit te voeren: Maak wel die IR naar TTL converten maar haal de LEDjes er tussen uit en verbind die door. Het signaal gaat nu dus direct vanuit de GSM de converter in, hiervoor zou minder stroom nodig moeten zijn.<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
<br />
taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8913Ebenhaëzer Tracking System2009-05-21T10:36:20Z<p>85.145.116.50: /* Gerelateerde linkjes */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** GPS positie nauwkeurigheid meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
<br/><br />
Communicatie via datakabel:<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br/><br />
<br/><br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
<br/><br />
Kant en klaar alternatief:<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8912Ebenhaëzer Tracking System2009-05-21T10:34:31Z<p>85.145.116.50: /* Gerelateerde linkjes */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** GPS positie nauwkeurigheid meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
<br />
Communicatie via datakabel:<br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
Kant en klaar alternatief:<br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
(onbekend wat de operationele kosten zijn)<br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8911Ebenhaëzer Tracking System2009-05-21T10:08:12Z<p>85.145.116.50: /* TODO list */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** GPS positie nauwkeurigheid meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* <s>Nokia 6230i autoadapter regelen</s><br />
* Inkomende gesprekken blokkeren (dat kan helaas niet omdat het beveiligingswachtwoord van de nokia niet bekend is :( )<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8910Ebenhaëzer Tracking System2009-05-21T10:07:18Z<p>85.145.116.50: /* TODO list */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** GPS positie nauwkeurigheid meenemen<br />
** <s>Upload tijd bepalen > 15 minuten lijkt ok</s><br />
** <s>Logtijd bepalen > 30 seconden</s><br />
** <s>Logafstand bepalen > is nog afhankelijk van de afwijking</s><br />
* Voeding voor ETS regelen<br />
* <s>Behuizing regelen</s><br />
* Nokia 6230i autoadapter regelen<br />
* Inkomende gesprekken blokkeren<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* <s>Server software</s><br />
** <s>Stilstandtijd voor nieuwe track bepalen > 45 minuten</s><br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8909Ebenhaëzer Tracking System2009-05-21T10:00:49Z<p>85.145.116.50: /* ETS software */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Manier van afstand bepalen controleren (GPS frequentie punten(2s) v.s. logpunten(30s))<br />
** Upload tijd bepalen > 15 minuten lijkt ok<br />
** Logtijd bepalen > 30 seconden<br />
** Logafstand bepalen > is nog afhankelijk van de afwijking<br />
* Voeding voor ETS regelen<br />
* Behuizing regelen<br />
* Nokia 6230i autoadapter regelen<br />
* Inkomende gesprekken blokkeren<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* Server software<br />
** Stilstandtijd voor nieuwe track bepalen > 45 minuten<br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
* Wat gebeurd er als de gsm gebeld wordt?<br />
** De software draait gewoon door, als je afsluit zie een gemist bericht.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8908Ebenhaëzer Tracking System2009-05-21T09:55:06Z<p>85.145.116.50: /* Wensen */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Manier van afstand bepalen controleren (GPS frequentie punten(2s) v.s. logpunten(30s))<br />
** Upload tijd bepalen > 15 minuten lijkt ok<br />
** Logtijd bepalen > 30 seconden<br />
** Logafstand bepalen > is nog afhankelijk van de afwijking<br />
* Voeding voor ETS regelen<br />
* Behuizing regelen<br />
* Nokia 6230i autoadapter regelen<br />
* Inkomende gesprekken blokkeren<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* Server software<br />
** Stilstandtijd voor nieuwe track bepalen > 45 minuten<br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br/><br/><br/><br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8907Ebenhaëzer Tracking System2009-05-21T09:54:45Z<p>85.145.116.50: /* Wensen */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Manier van afstand bepalen controleren (GPS frequentie punten(2s) v.s. logpunten(30s))<br />
** Upload tijd bepalen > 15 minuten lijkt ok<br />
** Logtijd bepalen > 30 seconden<br />
** Logafstand bepalen > is nog afhankelijk van de afwijking<br />
* Voeding voor ETS regelen<br />
* Behuizing regelen<br />
* Nokia 6230i autoadapter regelen<br />
* Inkomende gesprekken blokkeren<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* Server software<br />
** Stilstandtijd voor nieuwe track bepalen > 45 minuten<br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
* Snelheid meenemen in de routes<br />
* Geen bluetooth maar kabel gebruiken (stroom besparing)<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8906Ebenhaëzer Tracking System2009-05-21T09:52:24Z<p>85.145.116.50: /* Benodigdheden */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar later bleek GPRS goedkoper te zijn. Inmiddels zijn we in een vergevorderd stadium: waardoor we met met nog wat handmatige handelingen een route zichtbaar hebben.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
Helmich: Ik heb even getracht alles een goede plek te geven. Herschrijving moet nog.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Manier van afstand bepalen controleren (GPS frequentie punten(2s) v.s. logpunten(30s))<br />
** Upload tijd bepalen > 15 minuten lijkt ok<br />
** Logtijd bepalen > 30 seconden<br />
** Logafstand bepalen > is nog afhankelijk van de afwijking<br />
* Voeding voor ETS regelen<br />
* Behuizing regelen<br />
* Nokia 6230i autoadapter regelen<br />
* Inkomende gesprekken blokkeren<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* Server software<br />
** Stilstandtijd voor nieuwe track bepalen > 45 minuten<br />
<br />
==Benodigdheden==<br />
* <s>Behuizing (=tupperwarebox aanwezig)</s><br />
* Autolader (voedings adapter) nokia 6230i (= besteld; 21-05-2009)<br />
<br/><br />
<br/><br />
<br />
=Methode/Principe=<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
In ons geval bestaan de controller en GPRS modem uit een apparaat: een GSM<br />
Op de GSM draait onze software die de communicatie tussen de GPS ontvanger en GPRS modem op zich neemt. De huidige (2009) nieuwe gsm's/handhelds kunnen eigenlijk direct al wat wij willen, maar ons budget is daarvoor nog ontoereikend. Het systeem wordt geacht automatisch aan te gaan zodra er mensen op de boot zijn (de stroom gaat dan aan op de boot). Bij het aangaan moet dus de telefoon en de software opgestart worden. Zodra het systeem draait worden er gps lokaties gelogd en om eenbepaalde tijd via (GPRS) internet geupload naar een server in enschede. Deze server verwerkt de lokaties in een leuk kaartje dat online op internet staat. Hiermee kunnen pappie en mammie kijken waar hun kroost zoal uithangt in de weekenden.<br />
<br />
<br />
=Hardware=<br />
==Mobiel op de boot==<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* GSM met GPRS<br />
<br />
Binnen de vereniging was er een Nokia 6230i beschikbaar.<br />
De kortste slag om deze telefoon te laten communiceren is via bluetooth.<br />
Een bluetooth gps ontvanger kon niet beschikbaar gesteld worden binnen de vereniging dus is er een RoyalTek Bluetooth <br />
GPS Receiver, RBT-2001 aangeschaft. Deze heeft als voordeel dat die vanzelf aan gaat als er voedingspanning op gezet wordt (simpelweg omdat er een 'gewone' on/off switch op zit).<br />
<br />
===Features===<br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken <br />
<br/><br />
<br/><br />
Specificaties RoyalTek RBT-2001 <br />
* 20 kanaals (Sirf III/WAAS)<br />
* Afmetingen: 7,0 x 4,1x 2,5<br />
* Gewicht (inclusief batterijen): 62 gram<br />
* Input stroom (intern): 680mAh Lithium-Ion (oplaadbaar)<br />
* Input voltage (extern) <br />
* DGPS-gereed<br />
* Externe antenne mogelijk<br />
* Op PC aan te sluiten<br />
* Werkt 6 uur continu op lithium-ion batterij<br />
* LED voor status-indicatie<br />
<br />
<br />
===SIMkaart===<br />
Willem heeft een prepaid Simyo simkaart met mobiel internet beschikbaar voor dit doel. <br />
https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
Simyo gebruikt het KPN netwerk.<br />
In juni 2009 rekent het simyo prepaid abbonement per dag af voor het dataverkeer in stappen van 1kB. 1 euro /MB.<br />
<br />
===Automatisch starten===<br />
Om het systeem autoamtisch aan te laten gaan moeten de volgende dingen gebeuren±<br />
* GSM inschakelen<br />
* GPS inschakelen<br />
* Applicatie starten<br />
<br />
Om de GSM in te schakelen moet de powerknop 3 seconden ingedrukt worden.<br />
<br />
De GPS gaan vanzelf aan als die stroom krijgt.<br />
<br />
Het automatisch starten van Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen. <br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Uiteindelijke bleek dat optie 2 de korste slag was.<br />
<br />
<br />
=== Elektronische aanpassingen ===<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
Beschrijving uC programma:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
<br />
===Voeding===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een korte kabel nodig in de koekoek, daar zitten al ANP stekkers aan de socket van de huidige GPS. Met wat ANP verdeelstekkertjes en evt. een nieuw socket is de ETS te voeden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br/><br />
===Behuizing===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br/><br />
<br/><br/><br />
<br />
<br />
<br />
<br />
==Statisch in Enschede==<br />
===Features===<br />
Omdat we toch euros blijven en natuurlijk niks te makken hebben willen we proberen de kosten een beetje in de hand te houden.<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
===Howto===<br />
<br/><br/><br />
<br />
<br />
=Software=<br />
==Mobiel op de boot==<br />
===Howto===<br />
Met de Nokia Suite kun je heel eenvoudig .jar applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Nokia Suite op je desktop PC/laptop:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel. Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
<br />
<br />
<br />
=== ETS software ===<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Features'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br/><br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
<br />
===Broncode===<br />
<br />
<br />
<br />
<br />
<br/><br/><br />
==Statisch in Enschede==<br />
===Features===<br />
===Howto===<br />
===Broncode===<br />
<br />
<br />
<br/><br/><br />
=Testing=<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
<br />
=Wensen=<br />
<br />
<br />
=Doorontwikkelingsinfo=<br />
<br />
In dit deel staat nog informatie die wij gewonnen hebben. NIe direct van toepassing op het huidige systeem, maar misschien nog handige voor een opvolger/alternatief.<br />
<br />
=== Opties ===<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
<br />
===Ander toestel===<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
=Info die weg kan=<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8896Ebenhaëzer Tracking System2009-05-21T06:26:00Z<p>85.145.116.50: /* Elektronisch starten door aan de knoppen te solderen */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar we gaan nu GPRS proberen. Op dit moment staat het nog in de kinderschoenen, maar het uiteindelijke doel is om automatisch elke minuut een nieuwe positie door te sturen.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Wat gaat er komen? ===<br />
De ETS stuurt iedere 5 minuten alle coördinaten uit de buffer via GPRS naar de internetserver van Steven. Het simyo abonnement rekent per dag af voor het dataverkeer in stappen van 1kB.<br />
Coördinaten worden in de buffer opgeslagen als er 1 minuut is verstreken en we meer dan 20 m zijn verplaatst. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.<br />
De server van steven verwerkt de ruwe data in een route op de kaart.<br />
<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
# <s>Voert live test uit op de EH</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# <s>Zoekt naar een bootloader.</s><br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# <s>Testen hoe BT verbinding maken werkt.</s> Gebeurt automatisch.<br />
# <s>Testen hoe uploaden werkt.</s> Moet eenmalig worden geaccepteerd door microcontroller. Daarna worden de coördinaten netjes verstuurd.<br />
# <s>Opslaan van geüploade coördinaten.</s> Worden opgeslagen in een database.<br />
# Testen of we de nauwkeurigheid van de GPS kunnen voorspellen en zo loze punten kunnen vermijden.<br />
# Interface om opgeslagen coördinaten te bekijken. Eerste versie draait.<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
** Manier van afstand bepalen controleren (GPS frequentie punten(2s) v.s. logpunten(30s))<br />
** Upload tijd bepalen > 15 minuten lijkt ok<br />
** Logtijd bepalen > 30 seconden<br />
** Logafstand bepalen > is nog afhankelijk van de afwijking<br />
* Voeding voor ETS regelen<br />
* Behuizing regelen<br />
* Nokia 6230i autoadapter regelen<br />
* Inkomende gesprekken blokkeren<br />
* Inbouwen in behuizing<br />
* Voedingssocket plaatsen in de EH koekkoek<br />
* Server software<br />
** Stilstandtijd voor nieuwe track bepalen > 45 minuten<br />
<br />
==Benodigdheden==<br />
* Behuizing<br />
* Autolader (voedings adapter) nokia 6230i<br />
<br />
= Informatie logboek =<br />
Aangezien het een interessant projectje is en het zonde is om stil te laten vallen even een overzicht:<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
=== Opties ===<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
Een andere optie die makkelijker te programmeren is, is de software op de telefoon zelf draaien. De meeste telefoons hebben wel Java tegenwoordig, en daarmee zouden we wel een heel eind moeten kunnen komen.<br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
<br />
<br />
=== Hardware ===<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* controller<br />
* mobiel internet apparaat<br />
<br />
Er zijn al een aantal telefoon binnen de vereniging beschikbaar die mobiel internet kunnen ontvangen:<br />
* Nokia 6230i<br />
* Nokia 7250i<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
Helmich is gaan researchen en heeft gevonden:<br/><br/><br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken (dit werkt inmiddels met de simkaart van Willem)<br/><br/><br />
<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
=== Software ===<br />
Die Nokia 6230i is interessant:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
Deze jongens krijgen navigatie aan de praat. Conclusie: hij kan met gps praten en er kan software op zo'n toestel.<br />
GPS gaat denk ik het handigst met een bluetooth verbinding. Vraag is alleen of we dat willen.<br />
<br />
Dan staat er hier:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
Hoe kan ik spelletjes en andere .jar applicaties installeren?<br/><br />
Dat kan met de Nokia Suite, een linkje hiernaar staat hierboven. Hiermee kun je heel eenvoudig applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Volgens Steven is de .jar de applicatie die we willen draaien.<br/><br />
<br />
Met een beetje geluk kunnen deze telefoons dus ook als controller dienen.<br />
<br />
Dus we hebben Nokia Suite op je desktop PC/laptop nodig:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel (die hebben we niet) > bluetooth is het handigst?<br/><br />
Helmich heeft inmiddels een kabel geleend: Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
==== ETS software ====<br />
Steven heeft het programma [http://www.qcontinuum.org/gpstrack/ GPS Track] aangepast. Er is een extra 'ETS' menu in het options menu waar de boot en log en upload tijden naar de ETS server gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar), dan gaat het mis bij het installeren ('ongeldige toepassing'). Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
Na het installeren bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegang gevraagd wordt en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
'''Wensen/features ETS software'''<br />
* Bij opstarten direct GPRS verbinden zoeken zodat dit bevestigd kan worden door de uC <br />
* Zo min mogelijk bevestigen bij opstarten<br />
* GPS apparaat keuze<br />
* Bootkeuze optie<br />
* logtijd variabel<br />
* upload tijd variabel<br />
* verplaatsing meenemen<br />
* tijd meesturen (vaste tijdzone)<br />
* meetpunten meesturen<br />
* Bufferen als er geen GPRS netwerk is<br />
* Nieuwe track maken naar x aantal minuten stil liggen (huidige: 5 minuten. Is dat goed?)<br />
* 1x GPS lokatie loggen bij het aanzetten van de ETS & versturen?? (ligt aan de kosten)<br />
* niet belangrijke meetpunten uitfilteren (bv: alle tussenliggende punten van een rechte lijn, of alleen als de koers veranderd)<br />
<br />
<br />
<br />
'''Openstaande vragen'''<br />
* Wat gebeurt er als er geen GPS aanwezig is?<br />
** Waarschijnlijk gaat het verbinden gewoon mis en werkt het systeem niet tot de stroom er opnieuw op gaat.<br />
* Wat gebeurt er als er geen GPS fix is?<br />
** Het systeem blijft draaien maar logt geen nieuwe coördinaten.<br />
* Wat gebeurt er bij geen GPRS netwerk?<br />
** Waarschijnlijk gaat het verzenden mis, waarna de niet verzonden coördinaten bij de volgende zendpoging worden meegenomen.<br />
* Buitenlandse netwerken blokken?<br />
** Waarschijnlijk vaart de EH zo weinig in Duitsland dat dit geen grote kostenpost gaat worden. Mocht ons beltegoed echter te snel opraken, dan kunnen we hier altijd nog naar kijken.<br />
<br />
<br />
====Praktijk test====<br />
<br />
'''Zaterdag 16mei (introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: aan de zijwand van de roef, vlakbij de radio (3-5 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
Er ontstaat een vrij grote afwijking (>50 mtr) waardoor er veel loze punten komen als we stil liggen in de haven. De route komt wel mooi in beeld bij het varen. De resolutie is wel te zien maar nog niet te grof. De tijden kwamen s'ochtends niet goed door bij de server. Steven heeft in de ochtend de server nog aangepast zodat de tijden smiddags wel klopten.<br/><br />
<br/><br />
'''Zondag 17mei(introweekend):<br/>'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 10 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: in de voorkant van de koekkoek (9-10 satellieten)<br/><br />
* GSMlokatie: in de roef, in het vakje onder de radio<br/><br />
Commentaar:<br/><br />
De gps is nu in de koekkoek geplaatst. De ontvangst is nu stukken beter en de afwijking veel kleiner. De logafstand is op 10 meter gezet Er zijn toch nog een paar kleine loze punten gelogd. Waarschijnlijk zijn die weg als we op 20 mtr logafstand gaan zitten. Maar dat kunnen we in enschede testen. De route kwam nog wat netter in beeld omdat de resolutie kleiner is. Aantal datapunten is waarschijnlijk ook hoger... (steven??). Wel heb je het 'probleem' dat als je stil ligt er helemaal niet geupload wordt. Op de site zie je dus wel dat de ETS aangemeld is<br />
maar je weet nog niet waar de EH ligt zolang deze nog aan de kant ligt. Misschien is het dus handig om bij het aanzetten even de lokatie up te loaden. Maar dat wordt dus een pakketje met maar een logpunt. Dat zal relatief duur zijn.<br/><br />
<br />
'''Ma 18 mei 23.25h'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 20 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Veel punten bij stilstandaande GPS. Gecancelled <br />
Het lijkt erop dat de GPS refresh rate sneller is (1 seconde?) Door de afwijking liggen de gemeten punten een paar meter van elkaar. De afgelegde afstand wordt over die punten bepaald. Dus dan heb je algauw 20 mtr, terwijl we wel op dezelfde plek staan. Beter zou zijn om de afstand te bepalen over punten met een interval van onze logtijd (30 seconden). <br />
Opmerking: Dit is een conclusie naar aanleiding van de gegevens in het scherm van de GSM. Steven denkt dat de ETS software de afstand wel om de 30 seconden bepaald. Maar dan is het wel weer vreemd dat er meetpunten geupload worden. We moeten even de afstand meten tussen de gelogde punten om te kijken naar welke afstand de software precies kijkt.<br />
<br />
'''Ma 18 mei 00.00h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
4 pnt. upload over de hele nacht. Zie verhaal bij vorige test<br />
<br />
<br />
'''Di 19 mei 0800h (vervolg meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam stud.k. helmich (4-8 satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Vervolg van de nacht. Om 0800h mee op reis naar almelo.<br />
<br />
<br />
'''Di 19 mei 0915h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam kantoor (6-8 satellieten)<br/><br />
* GSMlokatie: kantoor<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br />
<br/><br />
<br />
'''Wo 20 mei 0715h (nieuwe meting)'''<br />
* logtijd: 30 seconden<br/><br />
* logafstand: 50 mtr<br/><br />
* uploadtijd: 15 min<br/><br />
* GPSlokatie: raam studeerkamer (xx satellieten)<br/><br />
* GSMlokatie: studeerkamer<br/><br />
Commentaar:<br/><br />
Nieuwe meting.<br/><br />
<br />
==== Automatisch starten ====<br />
Het automatisch starten van onze Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen; waarschijnlijk lastig omdat de knoppen met weerstand werken. Gevonden(?): http://www.circuitsonline.net/forum/view/60551/1/keypad<br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
==== Elektronisch starten door aan de knoppen te solderen ====<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
'''<<<<<<<<<<<<<CONCEPT>>>>>>>>>>>>>>>'''<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
logisch stappenplan:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<s>IO4(selecttoets) > 'aan' op tijdstip 29-29.1 seconden (kies bluetooth apparaat) (optie)</s> <br/><br />
<s>IO4(selecttoets) > 'aan' op tijdstip 35-35.1 seconden (bevestig netwerk toegang)</s><br/><br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-2 seconden (telefoon gaan uit)<br/><br />
<br/><br />
'''<<<<<<<<<<<<<CONCEPT>>>>>>>>>>>>>>>'''<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
=== Dataserver ===<br />
Gewenst: Uitleg van wat de server in enschede precies doet.<br />
<br />
* Opslaan ontvangen data in database<br />
* Nieuw tracks definieren na 45 minuten stilstand<br />
* Interfacing na waterkaart<br />
<br />
=== Voeding ===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een kabel nodig vanaf de meterkast naar de koekoek. 5 mtr is ruim voldoende. Deze moet dmv aan sigarette stekker in de bestaande aansluitingen geplugt worden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br />
<br />
=== Behuizing ===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapter<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8876Ebenhaëzer Tracking System2009-05-14T16:04:57Z<p>85.145.116.50: /* Elektronisch starten door aan de knoppen te solderen */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar we gaan nu GPRS proberen. Op dit moment staat het nog in de kinderschoenen, maar het uiteindelijke doel is om automatisch elke minuut een nieuwe positie door te sturen.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Wat gaat er komen? ===<br />
De ETS stuurt iedere 5 minuten alle coördinaten uit de buffer via GPRS naar de internetserver van Steven. Het simyo abonnement rekent per dag af voor het dataverkeer in stappen van 1kB.<br />
Coördinaten worden in de buffer opgeslagen als er 1 minuut is verstreken en we meer dan 20 m zijn verplaatst. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.<br />
De server van steven verwerkt de ruwe data in een route op de kaart.<br />
<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
=== Wie gaat wat doen? ===<br />
Helmich<br />
# <s>Op zoek naar een andere telefoon waar Java automatisch kan starten.</s><br />
# <s>Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.</s><br />
<br />
Gart<br />
# <s>Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.</s><br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# Zoekt naar een bootloader.<br />
<br />
Steven<br />
# <s>Testen hoe programma starten werkt.</s> Programma starten moet met microcontroller.<br />
# Testen hoe BT verbinding maken werkt. Kan eventueel ook met microcontroller.<br />
# Testen hoe uploaden werkt. Moet eenmalig worden geaccepteerd door microcontroller. Verder ontvang ik data, maar nog niet het gewenste.<br />
# Opslaan van geüploade coördinaten.<br />
# Interface om opgeslagen coördinaten te bekijken.<br />
<br />
<br />
== TODO list ==<br />
* <s>Uitvinden op welke GPRS GSM's we een taskmanager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)</s><br />
* <s>kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)</s><br />
* microcontroller PCB met optocouplers bouwen<br />
* microcontroller programmer regelen + microcontroller programmeren<br />
* microcontroller PCB aansluiten aan GSM<br />
* Java software aanpassen aan onze wensen<br />
* Voeding voor ETS regelen<br />
* Behuizing regelen<br />
<br />
<br />
<br />
= Informatie logboek =<br />
Aangezien het een interessant projectje is en het zonde is om stil te laten vallen even een overzicht:<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
=== Opties ===<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
Een andere optie die makkelijker te programmeren is, is de software op de telefoon zelf draaien. De meeste telefoons hebben wel Java tegenwoordig, en daarmee zouden we wel een heel eind moeten kunnen komen.<br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon, of eentje met instelmogelijkheden (smartphones etc).<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
We gaan we optie 1. Wel is er nog een extra micronctroller nodig om het systeem aan te zetten.<br />
Punt waar we nu <s>(27-04-2009)</s>(09-05-2009) zijn:<br/><br />
<s>Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)</s> DONE <br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen. DONE<br />
* 2. <s>GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze site wordt dat beschreven: http://www.trackr.eu/faq/<br/> </s> Relatief veel werk en foutkans. Waarschijnlijk is het stroomverbruik weinig kleiner dan bij bluetooth.<br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais/microcontroller aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/></s><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* Elektrisch toetsen aansturen<br />
* <s>taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/></s><br />
* <s>Seriele aansluiting GPS ontvanger ombouwen naar IR<br/></s><br />
<br />
<br />
<br />
=== Hardware ===<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* controller<br />
* mobiel internet apparaat<br />
<br />
Er zijn al een aantal telefoon binnen de vereniging beschikbaar die mobiel internet kunnen ontvangen:<br />
* Nokia 6230i<br />
* Nokia 7250i<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
Helmich is gaan researchen en heeft gevonden:<br/><br/><br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
Firmware: V03.50 13-sept-2005<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken (dit werkt inmiddels met de simkaart van Willem)<br/><br/><br />
<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
=== Software ===<br />
Die Nokia 6230i is interessant:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
Deze jongens krijgen navigatie aan de praat. Conclusie: hij kan met gps praten en er kan software op zo'n toestel.<br />
GPS gaat denk ik het handigst met een bluetooth verbinding. Vraag is alleen of we dat willen.<br />
<br />
Dan staat er hier:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
Hoe kan ik spelletjes en andere .jar applicaties installeren?<br/><br />
Dat kan met de Nokia Suite, een linkje hiernaar staat hierboven. Hiermee kun je heel eenvoudig applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Volgens Steven is de .jar de applicatie die we willen draaien.<br/><br />
<br />
Met een beetje geluk kunnen deze telefoons dus ook als controller dienen.<br />
<br />
Dus we hebben Nokia Suite op je desktop PC/laptop nodig:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel (die hebben we niet) > bluetooth is het handigst?<br/><br />
Helmich heeft inmiddels een kabel geleend: Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
Deze website biedt aan een compleet programmaatje aan voor GPS tracken:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
Meet GPS locaties en upload ze.<br/><br />
Dit programma draait inmiddels op de 6230i. Alleen was er nog geen GPS ontvanger beschikbaar :(<br/><br />
De broncode is ook beschikbaar dus Steven kan zo onze wensen invoegen als dat wenselijk is.<br />
<br />
Steven heeft het programma aangepast: extra 'ETS' optie in het options menu waar de boot, en log en upload tijden voor euros gekozen kunnen worden.<br />
<br />
Bij het installeren mbv NokiaSuite moet er op gelet worden dat het .jad (dat door de compiler aangemaakt wordt) bestand niet in dezelfde map staat als de applicatie (.jar). dan gaat het mis bij het installeren. ('ongeldige toepassing') Verder gaat installeren ook wel eens gewoon mis > gewoon nog een keer proberen.<br />
FF bij de optie van het programma toegang geven aan de connectiviteit.<br />
<br />
Helaas kan de optie 'netwerktoegang'(=gprs) niet op 'altijd toestaan' gezet worden. De uC moet dus ook deze stap bevestigen. Bij het starten van de applicatie moeten we dus direct even data (0kb) versturen zodat er netwerktoegnag gevraagd word en de uC dit nog even kan bevestigen. Daarna wordt, zolang de toepassing draait, die toegang niet meer gevraagd en kunnen we 'gaan met die banaan'.<br />
<br />
<br />
==== Automatisch starten ====<br />
Het automatisch starten van onze Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
Er is ook een Alarm-actie, die de applicatie op een ingestelde tijd kan laten starten. In MIDP 2.0 kan er één alarm per applicatie gemaakt worden, altijd als de applicatie start moet je dus opnieuw het alarm zetten.<br />
<br />
Het Nokia Series 40 platform vraagt de gebruiker elke keer om bevestiging voor het programma echt gestart wordt door een Push-actie. Voor ons is dit dus geen handige optie.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
* [http://wiki.forum.nokia.com/index.php/KIJ000394_-_PushRegistry_confirmation_on_Series_40_MIDlets PushRegistry confirmation on Series 40 MIDlets]<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen; waarschijnlijk lastig omdat de knoppen met weerstand werken. Gevonden(?): http://www.circuitsonline.net/forum/view/60551/1/keypad<br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
==== Elektronisch starten door aan de knoppen te solderen ====<br />
In de figuur zie je een opengemaakte Nokia 7250i, waarbij het printje met de knoppen te zien is. Na wat prutsen bleek dat de knoppen heel eenvoudig maak contactjes zijn dmv twee ringetjes die met elkaar moeten worden verbonden. <br />
<br />
[[Afbeelding:Nokia 7250i open.jpg|thumb|300px|centre|opengewerkte nokia 7250i]]<br />
<br />
<br />
Op deze manier zijn er 20 verschillende knoppen op deze telefoon, die in een matrixvorm aangesloten zijn. Het is dus mogelijk om met 5 + 4 = 9 signalen het hele keypad aan te sturen. Het volgende figuur verduidelijkt een en ander. Voor het schakelen van een knop kan heel simpel een transistortje icm een weerstandje gebruikt worden, die de twee ringen als het ware kortsluit. De basis van de transistor zit dan aan een microcontroller uitgang. Hier heb ik even mee geëxperimenteerd in dit werkt uitstekend. Maar bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen<br />
<br />
[[Afbeelding:Nokia_keypad_7250i.jpg|thumb|300px|centre|elektrisch schema achter het keypad van de nokia 7250i. Bij nader inzien kan de transistor oplossing misschien niet omdat dan alle massa's aan elkaar moeten liggen en dat is niet het geval. Optocouplers zouden hier kunnen voldoen]]<br />
<br />
De toetsen waaraan gesoldeerd is kunnen niet meer op de oude manier bediend worden. Om toch ook nog handmatige bediening mogelijk te maken (bijv. voor software updates) zijn naast de aansturing van de microcontroller nog externe drukschakelaars nodig.<br />
<br />
Vraag:<br />
Wat willen we?:<br />
* Alleen de 3 knoppen nodig voor het aanzetten en opstarten van de software solderen<br />
* Alle 9 lijnen solderen > microcontroller alles laten doen<br />
<br />
(helmich denkt de eerste optie, en dan 3 drukschakelaars parallel voor manuele bediening) => Gart denkt ook de eerste optie<br />
<br />
Uit nader onderzoek blijkt dat de transistor optie niet helemaal werkt omdat er geen gezamelijke massa is. De transistors zijn vervangen door optocouplers, die als nog aangestuurd worden door de uC.<br />
<br />
Oude optie zonder microcontroller:<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
<br />
'''<<<<<<<<<<<<<CONCEPT>>>>>>>>>>>>>>>'''<br />
[[Afbeelding:Aanuitgsm.JPG|thumb|300px|centre|schema met uC?]]<br />
logisch stappenplan:<br/><br />
If:<br/><br />
IO1(sense): 0>1<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-3 seconden (telefoon gaan aan)<br/><br />
IO3(keuzetoets) > 'aan' op tijdstip 20-20.1 seconden (snelkeuze opties komen in beeld; 'verzameling' staat boven aan)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 22-22.1 seconden (map 'verzameling' wordt gekozen)<br/><br />
IO4(selecttoets) > 'aan' op tijdstip 25-25.1 seconden (start eurostrack programma)<br/><br />
<br />
IO3(keuzetoetse) > 'aan' op tijdstip 28-28.1 seconden (bevestig netwerktoegang)<br/><br />
<s>IO4(selecttoets) > 'aan' op tijdstip 29-29.1 seconden (kies bluetooth apparaat) (optie)</s> <br/><br />
<s>IO4(selecttoets) > 'aan' op tijdstip 35-35.1 seconden (bevestig netwerk toegang)</s><br/><br />
<br/><br />
If:<br/><br />
IO1(sense): 1>0<br/><br />
then:<br/><br />
IO2(powerknop) > 'aan' op tijdstip 0-1 seconden (telefoon gaan uit)<br/><br />
<br/><br />
'''<<<<<<<<<<<<<CONCEPT>>>>>>>>>>>>>>>'''<br />
<br />
====Mechanisch toetsen bedienen====<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
=== Voeding ===<br />
Het hele ETS systeem zal met 12 volt gevoed worden. Dit omdat we voor de telefoon en GPS ontvanger al een 12 volt adapter hebben.<br />
Voor implementatie op de EH is een kabel nodig vanaf de meterkast naar de koekoek. 5 mtr is ruim voldoende. Deze moet dmv aan sigarette stekker in de bestaande aansluitingen geplugt worden. In de ETS box moet de 12 volt verbonden worden met:<br />
* De GSM adapter<br />
* De GPS ontvanger adapter<br />
* De microcontroller PCB<br />
<br />
<br />
=== Behuizing ===<br />
De behuizing zou een 'tupperware' trommel van b.v. de action kunnen zijn. Wel een beetje degelijk model die niet bij de eerste torsie al open springt. Met het geluidsisolerende schuim van hans dat in de loods ligt kunnen alle delen 'fixed' in de trommel geplaatst worden.<br />
In de behuizing moet komen:<br />
* GSM<br />
* GPS muis<br />
* Micorcontroller PCB<br />
* 2x Adapater<br />
<br />
Een trommel waar 4 'dikke' gsm's inkunnen is waarschijnlijk groot genoeg.<br />
<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8851Ebenhaëzer Tracking System2009-05-08T18:48:01Z<p>85.145.116.50: /* Wat gaan we doen? */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar we gaan nu GPRS proberen. Op dit moment staat het nog in de kinderschoenen, maar het uiteindelijke doel is om automatisch elke minuut een nieuwe positie door te sturen.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
= Planning =<br />
Deze sectie bevat de directe planning van de ontwikkelaars, verder verzamelde informatie is in de volgende sectie te vinden.<br />
<br />
=== Wat gaat er komen? ===<br />
De ETS stuurt iedere 5 minuten alle coördinaten uit de buffer via GPRS naar de internetserver van Steven. Het simyo abonnement rekent per dag af voor het dataverkeer in stappen van 1kB.<br />
Coördinaten worden in de buffer opgeslagen als er 1 minuut is verstreken en we meer dan 20 m zijn verplaatst. Als de ETS buiten GSM bereik is blijft de buffer staan en wordt verzonden zodra er weer bereik is.<br />
De server van steven verwerkt de ruwe data in een route op de kaart.<br />
<br />
Alle componenten worden in een 'broodtrommel' geplaatst en deze wordt in de koekoek van de EH bevestigd, zodat we er makkelijk bij kunnen voor updates. Voor netjes wegwerken is het GPS huisje een mogelijke optie voor later.<br />
<br />
=== Wat gaan we doen? ===<br />
Helmich<br />
# Op zoek naar een andere telefoon waar Java automatisch kan starten.<br />
# Zoekt uit hoe we de knoppen mechanisch aan kunnen sturen.<br />
<br />
Gart<br />
# Zoekt uit hoe we de knoppen elektronisch aan kunnen sturen.<br />
# Microcontroller opbouwen zodat we 3 logische uitgangen kunnen aansturen. Voeding = 12 Volt<br />
<br />
Menno<br />
# Zoekt naar een bootloader.<br />
<br />
Steven<br />
# Testen hoe programma starten werkt.<br />
# Testen hoe BT verbinding maken werkt.<br />
# Testen hoe uploaden werkt.<br />
# Opslaan van geüploade coördinaten.<br />
# Interface om opgeslagen coördinaten te bekijken.<br />
<br />
= Informatie logboek =<br />
Aangezien het een interessant projectje is en het zonde is om stil te laten vallen even een overzicht:<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
=== Opties ===<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
Een andere optie die makkelijker te programmeren is, is de software op de telefoon zelf draaien. De meeste telefoons hebben wel Java tegenwoordig, en daarmee zouden we wel een heel eind moeten kunnen komen.<br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon.<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
=== Hardware ===<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* controller<br />
* mobiel internet apparaat<br />
<br />
Er zijn al een aantal telefoon binnen de vereniging beschikbaar die mobiel internet kunnen ontvangen:<br />
* Nokia 6230i<br />
* Nokia 7250i<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij. https://www.simyo.nl/selfcare/servlet/ServiceMobileInternet?uid=7202<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
Helmich is gaan researchen en heeft gevonden:<br/><br/><br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
* kan geen symbian op<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken (dit werkt inmiddels met de simkaart van Willem)<br/><br/><br />
<br />
De Nokia 7250i:<br />
* kan geen symbian op<br />
* draait Java<br />
* heeft IR (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
linkjes naar IR naar TTL/RS232 converters:<br />
(belangrijkste is de conversie van IR naar TTL/RS232. De conversie van RS232 naar TTL is alleen een spanningsniveau conversie)<br/><br />
http://www.tildesign.nl/content/downloads/icl3221_datasheet.pdf<br/><br />
http://www.edaboard.com/ftopic84368.html<br/><br />
http://www.maxim-ic.com/appnotes.cfm/an_pk/3024<br/><br />
<br />
=== Software ===<br />
Die Nokia 6230i is interessant:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
Deze jongens krijgen navigatie aan de praat. Conclusie: hij kan met gps praten en er kan software op zo'n toestel.<br />
GPS gaat denk ik het handigst met een bluetooth verbinding. Vraag is alleen of we dat willen.<br />
<br />
Dan staat er hier:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
Hoe kan ik spelletjes en andere .jar applicaties installeren?<br/><br />
Dat kan met de Nokia Suite, een linkje hiernaar staat hierboven. Hiermee kun je heel eenvoudig applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Volgens Steven is de .jar de applicatie die we willen draaien.<br/><br />
<br />
Met een beetje geluk kunnen deze telefoons dus ook als controller dienen.<br />
<br />
Dus we hebben Nokia Suite op je desktop PC/laptop nodig:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel (die hebben we niet) > bluetooth is het handigst?<br/><br />
Helmich heeft inmiddels een kabel geleend: Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
Deze website biedt aan een compleet programmaatje aan voor GPS tracken:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
Meet GPS locaties en upload ze.<br/><br />
Dit programma draait inmiddels op de 6230i. Alleen was er nog geen GPS ontvanger beschikbaar :(<br/><br />
De broncode is ook beschikbaar dus Steven kan zo onze wensen invoegen als dat wenselijk is.<br />
<br />
==== Automatisch starten ====<br />
Het automatisch starten van onze Java software is nogal lastig. Sommige telefoons hebben de eigenschap "Nokia-MIDlet-auto-start: yes", het is echter onduidelijk welke telefoons dit ondersteunen. Waarschijnlijk alleen telefoons die meerdere applicaties tegelijk kunnen draaien en dat zijn alleen de nieuwere modellen.<br />
<br />
Met behulp van de Push Registry is het wel mogelijk om de applicatie te starten bij een inkomende event, bijvoorbeeld een SMS. Dus het zou te doen moeten zijn om de applicatie op te laten starten met behulp van een SMS. Via Google Calendar kunnen we waarschijnlijk wel zorgen dat de telefoon dagelijks een SMS krijgt. Dit is dus een mogelijkheid, alleen het systeem wordt dan dus slechts eenmaal per dag automatisch gestart. Aangezien de stroom er iedere keer bij het aan en van walstroom halen even af gaat, is dit geen ideale oplossing.<br />
<br />
Bronnen:<br />
* http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br />
* http://developers.sun.com/mobility/midp/articles/pushreg/<br />
<br />
Mogelijke andere opties zijn:<br />
# Altijd aanlaten; hiervoor is een extra accu nodig omdat in de standby stand BT nog aan staat en veel stroom eet.<br />
# Elektronisch starten door aan de knoppen te solderen; waarschijnlijk lastig omdat de knoppen met weerstand werken. Gevonden(?): http://www.circuitsonline.net/forum/view/60551/1/keypad<br />
# Mechanisch starten door de knoppen in te drukken.<br />
<br />
Mechanisch toetsen bedienen kan mbv een servo. (Iets als dit:[http://www.modelflight.com.au/buy_models/images/tt_ds1013_servo_a.jpg] maar dan kleiner)<br />
Elk uiteinde van de servoarmpje bedient een toets, dat zijn dus 2 toetsen. De stand van het armpje kan geregeld worden door de duty-cycle van een 50Hz bloksignaal naar de servo aan te passen.<br />
* toets 1 wordt ingedruk bij een duty-cycle van ong. van 25%<br />
* er worden geen toetsen ingedrukt bij een duty-cycle van ong. van 50%<br />
* toets 2 wordt ingedruk bij een duty-cycle van ong. van 75%<br />
<br />
Een 50Hz bloksignaal met een variable duty-cycle kan worden gemaakt mbv een microcontroller.<br />
<br />
=== Concreet ===<br />
Punt waar we nu (27-04-2009) zijn:<br/><br />
Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)<br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen.<br />
* 2. GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze sit ewordt dat beschreven: http://www.trackr.eu/faq/<br/> <br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
* IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
* Seriele aansluiting GPS ontvanger ombouwen naar IR<br/><br />
<br />
<br />
<br />
So todo:<br/><br />
* Uitvinden op welke GPRS GSM's we een taskmannager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)<br />
* kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
http://sportstracker.nokia.com/nts/main/index.do<br/><br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50https://www.euroszeilen.utwente.nl/euroswiki/index.php?title=Ebenha%C3%ABzer_Tracking_System&diff=8835Ebenhaëzer Tracking System2009-05-04T19:29:01Z<p>85.145.116.50: /* Concreet */</p>
<hr />
<div>Het '''Ebenhaëzer Tracking System''' is een systeem waarmee de actuele positie van de [[Ebenhaëzer]] gevolgd kan worden via internet. Steven, Gart, Willem, Menno T en een tijdje later ook Helmich werken aan een systeem gebaseerd op een GPS, microcontroller en een oude mobiele telefoon. Het oorspronkelijke idee was op basis van SMS, maar we gaan nu GPRS proberen. Op dit moment staat het nog in de kinderschoenen, maar het uiteindelijke doel is om automatisch elke minuut een nieuwe positie door te sturen.<br />
<br />
Deze pagina bevat op dit moment een overzicht van de ideeën en voortgang van het project. Iedereen is vrij hier zaken aan toe te voegen.<br />
<br />
= Voortgang logboek =<br />
Aangezien het een interessant projectje is en het zonde is om stil te laten vallen even een overzicht:<br />
<br />
=== Doel ===<br />
Het doel is om een systeem te maken dat periodiek GPS coördinaten van de EH (later eventueel andere boten) logt en deze via een telefoon netwerk (GSM/GPRS/UMTS) doorstuurt naar een internetserver in Enschede. Van daaruit kunnen deze coördinaten via de Euros website opgevraagd worden waarmee er een route in een kaart geplot kan worden. Steven kan hier wel iets moois van maken met zijn [http://squall.student.utwente.nl/betonning/waterkaart.html waterkaart]. Uiteraard moet er getracht worden de kosten binnen de perken te houden.<br />
<br />
=== Eisen ===<br />
* Lage initiële kosten (een nieuwe systeem kan al voor 160 euro gekocht worden)<br />
* Power on = up & running<br />
<br />
=== Opties ===<br />
Heel basic bestaat zo'n systeem uit de volgende dingen:<br/><br />
GPS ontvanger - Controller - Mobiel internet modem<br />
<br />
Dit zou te behalen moeten zijn door bijvoorbeeld een kleine Linux pc met een (USB) gps ontvanger en (USB) GPRS modem te laten draaien. Het probleem is echter dat een complete pc laten draaien nogal lomp is: relatief groot een eet veel stroom. Dus dat willen we eigenlijk niet doen. <br/><br />
Een GPRS modem aansturen vanaf een microcontroller zou wel mogelijk moeten zijn, je moet dan TCP/IP over PPP implementeren en een TCP/IP implementatie hebben we al gevonden, dan is het alleen nog de vraag hoe moeilijk PPP is.<br/><br />
Een andere optie die makkelijker te programmeren is, is de software op de telefoon zelf draaien. De meeste telefoons hebben wel Java tegenwoordig, en daarmee zouden we wel een heel eind moeten kunnen komen.<br />
<br />
Mogelijke opties zijn:<br />
# Krijg een simpel Java programma werkend op een telefoon. En een GPS ontvanger met de telefoon laten communiceren. Dan wil Steven wel gaan kijken of die iets goeds kan programmeren.<br />
# Krijg een telefoon werkend als GPRS modem vanaf een pc. Als dat werkt, kunnen we daarna kijken of we dat vanaf een microcontroller kunnen draaien.<br />
# Zoek een Open Source telefoon.<br />
<br />
Optie 1 heeft de voorkeur. Zodra we een Java programma werkend hebben, kunnen we dan kijken naar I/O. Waarschijnlijk wordt dat een microcontroller aan de knoppen solderen, want Java kan waarschijnlijk geen poorten benaderen. Optie 3 is super, omdat we dan de hele telefoon opnieuw kunnen programmeren, maar voor zover bekend bestaan deze telefoons nog nauwelijks en zijn ze erg duur.<br />
<br />
=== Hardware ===<br />
Belangrijkste dingen die er nodig zijn:<br />
* GPS ontvanger<br />
* controller<br />
* mobiel internet apparaat<br />
<br />
Er zijn al een aantal telefoon binnen de vereniging beschikbaar die mobiel internet kunnen ontvangen:<br />
* Nokia 6230i<br />
* Nokia 7250i<br />
<br />
Willem heeft een bedrade GPS ontvanger beschikbaar voor dit doel. Uit deze ontvanger komt een NMEA signaal op TTL niveau. Het signaal kan eenvoudig omgezet worden naar RS232 niveau.<br/><br />
Willem heeft ook een prepaid Simyo simkaart beschikbaar voor dit doel. Met een mobiel internet erbij.<br />
<br />
Een bluetooth GPS ontvanger kan waarschijnlijk zeer eenvoudig met een GSM communiceren. Maar vaak moeten deze 'aangezet' worden. Dat is niet handig voor de 'power on = running' eis.<br />
<br />
Helmich is gaan researchen en heeft gevonden:<br/><br/><br />
De Nokia 6230i:http://nds1.nokia.com/phones/files/guides/Nokia_6230i_UG_nl.pdf<br/><br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een soort seriële poort: FBUS (http://en.wikipedia.org/wiki/FBus) (niet gemakkelijk softwarematig toegankelijk)<br />
* heeft een IR poort (gemakkelijk softwarematig toegankelijk)<br />
* heeft een USB poort (met een CA-53 of een DKU-2 kabel op de PC aan te sluiten = gewoon kabel)<br />
* kan via GPRS mobiel het internet bereiken (dit werkt inmiddels met de simkaart van Willem)<br/><br/><br />
<br />
De Nokia 7250i:<br />
* draait Java<br />
* heeft bluetooth (gemakkelijk softwarematig toegankelijk)<br />
* heeft een seriële poort (met een DKU-5 of een CA-42 kabel op de PC aan te sluiten = kabel + serieel>USB converter) (niet gemakkelijk softwarematig toegankelijk)<br />
* kan via GPRS mobiel het internet bereiken<br />
<br />
<br />
=== Software ===<br />
Die Nokia 6230i is interessant:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
Deze jongens krijgen navigatie aan de praat. Conclusie: hij kan met gps praten en er kan software op zo'n toestel.<br />
GPS gaat denk ik het handigst met een bluetooth verbinding. Vraag is alleen of we dat willen.<br />
<br />
Dan staat er hier:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
Hoe kan ik spelletjes en andere .jar applicaties installeren?<br/><br />
Dat kan met de Nokia Suite, een linkje hiernaar staat hierboven. Hiermee kun je heel eenvoudig applicaties installeren op je telefoon. Verbind je telefoon met de computer, start Nokia Suite, klik op Toepassingen installeren, selecteer de .jar bestanden en klik op het groene pijltje. Binnen no-time staat ze erop en kun je ze gebruiken via het menu, Toepassing => Verzameling<br />
<br />
Volgens Steven is de .jar de applicatie die we willen draaien.<br/><br />
<br />
Met een beetje geluk kunnen deze telefoons dus ook als controller dienen.<br />
<br />
Dus we hebben Nokia Suite op je desktop PC/laptop nodig:<br/><br />
handleiding:<br/><br />
http://nds1.nokia.com/files/support/global/phones/software/Nokia_PC_Suite_UG_dut.pdf<br/><br />
software:<br/><br />
http://europe.nokia.com/get-support-and-software/download-software/nokia-pc-suites/compatibility-and-download#163<br/><br />
<br />
Communicatie kan via IR, bluetooth of een kabel (die hebben we niet) > bluetooth is het handigst?<br/><br />
Helmich heeft inmiddels een kabel geleend: Communicatie gaat best aardig, soms moet je een 2 poging doen met installeren maar de Java applicaties draaien. :) <br/><br />
<br />
Deze website biedt aan een compleet programmaatje aan voor GPS tracken:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
Meet GPS locaties en upload ze.<br/><br />
Dit programma draait inmiddels op de 6230i. Alleen was er nog geen GPS ontvanger beschikbaar :(<br/><br />
De broncode is ook beschikbaar dus Steven kan zo onze wensen invoegen als dat wenselijk is.<br/><br />
Zoiets hebben we nog nodig om de boel automatisch op te laten starten: http://www.clickapps.com/moreinfo.htm?pid=1341&section=J2ME&r=dway<br/><br />
<br />
<br />
=== Concreet ===<br />
Punt waar we nu (27-04-2009) zijn:<br/><br />
Er is een GPS ontvanger nodig om een compleet systeem op te zetten :)<br/><br/><br />
<br />
Mogelijke opties:<br/><br/><br />
<br />
* 1. GPRS GSM + bluetooth GPS > een GPSmuis regelen (op marktplaats). Mooiste is met een on/off schakelaar, dus geen tiptoetsen.<br />
* 2. GPRS GSM + IR GPS > voor +/- 10euro de seriele TTL GPS van willem ombouwen naar IR (kennis nodig). >?>http://www.lirc.org/receivers.html (onderaan)<br/><br />
In het GPS tracking programmaatje op de 6230i kan ik een optie 'seriële communicatie' kiezen incl baudrate etc. daarna vraagt de telefoon of ik verbinding via IR wil maken. Ziet er dus naar uit dat een verbinding via IR opgezet kan worden. (Moeten we nog wel ff zorgen dat ik niet steeds hoef te bevestigen (volgens Steven heeft dat met de rechten die Java heeft te maken, maar hij weet niet of dat op alle telefoons in te stellen is, zoek hiervoor een maintenance menu)). Op deze sit ewordt dat beschreven: http://www.trackr.eu/faq/<br/> <br />
<br />
<br />
Tweaks nodig voor optie:<br/><br />
1.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
* IF geen on/off powerknop: de power knop van de GPS extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
<br />
2.<br/><br />
* powerknop GSM extern maken, zodat deze met bijv. een timer relais aangezet kan worden bij 'power-on'<br/><br />
* taskmanagersoftware draaien op de GSM (dat kan niet op alle GSM's) zodat de tracker automatisch opstart bij bootup<br/><br />
* Seriele aansluiting GPS ontvanger ombouwen naar IR<br/><br />
<br />
<br />
<br />
So todo:<br/><br />
* Uitvinden op welke GPRS GSM's we een taskmannager kunnen draaien en vinden. (eentje die symbian als OS draait?http://en.wikipedia.org/wiki/Symbian_OS)<br />
* kijken hoe eenvoudig we externe powerschakelaars kunnen maken (als dat ook bij de GPS ook eenvoudig is , zou ik mooi voor bluetooth gaan)<br />
[[Afbeelding:GSM OnOff schakeling.JPG|thumb|300px|centre|Helmichs bedachte schema voor: Automatisch GSM aan bij power on. Werking nog maar eens even checken :p]]<br />
<br />
=== Gerelateerde linkjes ===<br />
Info over de telefoons:<br/><br />
http://gathering.tweakers.net/forum/list_messages/1219707///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://gathering.tweakers.net/forum/list_messages/1186709///gprs%2Cgsm%2Cals%2Cmodem<br/><br />
http://www.gpsshop.nl/product/56901/snooper-gps-tracker.html<br/><br />
http://gathering.tweakers.net/forum/list_messages/1115438/0<br/><br />
http://gathering.tweakers.net/forum/list_messages/1079840?data%5Bfilter_keywords%5D=installeren&data%5Bboolean%5D=AND<br/><br />
http://www.forum.nokia.com/info/sw.nokia.com/id/2a2ec089-6f2e-47cb-a150-d11a94eb80ad/MIDP_Using_Cable_Connection_In_Nokia_Devices_v1_0.zip.html<br />
<br />
Toepasbare software:<br/><br />
http://www.qcontinuum.org/gpstrack/<br/><br />
http://www.trackr.eu/faq/<br/><br />
http://www.trekbuddy.net<br/><br />
<br />
<br />
[[categorie:Ebenhaëzer]]<br />
[[categorie:kluswiki]]</div>85.145.116.50