Arduino - projekti, ideje, savjeti, problemi izdvojena tema

poruka: 1.365
|
čitano: 442.229
|
moderatori: DrNasty, pirat, XXX-Man, Lazarus Long, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
Ova tema je sadržajno povezana sa sljedećim temama: Uvod u elektrotehniku (istosmjerna struja)
14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
mbaksa kaže...
Dex.pwn kaže...
sprintf koristim samo kad moram formatirati string, ostalo je sve println.

Ispis možeš formatirati i ručno.

 

 

Jedinu funkciju koja sam pronašao a da radi je sprintf. Dal postoji neka druga, a da ima opcije kao %03d, ne znam... Kako da "ručno" formatiram?

 

Skica koristi 20238 bytes (65%) od prostora za program. Maximum je  30720 bajtova.
Globalne promjenjljive koriste 1087 bajtova (53%) RAM-a, ostalo je 961 bajtova za lokalne promjenjljive. Maximim je 2048 bajtova.

17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi

Ispisuješ broj po broj ili znamenku po znamenku, znak po znam.

14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
mbaksa kaže...

Ispisuješ broj po broj ili znamenku po znamenku, znak po znam.

 

Primjer? Tek mi je sad nejanso.

U biti, optimizirao sam kod, sad valjda ima dovoljno memorije. No problem mi i dalje smrdi, i to jako.

Znači dok je napajanje dobivao prek USB-a, sve je radilo super(nakon što sam optimizirao kod). Spojim ja njega na baterije(napunjene su skroz, booster diže na nešt sitno iznad 5V), kad ono opet isti problem.

Vratim ga na komp, radi sve opet. Nakon tog ga vratim na baterije, i izgleda da sad i na baterijama radi kako treba.

Na kraju sam stavio drugi hall senzor.

17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi
Dex.pwn kaže...
mbaksa kaže...

Ispisuješ broj po broj ili znamenku po znamenku, znak po znam.

 

Primjer? Tek mi je sad nejanso.

Hoćeš ispisati 25.4 km/h. Uzmeš cijeli broj (držiš ga u varijabli tipa byte jer sigurno nećeš imati brzinu višu od 255) - imaš 25. Ispišeš 25. Ispišeš točku. Uzmeš decimalni dio. Ispišeš decimalni dio. I na kraju ispišeš " km/h".

 

Ako ti je brzina recimo 5.4, a hoćeš ispisati "vodeći razmak" (ne znam kolko ima smisla ispisivati vodeću nulu jer ona samo smanjuje čitljivost), onda uzmeš cijeli broj. Provjeriš je li manji od 10. Ako je manji od deset, onda ispišeš jedan razmak. I dalje sve isto kao u prvom slučaju.

14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
mbaksa kaže...
Dex.pwn kaže...
mbaksa kaže...

Ispisuješ broj po broj ili znamenku po znamenku, znak po znam.

 

Primjer? Tek mi je sad nejanso.

Hoćeš ispisati 25.4 km/h. Uzmeš cijeli broj (držiš ga u varijabli tipa byte jer sigurno nećeš imati brzinu višu od 255) - imaš 25. Ispišeš 25. Ispišeš točku. Uzmeš decimalni dio. Ispišeš decimalni dio. I na kraju ispišeš " km/h".

 

Ako ti je brzina recimo 5.4, a hoćeš ispisati "vodeći razmak" (ne znam kolko ima smisla ispisivati vodeću nulu jer ona samo smanjuje čitljivost), onda uzmeš cijeli broj. Provjeriš je li manji od 10. Ako je manji od deset, onda ispišeš jedan razmak. I dalje sve isto kao u prvom slučaju.

 

Budem napravio tako.

Opet se događa, no rijeđe nego prošli put.

17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi

I gledaj recimo za brzinu. Držiš ju u floatu? Znači bezveze kuriš 4 bajta na nju i još se mikrokontroler mora mučiti s decimalom. Zašto ti brzina ne bi bila uint16_t - znači nepredznačeni (unsigned) int veličine dva bajta?

 

