boktorrobotica.nlboktorrobotica.nl/wp-content/uploads/2016/06/...deelnem…  · Web viewPicaxe als...

10
1 MICROCONTROLLER CURSUS BLOK1 DEELNEMERSHANDLEIDING INHOUD Hart onder de riem........................................................1 Opdracht..................................................................3 Het setje uitgelegd.......................................................3 Picaxe als meetinstrument / datalogger....................................3 1 analoog signaal meten.................................................5 2 debug.................................................................5 3 Meetgegevens naar PC met Sertxd.......................................5 6 Write en read om meetgegevens in de Eeprom op te slaan................6 7 + 8 Serout...........................................................7 Energiebesparing:.......................................................7 Arduino als meetinstrument / datalogger...................................7 1 Analoog signaal meten met analog.Read.................................8 Meetgegevens naar computer met serial.println...........................8 HART ONDER DE RIEM Het eerste blok zit er op. Het is natuurlijk hartstikke sneu als dingen niet aan de praat komen. Helaas gebeurt dat nog wel eens. Op school is dat een klusje voor systeembeheer. Ik hoop dat de mensen die daar de dupe van zijn geworden thuis wel verder kunnen. Ik was niet helder van geest, ik had bij hardware-problemen bij een aantal in de simulator van Picaxe moeten laten werken (een van de grote voordelen van Picaxe boven Arduino). Blijven problemen zich voordoen, ik kan 2 computers een tijdje missen, want het is zonde om veel tijd kwijt te zijn met USB drivers. Je kunt mailen met [email protected] , SMS of appen met 0625250455. Ook is één avond erg kort om mensen die nog nooit met de microcontroller gewerkt hebben zoveel bij te brengen dat ze toepassingen kunnen stekkeren en programmeren. In die zin kan ik heel goed snappen dat het kan lijken of er veel op je af komt. Nu is deze wereld bij uitstel een wereld waar alles op internet te vinden is. Lessen op de officiële site, pdf’s en YouTube filmpjes. Vele die met de mircrocontroller werken (waaronder ik) hebben nooit één les programmeren of NHL L. Korste

Transcript of boktorrobotica.nlboktorrobotica.nl/wp-content/uploads/2016/06/...deelnem…  · Web viewPicaxe als...

1

MICROCONTROLLER CURSUS BLOK1 DEELNEMERSHANDLEIDINGINHOUD

Hart onder de riem.................................................................................................................................................1

Opdracht................................................................................................................................................................3

Het setje uitgelegd.................................................................................................................................................3

Picaxe als meetinstrument / datalogger.................................................................................................................3

1 analoog signaal meten....................................................................................................................................5

2 debug..............................................................................................................................................................5

3 Meetgegevens naar PC met Sertxd..............................................................................................................5

6 Write en read om meetgegevens in de Eeprom op te slaan...........................................................................6

7 + 8 Serout.......................................................................................................................................................7

Energiebesparing:..............................................................................................................................................7

Arduino als meetinstrument / datalogger..............................................................................................................7

1 Analoog signaal meten met analog.Read........................................................................................................8

Meetgegevens naar computer met serial.println...............................................................................................8

HART ONDER DE RIEM

Het eerste blok zit er op. Het is natuurlijk hartstikke sneu als dingen niet aan de praat komen. Helaas gebeurt dat nog wel eens. Op school is dat een klusje voor systeembeheer. Ik hoop dat de mensen die daar de dupe van zijn geworden thuis wel verder kunnen. Ik was niet helder van geest, ik had bij hardware-problemen bij een aantal in de simulator van Picaxe moeten laten werken (een van de grote voordelen van Picaxe boven Arduino). Blijven problemen zich voordoen, ik kan 2 computers een tijdje missen, want het is zonde om veel tijd kwijt te zijn met USB drivers. Je kunt mailen met [email protected], SMS of appen met 0625250455.

Ook is één avond erg kort om mensen die nog nooit met de microcontroller gewerkt hebben zoveel bij te brengen dat ze toepassingen kunnen stekkeren en programmeren. In die zin kan ik heel goed snappen dat het kan lijken of er veel op je af komt.

