Uitbreidingen voor de Arduino

Uitbreidingen voor de Arduino

Ik ben al weer een tijdje bezig met de Arduino; misschien had ik het al eerder gezegd: de Arduino heeft toch meer mogelijkheden dan de Basic Stamp of PIC, is (vaak) eenvoudiger te programmeren, en er is een hele grote community van gebruikers die je kan helpen met source code en ideeën.

Maar … vooral als je iets wil maken dat standalone gebruikt moet worden, dan blijven er nog wel wensen over:

  • Kan het niet goedkoper dan de Arduino? Een Arduino Uno is ongeveer 20 euro, een PIC chip daarentegen is maar een paar euro.
  • Kan het niet kleiner? Zo’n Arduino shield is misschien wel makkelijk voor een prototype, maar als je het ergens in moet bouwen is het best wel groot.
  • Kan de voeding niet kleiner? Als je een schakeling maakt met de Arduino moet die (ongeveer) 5V krijgen, dus zit je vast aan 3 AA batterijen of een 9V batterij (plus een voltage regulator).

Goed nieuws! Ik heb recentelijk twee onderwerpen gevonden die aan bovenstaande wensen tegemoet komen: de zogenaamde “boost regulators“, en de ATTiny chip.

Kleiner en goedkoper dan de Arduino

Kijk eerst eens naar dit plaatje:

Arduino Uno, Teensy en ATTiny85 op een rijtje

Hier zie je van links naar rechts de Arduino Uno, de Teensy en de ATTiny85. De Arduino Uno heeft geen verdere introductie nodig, kost 24,95 euro bij www.floris.cc. De Teensy 2.0 is volgens mij zeer vergelijkbaar met de Arduino, is ook via dezelfde IDE te programmeren, en kost 18 euro bij www.floris.cc. Okee, hij heeft minder pins, maar het voordeel dat de Teensy boven de Arduino heeft is dat hij als een HID-device kan fungeren. Dat betekent, dat als je een geprogrammeerde Teensy met sensoren via een USB kabeltje met PC of Mac verbindt, het ding als een toetsenbord, joystick of muis door die computer wordt gezien, zonder dat je daarvoor enige driver hebt hoeven laden! Ik vind dat erg makkelijk, want dat betekent, dat je je eigen game input device kunt maken, dat heel eenvoudig op al bestaande spelen gebruikt kan worden!

Meer hierover is te vinden op http://www.pjrc.com/teensy/. Daar staat duidelijk dat de Teensy geen Arduino clone is, maar voor simpele zielen als ik is het zeker goed genoeg. (Had ik al gezegd dat een Teensy ook als MIDI device kan fungeren? Nee? Nou bij deze dan.) Ik ben heel blij met de Teensy tot nu toe.

En dan helemaal rechts in het plaatje zie je een ATTiny85. Deze heb ik voor 4,55 euro bij www.rsonline.nl gekocht. Ik wist natuurlijk al wel dat je met een PICmicro vaak hetzelfde kan doen als met een Arduino, maar stel dat je eerst een prototype met de Arduino maakt, en dat vervolgens toch als een PICmicro wil uitvoeren. Dan is het vervelende, dat je dan je hele programma opnieuw moet programmeren, in een andere taal, en met een speciale “programmer” op de chip moet zetten. Lastig, en extra werk.

Toen las ik dit artikel op de Make blog. In het kort komt het hier op neer:

  • De ATTiny kan ook geprogrammeerd worden via dezelfde IDE als de Arduino (of de Teensy). Je hoeft alleen wat “core” files toe te voegen aan je programmeeromgeving. Welke, staat in de “High-Low Tech” tutorial. Een andere versie is ook hier te vinden. Die core files moet je in en zip file downloaden, en in de README.txt kijken hoe je ze moet installeren. Heel simpel; voor mij kwam het neer op
    • ik heb de map “tiny” uitgepakt in D:\Mijn projecten\Arduino\arduino-0022\arduino-0022\hardware\tiny
    • En vervolgens de comments weggehaald in boards.txt die voor using=arduino:arduinoisp stonden ipv using=pololu
  • Een Arduino kan fungeren als de programmer voor de ATTiny. Een tutorial hier laat je heel eenvoudig zien hoe dat moet!