Pa da ti je brzina 25,4 km/h zapisana kao broj 254? Ili 2540 ako ciljaš na dvije decimale? Uštedio si dva bajta RAM-a i ne daviš mikrokontroler decimalnim brojevima. ATmega328p mikrokontroler nema FPU (jedinicu za računanje s decimalnim brojevima), nego se to softverski mora rješavati - znači program ti je veći nego bi trebao biti, sporiji nego bi trebao biti i troši više memorije nego bi trebao.

14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
mbaksa kaže...

I gledaj recimo za brzinu. Držiš ju u floatu? Znači bezveze kuriš 4 bajta na nju i još se mikrokontroler mora mučiti s decimalom. Zašto ti brzina ne bi bila uint16_t - znači nepredznačeni (unsigned) int veličine dva bajta?

 

Pa da ti je brzina 25,4 km/h zapisana kao broj 254? Ili 2540 ako ciljaš na dvije decimale? Uštedio si dva bajta RAM-a i ne daviš mikrokontroler decimalnim brojevima. ATmega328p mikrokontroler nema FPU (jedinicu za računanje s decimalnim brojevima), nego se to softverski mora rješavati - znači program ti je veći nego bi trebao biti, sporiji nego bi trebao biti i troši više memorije nego bi trebao.

 

Bilo je srezano na ispod 50% RAM-a, i opet se isto dogodilo.

Izgleda da nije do toga. Sad je na 53% RAM-a, i 64% ROM-a.

Pokušao sam s tim ručnim formatiranjem, no ili mi prikaže naziv(tipa top speed:), ili brojku(tipa 43 km/h)

Inače, te stvari prikazujem u dva reda, i koristim \n za novi red.

Poruka je uređivana zadnji put ned 5.2.2017 19:26 (Dex.pwn).
17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi
Dex.pwn kaže...
Bilo je srezano na ispod 50% RAM-a, i opet se isto dogodilo.

Izgleda da nije do toga. Sad je na 53% RAM-a, i 64% ROM-a.

Koju pločicu koristiš?

 

Napon neka ti ne prelazi 5V, budi siguran da ni u kojem slučaju ne ide preko toga, provjeri žice, pogotovo spojeve na GND. Probaj staviti 4,7k ili eventualno 10k pullup otpornike na SDA i SCL linije I2C sabirnice

 

Dex.pwn kaže...
Pokušao sam s tim ručnim formatiranjem, no ili mi prikaže naziv(tipa top speed:), ili brojku(tipa 43 km/h)

Inače, te stvari prikazujem u dva reda, i koristim \n za novi red.

To što veliš da si napravio i što si stvarno napravio nisu nužno iste stvari.

14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
mbaksa kaže...
Dex.pwn kaže...
Bilo je srezano na ispod 50% RAM-a, i opet se isto dogodilo.

Izgleda da nije do toga. Sad je na 53% RAM-a, i 64% ROM-a.

Koju pločicu koristiš?

 

Napon neka ti ne prelazi 5V, budi siguran da ni u kojem slučaju ne ide preko toga, provjeri žice, pogotovo spojeve na GND. Probaj staviti 4,7k ili eventualno 10k pullup otpornike na SDA i SCL linije I2C sabirnice

 

Dex.pwn kaže...
Pokušao sam s tim ručnim formatiranjem, no ili mi prikaže naziv(tipa top speed:), ili brojku(tipa 43 km/h)

Inače, te stvari prikazujem u dva reda, i koristim \n za novi red.

To što veliš da si napravio i što si stvarno napravio nisu nužno iste stvari.

 

Nano, budem spustio napon na 4.9V

17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi
Dex.pwn kaže...
Nano, budem spustio napon na 4.9V

Ne kužim kak ti program može zauzimati tako malo RAM-a uz korištenje Adafruitove biblioteke za OLED ekrančić. Skoro pa najjednostavniji mogući program:

void loop() {
int i = 0;
display.print(i++);
display.display();
delay(2000);
display.clearDisplay();
}

 