Nu is deze wereld bij uitstel een wereld waar alles op internet te vinden is. Lessen op de officiële site, pdf’s en YouTube filmpjes. Vele die met de mircrocontroller werken (waaronder ik) hebben nooit één les programmeren of microcontroller gehad. Het zoeken in de internetbrij is onderdeel van het leerproces.

Het blijkt juist dat mensen die wel een cursus (4-8 dagdelen) hebben gedaan er vaak later niets mee doen. Daarom vind ik het belangrijk dat ieder tot een product komt en daarmee de ervaring dat je er ook echt iets mee kunt. Ook al is de programmatuur zo simpel als ik heb laten zien. Natuurlijk helemaal leuk als je iets ontwerpt waar je trots op bent en of toegepast gaat worden in de les. Setjes met de Picaxe 08M2 kleine breadboardjes met LDR en weerstand 10k e.a. heb ik er 15 die jullie t.z.t. voor een klassentest kunnen lenen.

NHL L. Korste

2

Als deze opdracht in het onderwijs toegepast wordt (kan worden) kan je het in je didactisch portfolio én in je practicum portfolio verwerken. !!Succes!!

NHL L. Korste

3

OPDRACHT

Aan de opdracht zoals die gegeven is zijn twee dingen toegevoegd.

1. Je mag in het praktisch ontwerp ook iets “out of the box” doen wat niet voor school bedoelt is, maar een meting uit eigen interesse.

2. De uitwerking in breadboard en schema graag in de Fritzen sofrware. http://fritzing.org/download/ Dit vind ik een erg leuk bedrijf met goede visie wat zijn spullen in Europa laat maken.

HET SETJE UITGELEGD

Een led heeft een serieweerstand nodig om de stroom te beperken.

Als setje niet compleet is hoor ik het wel. De 18B20 temperatuursensor neem ik a.s. woensdag mee.

PICAXE ALS MEETINSTRUMENT / DATALOGGER.

Uitgebreide informatie op http://www.picaxe.com/BASIC-Commands en Getting Started.

Hierin de volgende stappen waarvan er enkele nader uitgewerkt zijn. De rest is op te zoeken:

1. Analoogsignaal meten met Readadc 2. Debug laat de waarden van de variabelen zien in de CodeExplorer 3. Meetgegevens naar PC met Sertxd.4. Readtemp om de digitale temp.sensor 18D20 uit te lezen.5. Ultra om de ultrasonore afstandssensor uit te lezen.6. Write en read om meetgegevens in de Eeprom op te slaan. Gegevens in de Eeprom blijven bewaard,

ook al is de microcontroller uitgeschakeld. Dit maakt meten in het veld mogelijk.7. Serout en meetgegevens zichtbaar op OLED-display.8. Serout en grafiek op je mobiel. Energiebesparing opties indien lang gemeten wordt. Weken meten

op één batterij.

NHL L. Korste

10 kΩ potentiometer Programmeerkabel aansluiting

met weerstanden 5V uit

GND of -

1,5-5V batt. in

5V stepup

Dalles 18B20 temp. Sensor KEYES

LED + 330/470 Ω

LDR + 10KΩ

inkeping

TxD data naar PC

RxD data vanaf

PC

inkeping

4

1 ANALOOG SIGNAAL METEN

Variabele b0 staat voor byte 0. Eén byte = 8 bits geeft waarden van 0 – 255 ( 28 ) .

2 DEBUG

Dit laat alle waarden van de variabelen zien in de CodeExplorer (links in programmavenster op dat tabblad klikken)

3 MEETGEGEVENS NAAR PC MET SERTXD

Dit commando zend op 4800 Hz seriële data via de programmeerkabel naar de computer. Via Terminal of Termite kunnen de overgezonden waarden gekopieerd worden naar Excel.

Termite is handig en klein voor als Picaxe niet geïnstalleerd is.

Cr= cursus return en lf = line feet

