AVR-gcc och Eclipse

Jag är lite sugen på att gå över till att använda Eclipse som IDE för samtliga project. Både för Windows, Linux, Macos och även för Embedded utveckling. Eclipse ser ut att vara ett ok IDE, och det kan vara enkelt att använda ett och samma IDE, så att man känner igen sig.

Ladda ner Eclipse från deras hemsida och installera:
https://www.eclipse.org/downloads/?

(Old) För att installera Eclipse i Ubuntu:
http://ubuntuhandbook.org/index.php/2016/01/how-to-install-the-latest-eclipse-in-ubuntu-16-04-15-10/

För Linux c++ och för Windows är det inte några problem.
För AVR har jag testat lite med denna:
http://avr-eclipse.sourceforge.net/updatesite

Ser ut att fungera. AVR-gcc behöver vara installerad sedan tidigare.
Vill man installera senaste versionen kan man kolla på:
https://www.lxrobotics.com/setup-avr-gcc-with-eclipse

När det gäller Arduino finns en färdig Eclipse installation för detta. Man kan gå in under Help -> Marketplace och söka efter Arduino. Det finns två spår att välja. Soebere är ett försök att likna Arduino IDE mer, och Eclipse C++ IDE for Arduino 3.0 är skrivet av samma person som skrivit C++ pluginen för Eclipse och liknar mer utveckling i standard C++. Jag har valt C++ spåret för att inte bygga fast mig i Arduino, och för att likna andra typer av CPU:r som kan programmeras med C++.

Det finns även en bra sida för att komma igång med FreeRTOS för AVR.
https://feilipu.me/2011/09/22/freertos-and-libraries-for-avr-atmega/

Jag installerade FreeRTOS från ”Arduino download manager” som finns tillgänglig eter att man installerat ”Eclipse C++ IDE for Arduino 3.0”.

CAN modul

Så var det dags att kolla på hur man kommunicerar via CAN.

Första försöket blir med en gammal Lavicel CANUSB kopplad till datorn, och på andra sidan blir det en Arduino Nano med en MCP2515_CAN modul.

Jag tror att CANUSB fungerar direkt i Linux. Jag hade lite problem att få den att fungera i XP, men det har kanske mindre betydelse. Som jag förstår så är den av den gammla typen, med annan UID.

För att få Arduinon att communisera använder jag detta bibliotek.
Jag skall även kolla på Adafruits bibliotek.

 

Dator och mobilappar med Qt

Har kollat lite på hur jag kan göra mina egna dator och mobilappar och fastnat för att utveckla i Qt. Först gjorde jag ett försök med gtk men det blev för krångligt. Jag ser bara ett ev. problem med Qt och det är att man måste ha källkoden open source. Just nu är det inte något problem utan kanske bara bra.

Just nu kör jag QtCreator, men det finns en plan att utveckla alting i Eclipse, både Arduino och dator/mobilapp.

Första steget blir att bemästra några grundläggande delar som:
Standard GUI
Cross platform (Windows, MAC och Linux).
MobilApp
Threds
Serial port
Graphs
Network

parser i qt

Smedby Charger story

För er som inte redan är bekanta med SmedbyCharger kommer här sammanfattning.
Jag ville göra en laddare baserat på en Atmel-prosessor. Arduino blev det naturliga valet och efter lite uppfriskande av gamla programmerings kunskaper fick jag klart för mig att OOP (Object Orienterad Programmering) var bra, eller rentav nödvändigt om man skall göra en robust och pålitlig produkt. Jag ville göra den bästa laddaren som finns, så OOP det blev.
PWM output, analog (ADC) input med analog filter och digitalfilter på det. Analog strömmätning. några LED och knappar, vips så var det nästan klart.
Hittade även appen LogViewer, som loggar laddning från div. RC laddare och beslutade mig för att integrera min laddare mot LogView.
En LCD-display är också bra att ha.

Tanken var att först göra en laddare till mina 9,6V accar, som jag använder till el-sparkcykeln. Men jag vill även kunna göra en laddare till City-El:n och även en färdig platform för att uppgradera en ”osmart” bilbatteri laddare till en smart laddare.
Leverans av data till LogView fungerar bra. Uträkning av mAh ser ut att fungera. Delta peak V fungerar bra. Så vad kan bli bättre??
Skall den vara WiFi ansluten??
Skall den få en full-matrix LCD??

Smedby Charger

Nu är det nära att den laddare blir färdig. Just nu är ver 1.1 på väg att bli klar. Här beskriver jag lita om vad denna laddare. Först blir det en kort resume:
ver:
0.7   Första release.
0.8   Fortsättning, men inga riktiga förbättringar.
1.0   Koppling till LogView mm.
1.1   Hårdvaran är helt ny, med en Arduino som cpu. Ny strömmätning och ny temp-mätning. Helt omskriven kod till objektorienterad. Koden är oberoende av typ av mätning. Output kan vara LogView och eller i2c-display.

Här nedan förklaras några delar av denna laddare.

Mina små TFT Displayer

Efter lite grävande och letande så ser det ut som att 3.5″ displayen är en ILI9481 (eller i vart fall ID 0x9481)
Kör man med ILI9327 så fungerar det också.
Använder graphictest_kbv för att identifiera.

Skall prova även med 2.8″ displayen för att se om man kan hitta vilken driver den har. (ID 0xD3D3, 9481 readonly ??)
Fick även fram 0xC0C0.

Ser ut att vara ILI9325 eller 9328. Tyvärr fungerar inte Adafrout biblioteket utan modifiering. Men LCD_ID:

Touch Screen Shield for Arduino UNO


fungerar att rita skärmen röd, så jag får försöka ordna dessa modifieringar till Adafrouts bibliotek.
https://github.com/adafruit/TFTLCD-Library.

Efter lite modifiering (adderade 0xc0c0 som en ili932x) så fungerar Adafrout-biblioteket. Touchen är dock spegelvänd, alternativt är displayen spegelvänd, för ”paint”-demot ritar höger/vänster spegelvänt. Men det kan man nog enkelt lösa.

Eller kanske UTFT, som också har stöd för ILI9325C och D. Hittade även en ili9327_8 variant.

Är fortfarande lite osäker på vilken driver det är, då det fungerar på 9325 och 9328. Troligtvis är initieringen av dessa chipp likadana.

Nästa steg blir att över huvud taget få bild på displayen med UTFT. Jag får börja med att kolla så att alla pinnar är rätt före initiering.