Honey, I Shrunk de Arduino: verplaatsen van Arduino naar ATtiny en schrijven van uw code in zuivere AVR-C (5 / 5 stap)

Stap 5: Het maken van de ATtiny praten aan u


We al met succes een klein project gemaakt, maar u zult merken dat onze ATtiny een beetje gedraagt zich als een zwarte doos: je weet niet echt wil gaande is in het, omdat het enige resultaat hebt zijn sommige LEDs. Hebt u een complexer programma wordt uitgevoerd, u zou willen weten wilt in uw chip gaande is, leest bijvoorbeeld welke waarden het wanneer waarneemt metingen te doen. Er zijn dure ontwikkeling en debugging boards beschikbaar, maar ik zal tonen u hoe kunnen sommige fundamentele "debugging" in een goedkopere manier.

In het geval van de Arduino, kunt u een seriële verbinding met uw computer en de monitor waarden met behulp van de seriële Monitor hebben. Helaas hebben niet onze ATtiny zulke vermogens ingebouwde omdat het ontbreekt een FTDI chip voor seriële communicatie. MAAR we niet hoeven te worden verdrietig over dat: We kunt implementeren software gebaseerde seriële communicatie op onze ATtiny en "misbruik" onze Arduino als seriële doorstuurserver. Daardoor kunnen we de ATtiny praten met ons via de Arduino (en de andere manier rond als we moeten dat).

Gelukkig, we hebben niet om dit te implementeren op onszelf sinds Martin Thomas en Colin Gittins een aardige bibliotheek gemaakt en zet het op github: avr-softuart. Wij zullen dit gebruiken om het maken van een programmaatje voor onze ATtiny die sommige testwaarden via seriële doorsturen naar onze computer met behulp van onze Arduino zal overbrengen. U kunt dit later te gebruiken in uw eigen programma voor sommige basic "zuiveren".

Een woord van waarschuwing: "softuart" implementeert UART mogelijkheden in software, waardoor het veel trager dan hardware geïmplementeerde UART. Het betekent ook dat uw ATtiny doen sommige zware werk moet tijdens het verwerken van de seriële communicatie. Daarom adviseer ik gebruikend "softuart" alleen tijdens het debuggen van uw project.

Laten we beginnen met ons programma voor de ATtiny. In eerste instantie zullen we voor het downloaden van de avr-softuart -bronnen van de github repository. Zullen we het volgende omvat:

--

#include < avr/io.h >
#include < avr/interrupt.h >
#include < util/delay.h >
#include "softuart.h"

--

In de fie softuart.h moet u de SOFTUART_TXBIT instellen in lijn 18 tot en met de juiste pin (in ons voorbeeld wij troep op voor PB1). In de hoofdlus starten we seriële communicatie met de volgende instructies:

--

softuart_init();
softuart_turn_rx_off();    We ontvangen seriële data niet
Sei(); Hierdoor kunnen interupts, die nodig zijn voor softuart

--

De rest is vrij eenvoudig. Bijvoorbeeld, als u wilt verzenden een teken kunt u bellen softuart_putchar('c'); het teken 'c', die worden verzonden. U kunt ook het verzenden van tekenreeksen en, als u stdio.h opneemt, kunt u ook getallen printf-indeling verzenden. U kunt kijken naar de voorbeelden hebben in main.c voor softuart van github repository.
Echter, adviseer ik zo eenvoudig, klein en snel mogelijk te houden. Dit betekent dat je moet niet bevatten stdio.h en gebruik van printf , aangezien het ongeveer 1.5 kB van uw flash-geheugen duren zal. Daarom moet u een functie die stuurt van gehele getallen als tekenreeksen implementeren. Ik heb gedaan in het tweede voorbeeld voor deze tutorial en kunt u de volledige code in de github repository. Het programma schrijft alleen integers tussen-128 en 127 seriële out. U kunt downloaden, compileren en uploaden van de code naar uw ATtiny.

Nu hebben we onze "praten" programma op de ATtiny, moeten we bereiden de Arduino te ontvangen deze seriële data en stuurt het via USB naar onze computer zodat we de uitvoer op een seriële monitor kunt lezen. De code is werkelijk eenvoudig en je moet het ook downloaden vanaf de github repository. Alleen binnenkomende seriële data met software seriële ontvangt van een bepaalde pin (10) met een baud-rate van 2400 (trage software seriële!) en stuurt haar door naar onze computer via hardware seriële met een baud-rate van 115200 (snelle USB!). Deze code uploaden naar je Arduino en u kunt doorgaan met het werkelijk eenvoudig bedrading schema hierboven samen te stellen het hele ding.

Wanneer u uw Arduino op uw USB-poort aansluit, zal de ATtiny beginnen met het verzenden van de seriële data aan de Arduino, die het naar onze computer doorsturen zal. Nu kunt u de seriële Monitor in de Arduino IDE of programma's zoals scherm of minicom te lezen van de output. Hierdoor kunt u zien wat er gebeurt in uw ATtiny met behulp van slechts 1 pin en een Arduino!

Ik hoop dat deze tutorial zal u maken van slimme ATtiny-programma's die van slechts een fractie van de ruimte en de energie die nodig is door een Arduino gebruikmaken helpen. U kunt hebben een blik bij het volgende project voor een voorbeeld over hoe analoge om sensorgegevens te lezen van een versnellingsmeter te detecteren wanneer een apparaat is aangetast: attiny-soundcube

Gerelateerde Artikelen

Verplaatsen van een Motor met behulp van Arduino en seriële communicatieboekjes

Verplaatsen van een Motor met behulp van Arduino en seriële communicatieboekjes