Ofwel, in principe zou je dus een prototype voor de Arduino om kunnen zetten naar een programma voor de ATTiny, alleen maar door een paar pin definities te veranderen! Dit klinkt te goed om waar te zijn, en dat is het ook. Een paar kanttekeningen:

  • Een ATTiny heeft natuurlijk minder pins, minder geheugen, en minder snelheid dan een Arduino. Een ATTiny85 heeft maar 8 pins en 8K geheugen, een ATTiny45 maar 4K geheugen.
  • Een ATTiny heeft geen hardware seriële verbinding (met RX en TX). Maar … ik heb goede hoop dat het misschien met de NewSoftSerial library mogelijk is, en als ik deze pagina zie, dan zie ik daar ook hoopvolle berichten. Ik heb het alleen zelf nog niet getest.
  • De ATTiny85 kan wel via het I2C protocol communiceren, zie deze pagina! Dat is heel gunstig, want allerlei interessante apparaten (zoals de nunchuk, of een digitaal kompas) communiceren via I2C.

Kortom, ik verwacht dat als je programma voor de Arduino niet te groot en te moeilijk is, en (vooral) de standaard dingen van de Arduino gebruikt, dat het heel goed mogelijk is om het eenvoudig om te zetten naar een ATTiny. En op zich kan de ATTiny veel meer dan je denkt; er is een japanse onderzoeker die er complete audio players mee maakt, alleen in combinatie met een SD kaart! (Ik denk, dat het mogelijk is om een simpele “sound fx card”  te maken met een ATTiny en een SD card, maar het kost nog wel wat werk. Zoek op “PWM audio output”  en zo. Misschien voor een volgende keer?)

5V zonder moeite: boost regulators

Okee, dus de sensors en de Arduino (clone) hoeven niet veel ruimte in te nemen. Dan wordt de grootste ruimtevreter voor een standalone device de voeding. En als je kiest voor batterijen, dan wil je vaak batterijen die lang (genoeg) meegaan.

De Arduino werkt op 5V, en als je een externe voeding gebruikt dan moet deze gestabiliseerd zijn op 5V, of tussen de 6-12V liggen (zie http://arduino.cc/en/Main/ArduinoBoardUno, hangt af van het type Arduino).

De Teensy werkt (zoals veel elektronica) op 5V, maar kan volgens http://www.pjrc.com/teensy/external_power.html werken vanaf 2.4 V.  Afhankelijk van welke spanning je echt aanbiedt, zijn niet alle klokfrequenties haalbaar. Ofwel, de werking van je schakeling kan natuurlijk beïnvloed worden door de spanning die er op de Teensy staat.

Ik dacht eerst, dat een 9V batterij daarom de beste keus was: niet te groot, en gaat lang mee. Maar toen ik dit artikel zag, dacht ik er ineens anders over. Dat artikel rekent voor, dat er veel stroom onnodig verloren gaat als je een 5V schakeling met een 9V batterij voedt, en dat 2 AA batterijen dubbel zoveel arbeidsduurvermogen hebben  als een 9V batterij. Alleen … twee AA batterijen leveren samen 3 Volt, terwijl je 5 Volt nodig hebt.

Om de spanning van 3V op te krikken naar 5V heb je een boost regulator nodig. Maar toen ik zag dat de Minty Boost schakeling (bijvoorbeeld bij www.floris.cc) bijna 20 euro kost, en de werking toch niet heel eenvoudig te doorgronden/namaken is, vergat ik het weer. Totdat ik recentelijk las over de Pololu 5v Boost Regulator NCP-1402:

” This extremely compact boost regulator generates 5 V from voltages as low as 0.8 V and delivers up to 200 mA, making it perfect for powering small 5V electronics projects from 1 to 3 NiMH, NiCd, or alkaline cells or from a single lithium-ion cell.”

Of kijk even naar het volgende plaatje:

De NCP1402 boost regulator van Pololu

Links 1 enkele AAA-batterij en de NCP-1402 boost regulator, rechts 3 AA-batterijen.

Mijn “kabouter detector” (waarover in een volgend artikel meer), gebruikt een Teensy 2.0, een CMPS03 digitaal kompas en een piezo buzzer. In mijn prototype gebruikte ik eerst 3 AA batterijen, maar die kon ik vervangen door 1 AAA batterij en de NCP 1402 boost regulator! (Ja, dat kleine groen/gele printplaatje onder de AAA batterij is alles!)

Pololu NCP1402 boost regulator

Ik heb mijn NCP1402 gekocht bij www.hobbytronics.co.uk. Daar staat hij voor 5,68 euro, plus nog zo’n 5 euro verzendkosten per zending.

What’s the catch? Natuurlijk kun je geen zware motoren op een knoopcel laten lopen, dus hoe kleiner de batterij, hoe minder stroom je bij 5V kunt verwachten. Maar de NCP-1402 heeft een hoge efficiency, dus wat je er in stopt krijg je er praktisch gezien ook weer uit.

Conclusie

Mooie apparaatjes zelf maken is weer iets makkelijker geworden, dank zij de ATTiny en boost regulators zoals de NCP-1402!

 

Geen reactie's

Sorry, het is niet mogelijk om te reageren.