Stap 3: Extensies en conclusies
Zoals hier gepresenteerd gaat de geprogrammeerde pad verloren wanneer de macht wordt verwijderd. Dus een mogelijke uitbreiding aan dit project zou het pad opgeslagen in EEPROM zodat het wordt onderhouden door kracht fietsen.
Ook in deze schets geeft het menu de huidige positie in de tekst aan de onderkant van het scherm. BV positie 3 van 10. Een andere uitbreiding zou overstappen op de achtergrondkleur van de huidige positie van een andere kleur, bijvoorbeeld gele < gb y > , < bg g > van groen, als de arm door middel van die positie beweegt.
Gebruik van isRefresh()
Dit is het eerste project de nieuwe gebruikt iksRefresh() functie van pfod.
Vanaf de eerste release had pfod een menu vernieuwen faciliteit in gebouwd. Wanneer een pfodDevice, zoals deze robotarm, een menu naar de pfodApp stuurt kan een interval opnieuw vragen bevatten. De pfodApp vervolgens opnieuw gevraagd om het menu op dit interval om de nieuwste updates. In versies van pfodApp vóór V1.2.84 was er geen manier voor de pfodDevice om te weten als het verzoek om het menu de eerste aanvraag of opnieuw een aanvraag voor een was. Dus moest de pfodDevice terug te sturen het hele menu elke keer.
Dit kan een aanzienlijke hoeveelheid tijd duren voor lange menu's en langzame baud-rates. Bijvoorbeeld in dit project heeft het hoofdmenu ongeveer 540 bytes waarin meer dan een halve seconde te sturen met 9600 baud. Omdat Arduino blokkeren seriële verbindingen gebruikt, betekent dit de belangrijkste loop lijkt te stoppen met werken elke seconde of zo terwijl het menu vernieuwen wordt verzonden.
Dit is merkbaar wanneer de arm, als een pauze in van de arm beweging per seconde draait. De isRefresh() functie ondervangt dit probleem. Als de pfodDevice de interval opnieuw vragen als een negatief getal stuurt en vervolgens de pfodApp maakt gebruik van het nieuwe bericht vernieuwen {:< cmd >} , opnieuw aanvragen het menu en de pfodParser stelt u de vlag isRefresh() voordat dit wordt doorgegeven aan de opdracht om te vragen het menu opnieuw worden verzonden. Van de pfodDevice code kan nu deze vlag door de aanroepende isRefresh() controleren en als het is ingesteld, terug te sturen alleen het menu wijzigingen in plaats van het volledige menu. De menu-updates zijn veel korter, ongeveer 100 bytes en niet leiden tot een merkbare onderbreking van de armbeweging.
Deze isRefresh()-functie is een optimalisatie en als zodanig moet niet worden gebruikt, tenzij de normale vernieuwen merkbare problemen veroorzaakt.
Conclusie
Het project biedt een eenvoudige manier om programma complexe paden voor uw robotarm. De MeArm werd gebruikt als in het voorbeeld, maar dezelfde aanpak kan worden toegepast op andere robotarmen.