Er kunnen meerdere sensoren worden gelezen en overgezonden in één sertxd opdracht. Wil je ze in Excel kunnen gebruiken dien je de variabelen door komma’s te s scheiden. (#b1, “,”, #b2) .

Dit proces kan in de Picaxe editor ook gesimuleerd worden: https://youtu.be/1FDGYJcckdo

NHL L. Korste

5

Als je dit in Blocky wilt doen krijgen we het volgende:

In Wizards kan je de ASCII tabel openen en vind je voor lf code 10 en voor cr code 13. Lf en cr mogen we niet als variabelennaam gebruiken omdat die gereserveerd zijn als commando.

6 WRITE EN READ OM MEETGEGEVENS IN DE EEPROM OP TE SLAAN.

Gegevens in de Eeprom blijven bewaard, ook al is de microcontroller uitgeschakeld. Dit maakt meten in het veld mogelijk. De 08M2 kan 255 bytes (8 bits getal van 0-255) opslaan op Eeprom adres 0 tot 255.

Deze procedure is wel wat ingewikkelder. Eerst de data schrijven, en later opvragen en naar de PC sturen, Deze twee procedures moet je in één programma verwerken. Voor het starten van meten of lezen kan je een drukknop gebruiken, maar het kan ook anders. Je kan bijv. eerst de gegevens naar de PC te sturen en dan gaan meten. Na een meting zet je voeding uit, sluit de controller aan op de PC en je kunt gegevens uitlezen.

Een enkele tip:

Omdat b0 in dit geval oploopt

NHL L. Korste

6

7 + 8 SEROUT

Tot nu toe hebben we settxd gebruikt om seriële data te verzenden.

Settxd is gelijk aan serout c.0, n4800. De instelling die voor programmeren wordt gebruikt.

De Oled display is erg mooi en in de handleiding (picaxe.com) staat hoe die te gebruiken.

De bluetooth module hc-06 en hc-05 werken op minimaal 9600 Hz. De picaxe werkt op 4 MHz wat onvoldoende is voor deze seriële snelheid. Daarom moeten we de frequentie opvoeren naar 8MHz. Let op, multitasking en een aantal commando’s werken enkel onder 4 MHz!

Je kunt ook andere pinnen dan C.0 van de microcontroller gebruiken.

De Serout pin van de picaxe wordt aangesloten op de RxD (Recieve x Data) van de bluetoothmodule.

Installeer op een Android-apparaat de app Bluegraph om de data te verwerken tot tekstbestand en grafieken.

ENERGIEBESPARING:

De werkfrequentie (standaard 4 MHz) is recht evenredig met het energieverbruik. Als we de werkfrequentie met setfreq k31 op 31 kHz zetten gebruikt de picaxe (0,031/4) maar 8% van het normale gebruik. Met sleep kan het nog veel zuiniger (nA) maar is het in te stellen tijdsinterval minder nauwkeurig.

ARDUINO ALS MEETINSTRUMENT / DATALOGGER

Bij de Arduino zijn de meeste codes makkelijk op internet te vinden. Dit is ook een nadeel, omdat je bijna alles kunt kopiëren leer je minder snel het zelf programmeren.

Hierin de volgende stappen:

1. Analoog signaal meten met analogRead2. Meetgegevens naar PC met seriel.println 3. Temp. sensor 18D20 en afstandsensor HC-RS04 uit te lezen.4. Seriel.println om de bluetooth module hc-06 op 9600 Hz te gebruiken om met bluegraph grafieken

en data op je mobiel te ontvangen. 5. EEPROM.write() en EEPROM.read om meetgegevens in de Eeprom op te slaan.

NHL L. Korste

7

1 ANALOOG SIGNAAL METEN MET ANALOG.READ

In tegenstelling tot Basic dienen we bij Arduino C de uitgangen eerst declareren.

Code die éénmalig uitgevoerd wordt staat tussen de accolades van void setup(). Code die herhaald wordt onder void loop().

Hieronder naast de Arduinosketch de Basiccode voor dezelfde funcionaliteit.

Het if statement werkt met accolades i.p.v. met de tekst else en end if.. Bij basic kan je zonder te declareren een variabele (b0) in het leven roepen. Daarentegen kan je in het if-statement bij Arduino de analogread opnemen:

MEETGEGEVENS NAAR COMPUTER MET

SERIAL.PRINTLN

Voor doorlopend meten voldoet onderstaande sketch.

Voor 10 metingen (void loop() wordt niet gebruikt):

NHL L. Korste

8

In Ardublocks:

Zie ook: https://www.arduino.cc/en/Reference/AnalogRead

NHL L. Korste