FreeRTOS Create Task

Hur skapar man en task i FreeRTOS för Arduino.
Exempel:

#include <Arduino.h>
#include <Arduino_FreeRTOS.h>

// Declare tasks
void
ChargeTask( void *pvParameters );
void LedTask( void *pvParameters );

void ChargeFunction(void *pvParameters)
{
// Do some charge stuff
}

void LedTaskFunction(void *pvParameters)
{
// Do some LED stuff
}

void setup()
{
ChargeFunction
   ,  (const portCHAR *)”ChargeFunktion”   // A name just for humans
   ,  256  // This stack size can be  adjusted by reading the Stack Highwater
   ,  NULL
   ,  2  // Priority, with 3 (configMAX_PRIORITIES – 1) being the highest,                   and 0 being the lowest.
,  NULL );

void loop()
{
   for (;;){};// Nothing happens in loop. Everyting happends in deklared task-funktions
}

Filosofi ??

Under denna kategori kommer det att ligga inlägg av med filosofisk karaktär.

Till att börja med tänker jag på hur man väljer vilka project man skall jobba med. Som Elon Musk säger, man skall utvärdera vilken påverkan det kommer att göra, och på hur många människor. Om de har liten påverkan på få människor är det kanske inte så bra. Men om det är en liten förbättring för väldigt många så kan det vara bra att titta vidare på. Kan man hitta någonting som förbättrar dramatiskt för många människor är det naturligtvis det bästa. Men med risk att man drar igång ett ”save the world”-liknande projekt.

Laddning i garaget.

I går installerade jag ett nytt el-skåp i garaget. Den innehåller en huvudbrytare, Energimätare och automatsäkringar. Det skall även installeras en jordfelsbrytare. Den inköptes i dag. Så 2017-08-02 var energiförbrukningen 0KWh. Energimätaren har även en pulsutgång som jag tänker använda för att mäta med ex. en Arduino. När jag kopplar in Nät i garaget kan den logga direkt till en Web-sida där jag kan se förbrukningen i realtid. Tills dess kommer jag sätta upp en liten log-bok så att jag kan ha kontroll på hur mycket el jag förbrukar och när. Första natten laddade jag ca 45KWh.

SmedbyCharger 2.0

SmedbyCharger 2.0 är en specialversion av smedbycharger som ämnar att få en första version av laddaren som fungerar för att ladda CityEl:n. Det är relativt begränsad gällande funktionalitet men skall vara en laddare som startar när den kopplas in och skall kunna vara inkopplad i flera dagar utan att kopplas bort. Initiale versionen är för BlyBatterier. Test av stabilitet utförs på gamla blybatterier för att inte förstöra Litium batterier i onödan.

För att inte vara helt olik kommande versioner av mjukvara kommer följande prosesser att styra laddaren:

ChargeTask,    Ser till att laddaren laddar enligt de globala variablerna.
SerialTask,     Skickar data till serieporten och LogViewer för analys av pågående laddning. Kan disablas för att använda serieporten för debug.
AutoCharge,     Startar laddningen automatiskt och styr laddaren om ingen extern enher styr laddaren via CAN-Buss.
TempReader,     Startar alla temp-givare, läser av temperatur och uppdaterar globala variabler.

 

CityEl laddarens funktion.

Så för att få en bra fuktion på laddaren är det några saker man behöver fundera på.
Skall laddaren först se om batteriet är anslutet.
Skall laddaren detektera om batteriet kopplas bort. (lösningen är kanske att minska pwm utan delay).
Skall en Soft-start rutin implementeras. (ja Soft start men inte soft shutoff).

Är batteriet anslutet:
Prova om man kan få resistans i batteriet. Om ingenting är anslutet bör pwm begränsas så att när någonting ansluts så rusar inte strömmen. En ”CheckIfBatteryConnected”-rutin bör implementeras, och först efter att laddaren detekterat batteriet bör laddningen börja.