heb je je ooit afgevraagd hoe robots bewegen?  Heb je ooit wilde schrijven van een programma om te controleren van een robot?  Als zo, deze tutorial zal een uitstekende startplek om alles te leren van de elektronisch gestuurde functies met de Arduino
Verzenden van gegevens van Arduino naar Excel (en uitzetten van het)

Verzenden van gegevens van Arduino naar Excel (en uitzetten van het)

Ik heb uitgebreid gezocht naar een manier waarop ik mijn Arduino sensor lezen in real-time kon uitzetten. Niet alleen uitzetten, maar ook weergeven en opslaan van de gegevens voor verdere experimenten en correcties.De eenvoudigste oplossing die ik vo
Hoe te programmeren met behulp van de arduino uno attiny

Hoe te programmeren met behulp van de arduino uno attiny

ik wilde even een kleine arduino voor mijn paar projecten omdat het kopen van een arduino voor elk project zal zijn te duur voor een 15 yrs oud guy!Stap 1: Dingen die je moetArduino IDEATtiny bestanden op je arduino IDEU kunt downloaden van de bestan
De generator van de code voor aangepaste Android/Arduino-menu's aan de Arduino uitgangen wissel voort en vandoor. Andriod/Arduino voor Beginners. Absoluut geen programmeerkennis vereist

De generator van de code voor aangepaste Android/Arduino-menu's aan de Arduino uitgangen wissel voort en vandoor. Andriod/Arduino voor Beginners. Absoluut geen programmeerkennis vereist

Update: een gebruiker gevraagd voor submenu ondersteuning. pfodApp altijd ondersteund submenu's maar ik sub-menu's hebt toegevoegd aan pfodDesigner. De instructable stelsel van het Gemeenschapsmodel A Custom Menu ziet u hoe u pfodDesigner wilt samens
Leert of onderwijst Arduino zonder elke regel van de Code # 2

Leert of onderwijst Arduino zonder elke regel van de Code # 2

Hallo iedereen, dit is de tweede Arduino tutorial over hoe je programma zonder het schrijven van elke regel van de code, met behulp van Ardublock, die een uitbreiding van de Arduino IDE voor visueel programmeren is. Als dit de eerste keer dat u Ardub
Een kleine Tea Timer (TTT) machine voor Arduino en ATtiny

Een kleine Tea Timer (TTT) machine voor Arduino en ATtiny

De TinyTeaTimmer (TTT) is een implementatie voor een kleine accessoire die gemakkelijk kan worden gemonteerd en geprogrammeerd d.m.v. een schakelaar, een knop, 1 of 2 LED's, een kleine servomotor en een Arduino board of een ATTiny-processor.De schets
LittleBits Arduino als ATtiny programmeur

LittleBits Arduino als ATtiny programmeur

Dit instructable zal u tonen hoe te programmeren van een ATtiny85 chip van een littleBits Arduino. Er zijn een verscheidenheid van ATtiny chips; Ik zal richten op de ATtiny85. Het is een geweldige manier om een goedkope, permanente versie van uw prot
Arduino rfid lezen en schrijven op LCD-scherm

Arduino rfid lezen en schrijven op LCD-scherm

Ik zal u tonen hoe te maken van de arduino rfid lezen en schrijven op LCD-schermStap 1:Hoi!Vandaag zal ik u tonen hoe te maken van de arduino rfid lezen en schrijven op LCD-scherm. Download de code en de belasting op arduino maakt het niet uit een he
Android - de complete gids voor het verplaatsen van apps met behulp van ADB geïnstalleerd en het veranderen van de standaard locatie installeren

Android - de complete gids voor het verplaatsen van apps met behulp van ADB geïnstalleerd en het veranderen van de standaard locatie installeren

Disclaimer:Ik kan niet zeggen of de methoden uitgelegd op alle apparaten werken zal, als in boubt u een wortel geschoten apparaat en root-toegang via ADB moet.Er is altijd een kans dat het niet werken zal, dus maak een back-up eerste zoals ik zal nie
Hoe pack kleren voor het verplaatsen van

Hoe pack kleren voor het verplaatsen van

denk buiten de doos. Als u verhuisd bent rond veel dan u al dat deze truc weet wellicht. Kleding in vakken voor het verplaatsen van verpakking is niet de meest praktische manier. Kleding vaak buch omhoog en zelfs dat als je ze vouwt, kunnen lezers vi
Het verplaatsen van een koelkast

Het verplaatsen van een koelkast

Hier zijn enkele basistips voor het verplaatsen van een koelkast.Dank aan die Van Dude!
5 creatieve tips: het inpakken en verplaatsen van uw hondje

5 creatieve tips: het inpakken en verplaatsen van uw hondje

bij Rent A Green Box, hebben we ons aandeel van bewegende huisdier problemen: triest huisdieren, vermiste huisdieren en echt pissed off huisdieren. Met meer dan 80.000 bewegingen voltooid, werden voortdurend gevraagd dat hetzelfde vraag hoe verplaats
Het verplaatsen van een boom, het voertuig en de A-frame methode

Het verplaatsen van een boom, het voertuig en de A-frame methode

dat fruitboom niet bezuinigen!Laat iemand het overplanten naar een gelukkig nieuwe thuis.Hier is hoe. Als er geen voertuig toegang is, probeer dan de boom dolly-methode.1: een boom die een nieuwe thuis moet vinden. Veel mensen weggeven bomen op craig
Verplaatsen van peperkoek trainen Cookie

Verplaatsen van peperkoek trainen Cookie

mijn motivatie om te proberen deze bewegende trein cookie begon toen mijn vier jaar oude zoon was het verfraaien van fundamentele gingerbread koekjes met glazuur. Hij had een cut-out van een trein en nadat hij dat die hij zei ingericht, "Mama, ik wil