mi zauzima:

Sketch uses 10,498 bytes (34%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,469 bytes (71%) of dynamic memory, leaving 579 bytes for local variables. Maximum is 2,048 bytes.

14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
mbaksa kaže...
Dex.pwn kaže...
Nano, budem spustio napon na 4.9V

Ne kužim kak ti program može zauzimati tako malo RAM-a uz korištenje Adafruitove biblioteke za OLED ekrančić. Skoro pa najjednostavniji mogući program:

void loop() {
int i = 0;
display.print(i++);
display.display();
delay(2000);
display.clearDisplay();
}

 

mi zauzima:

Sketch uses 10,498 bytes (34%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,469 bytes (71%) of dynamic memory, leaving 579 bytes for local variables. Maximum is 2,048 bytes.

 

 

Čarolija

15 godina
offline
Re: Arduino - projekti, ideje, savjeti, problemi
Dex.pwn kaže...
mbaksa kaže...
Dex.pwn kaže...
Nano, budem spustio napon na 4.9V

Ne kužim kak ti program može zauzimati tako malo RAM-a uz korištenje Adafruitove biblioteke za OLED ekrančić. Skoro pa najjednostavniji mogući program:

void loop() {
int i = 0;
display.print(i++);
display.display();
delay(2000);
display.clearDisplay();
}

 

mi zauzima:

Sketch uses 10,498 bytes (34%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,469 bytes (71%) of dynamic memory, leaving 579 bytes for local variables. Maximum is 2,048 bytes.

 

 

Čarolija

Prije bi reko da si ti nesto shebo 

14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
CroNk3r kaže...
Dex.pwn kaže...
mbaksa kaže...
Dex.pwn kaže...
Nano, budem spustio napon na 4.9V

Ne kužim kak ti program može zauzimati tako malo RAM-a uz korištenje Adafruitove biblioteke za OLED ekrančić. Skoro pa najjednostavniji mogući program:

void loop() {
int i = 0;
display.print(i++);
display.display();
delay(2000);
display.clearDisplay();
}

 

mi zauzima:

Sketch uses 10,498 bytes (34%) of program storage space. Maximum is 30,720 bytes.
Global variables use 1,469 bytes (71%) of dynamic memory, leaving 579 bytes for local variables. Maximum is 2,048 bytes.

 

 

Čarolija

Prije bi reko da si ti nesto shebo 

 

Sve što sam isprogramirao i radi.

Bacite vi kompajl, pa javite.

http://pastebin.com/XZpHLYuW

Adafruit GFX library 1.1.5, i SSD1306 1.1.2

Poruka je uređivana zadnji put ned 5.2.2017 20:57 (Dex.pwn).
17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi
CroNk3r kaže...
Dex.pwn kaže...
Čarolija

Prije bi reko da si ti nesto shebo 

Naravno.  

 

Dex, druškane dragi, otvori Adafruit_SSD1306.h - tamo na 74. liniji pronaći ćeš otkomentirano

#define SSD1306_128_32

i zakomentirano

//   #define SSD1306_128_64

 

Ti znači moraš napraviti obrnuto, jer imaš ekran 128x64 piksela.

 

Dakle, upravo ono što sam i napisao - korupcija memorije. Samo što je do nje došlo zbog toga što se za ekran koristila memorija koja se nije smjela koristiti, koja nije bila alocirana za ekran. U 480 bajtova memorije u koje je driver za ekran zapisivao - nije smio.

 

 

PS U programiranju nema magije. Samo zajebi. Koji manje upućenima mogu izgledati kao magija. 

 

Poruka je uređivana zadnji put ned 5.2.2017 21:18 (mbaksa).
14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
mbaksa kaže...
CroNk3r kaže...
Dex.pwn kaže...
Čarolija

Prije bi reko da si ti nesto shebo 

Naravno.  

 

Dex, druškane dragi, otvori Adafruit_SSD1306.h - tamo na 74. liniji pronaći ćeš otkomentirano

#define SSD1306_128_32

i zakomentirano

//   #define SSD1306_128_64

 

Ti znači moraš napraviti obrnuto, jer imaš ekran 128x64 piksela.

 

Dakle, upravo ono što sam i napisao - korupcija memorije. Samo što je do nje došlo zbog toga što se za ekran koristila memorija koja se nije smjela koristiti, koja nije bila alocirana za ekran. U 480 bajtova memorije u koje je driver za ekran zapisivao - nije smio.

 

 

PS U programiranju nema magije. Samo zajebi. Koji manje upućenima mogu izgledati kao magija. 

 

 

 

Sad ću trebat pola koda prepravljati :D

 

Skica koristi 19886 bytes (64%) od prostora za program. Maximum je  30720 bajtova.
Globalne promjenjljive koriste 1622 bajtova (79%) RAM-a, ostalo je 426 bajtova za lokalne promjenjljive. Maximim je 2048 bajtova.
Low memory available, stability problems may occur.

17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi

Još kad tome pridodamo sve one varijable koje ti počinju s _...

14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi

CTRL + F

 

15 godina
offline
Arduino - projekti, ideje, savjeti, problemi

Jel netko isprobao mozda programirati Arduino u Eclipse ili Visual Studiu?

Ja izgubim volju cim upalim onaj Arduino IDE, naucen sam na ova 2 IDE-a kod jave i C#.

Jednostavno me ubija pisati full naredbe bez autocomplete-a.

Moj PC  
1 0 hvala 0
14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
CroNk3r kaže...

Jel netko isprobao mozda programirati Arduino u Eclipse ili Visual Studiu?

Ja izgubim volju cim upalim onaj Arduino IDE, naucen sam na ova 2 IDE-a kod jave i C#.

Jednostavno me ubija pisati full naredbe bez autocomplete-a.

 

Mene više zanima u Sublimeu.

17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi

Mislim da sam jednom davno pokušao složiti Eclipse, ali onda odustao od toga.

 

PlatformIO bi trebala biti dobra zamjena, ali s njim nešto nije šljakalo - mislim da sam se igrao s esp-om kad sam ga probao, ali nisam ga mogao instalirati tako da radi. Tako da sam na kraju odustao i od toga.

 

Lista IDE-ova za Arduino je ovdje, pa ako netko nađe nešto što mu se viđa i uspije da mu funkcionira, slobodno podijeli s ekipom.

16 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
CroNk3r kaže...

Jel netko isprobao mozda programirati Arduino u Eclipse ili Visual Studiu?

VisualMicro addon za Visual Studio.

 

Podrška za intellisense, librarye, direktni upload iz Visual Studia...

Ovaj forumaš je netolerantan prema osobama svih nacionalnosti, rasa i spolnog opredjeljenja te smatra da svaka osoba ima pravo biti ugnjetavana zbog svojih glupih mišljenja.
17 godina
moderator
online
Re: Arduino - projekti, ideje, savjeti, problemi
Sum_of_all_fears kaže...
CroNk3r kaže...

Jel netko isprobao mozda programirati Arduino u Eclipse ili Visual Studiu?

VisualMicro addon za Visual Studio.

To je i meni zapelo za oko. Jesi probao?

14 godina
neaktivan
offline
Arduino - projekti, ideje, savjeti, problemi

Evo screenshot jednog projekta iz Atmel Studia (+VisualMicro addon)

 

Iskreno ne znam kako itko može programirati išta dulje od Blink LED u Arduino IDE.

 
0 0 hvala 0
16 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi
mbaksa kaže...

To je i meni zapelo za oko. Jesi probao?

Jesam, za malo veće projekte (alarmna centrala što radim) i sasvim je ok. Radi kao što i očekuješ da radi.

 

Za male projekte ga ne koristim jer moj VS se boota 3-4 minute, spaja se na TFS pa moram VPN paliti a to mi se neda i tako... Za manje stvari mi je bolji Arduino IDE.

 

Jedino ne znam jel radi na Community Editionu VSa - ja imam Enterprise

Ovaj forumaš je netolerantan prema osobama svih nacionalnosti, rasa i spolnog opredjeljenja te smatra da svaka osoba ima pravo biti ugnjetavana zbog svojih glupih mišljenja.
14 godina
neaktivan
offline
Re: Arduino - projekti, ideje, savjeti, problemi
Sum_of_all_fears kaže...

Jedino ne znam jel radi na Community Editionu VSa - ja imam Enterprise

 

Radi.

8 godina
neaktivan
offline
Arduino - projekti, ideje, savjeti, problemi

pozdrav svim forumašima ,vidim da se ovdje dosta radi sa arduinom kako sam i ja prije par godina krenuo sa istim evo podjelit ću sa vama što sam u proteklo vrijeme izradio pa možda nekoga potaknem na izradu 

zadnje što sam radio je lemna stanica sa arduino micro pro ,može i sa nano i sa jeftinim TFT 2.4" displejem komplet dijelova naručenih preko eBay-a košta 17 dolara

u prilogu su slike 

malo probnog testiranja :

 

Poruka je uređivana zadnji put pon 6.2.2017 14:12 (morski21).
 
6 0 hvala 4
14 godina
odjavljen
offline
Arduino - projekti, ideje, savjeti, problemi

Imam problem.

Ekran jednostavno ne želi napraviti bitmap po mojoj fotki. Ne znam gdje je greška.

Fotka izgleda kao da je razbacao piksele, možda je greška kod LCD Assistanta? U primjeru na YT-u kojeg sam gledao radi kako treba.

Ikonice sam crtao u Illustratoru, i izbacio sam ih kao bitmap.

Evo koda

 

void _ekran_baterija_nisko()
{
const unsigned char PROGMEM _ikonica [] = {
0x00, 0x07, 0xF7, 0x77, 0x31, 0x77, 0xF7, 0xF7, 0x77, 0x71, 0x77, 0xF7, 0x07, 0x00, 0x00, 0x07,
0x07, 0x06, 0x07, 0x07, 0x07,
}; 

    _osvjezi = true;

    display.drawBitmap(0, 25, _ikonica, 13, 13, WHITE);
}

 

 

 

Pokušao sam izbaciti array kao vertikalno, i kao horizontalno, piksela po bajtu je 8, a ikonica je 13x13 px.

 
0 0 hvala 0
8 godina
neaktivan
offline
Re: Arduino - projekti, ideje, savjeti, problemi

kod uporabe grafike na TFT koristim konverter ImageConverter 565 v2.3 koji konvertira sliku i napravi C sorce file koji se ubacuje unutar sketch-a 

 

ovako izgleda zaglavlje:

// Generated by : ImageConverter 565 v2.3
// Generated from: VolumeUp.jpg
// Time generated: 01.09.2016 02:09:58
// Dimensions : 34x28 pixels
// Size : 1.904 Bytes

#include <avr/pgmspace.h>

 

const unsigned short VolumeUp[0x3B8] PROGMEM ={

0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, ............

 

untarar programa koristi se ovako:

 

extern unsigned int VolumeUp[0x3B8];

 

void drawVolumeUp() {
myGLCD.drawBitmap (241, 175, 34, 28, VolumeUp);

 

link do UTFT library :

http://www.rinkydinkelectronics.com/library.php?id=51

 

nadam se da će ti možda ovo pomoći

pozzz

 

 

Poruka je uređivana zadnji put pon 6.2.2017 19:55 (morski21).
8 godina
neaktivan
offline
Re: Arduino - projekti, ideje, savjeti, problemi

sad vidim da se radi o OLED displeju na ovom linku pokazuje kako se radi sa ikonama odnosno grafikom :

14 godina
odjavljen
offline
Re: Arduino - projekti, ideje, savjeti, problemi

On na tome ekranu ima više pinova od mene.

Ja imam VCC, GND, SCK, I SDA.

Ova tema je sadržajno povezana sa sljedećim temama: Uvod u elektrotehniku (istosmjerna struja)
Nova poruka
E-mail:
Lozinka:
 
vrh stranice