För att få en fungerade laddare relativt snabbt så begränsas funktionaliteten initialt.
Funktioner som skall implementeras:

Ver 2.0
Check battery connected.
integrerad autostart.
Softstart
Simple error detektion. ex. battery dissconnected.

I ver 2.1 splittar vi på ladd-inteligensen och styrningen av laddning.
Laddaren skall kunna styras via CAN-Buss. Autostart blir en separat process som detekterar om laddaren styrs via can-buss. Om den inte styrs via can-bus skall den ha möjlighet till ett defaulp-ladd-program.

Ver 2.1
CAN-Bus controlled.
Möjlighet till autostart av laddning. (Om ingen CAN-bus enhet styr laddaren).
Smartare error-detekt.
Möjlighet till att köra en primary och flera slave-laddare.

 

 

 

Produktifiering

När man skall skapa en produkt från all det test-kod och labb/prototyper man skapat, ställs men inför lite nya problem. Vad skall kortet (PCB) heta och hur skall det revideras. Vad skall mjukvaran heta och hur skall den revideras. Skall man ha ett produktnamn där kort och mjukvara ingår och vad skall den heta och hur mycket kan man revidera en produkt. Till sist när blir det en ny produkt. Ett serienummer kopplat till Produkten, Lådan eller PCB:n?
Jag gör så här:
P/N: SDC-30a (Smedby DC-speedkontroller 30 Amp rev a)
PCB: SDC-30a rev 1 (Samma namn som produkten + rev för kortet)
S/N: Skrivs på PCB och på ev. Låda. Ev. i Flash på microcontroller.
Mjukvara: DC-Controller ver 1.0. kompileras i flera versioner för att supporta olika hårdvara. Filen kommer att heta SDC-30a_DC-C-1_0.bin

 

Nu är det dags att köpa tesla.

Dagen före midsommar, men jag tänker inte så mycket på sill och nubbe även om jag tycker om det också. Jag har hittat en Tesla model S 85 -14 i Åkersberga. Jag sa förut att när de är nere mot 600kkr så skall jag köpa en. Den här låg ute för 609kkr.
Tyvärr var den såld när jag och Sofia skulle åka och kolla på den. Jag får fortsätta att leta.

Men för att underlätta lite tänker jag göra klart vårt garage men allt vad det innebär. Primär är det detta som skall fixas.

  1. Töm garaget och sälj allting som står där.
  2. Installera elmätare för mitt garage och se till att föreningen har uppsäkrat så att jag i alla fall kan vara garanterad 3fas 16A, utan att andra i längan kan överbelasta huvudsäkringar så att jag blir utan laddning.
  3. Byt garageporten till en ny eldriven port.

Att tömma och sälja / slänga saker ur garaget behöver ingen närmare förklaring.
När det gäller elmätare så hittade jag denna elmätare, som kan vara ett enkelt alternativ som inte kostar så mycket. Jag kollar vidare för att hitta en liknande mätare med möjlighet till loggning. Utöver det så behöver jag en laddbox alternativt ett enfas-trefas-uttag som kan köpas billigt på Jula. Då kan jag även ladda City-el:n från detta uttag. Planen för Citty-el:n är dock at den skall stå på tomten ock laddas från huset.
Jag behöver även kolla med föreningen hur vi kan göra för att jag skall få minst 3x16A garanterat. Om det finns utrustning som kan mäta och styra så att strömmen fördelas på de sätt och det som varje medlem i föreningen betalar för återstår att se. Jag undersöker vidare.

Till sist när det gäller garageport ser det inte bättre ut än att det blir jag som får dra i detta. Jag kollar vidare på vilka portat som finns och om det finns någon i närheten av Åkersberga som kan byta en eller flera portar till ett bra pris. Kollar vidare.

ref:
http://teslaclubsweden.se/laddrekommendation/
http://emobility.se/