Pre začiatočníkov: arduino projekty
Moderátor: Moderátori
- Gavin Milarrr
- Ultimate člen
- Príspevky: 2533
- Dátum registrácie: 06 Okt 2008, 00:00
- Bydlisko: Liberec
- Vek: 48
Re: arduino projekty
Raspberry je ARM mikropočítač. Pokud chceš, bude fungovat jako trochu pomalejší PC c Linuxem (zjednodušeně řečeno). Pokud chceš, bude z něj normální průmyslová řídící jednotka.
Co se týče programování, dá se říct, že cokoli umí komunikovat s GPIO lze použít. Já například pro připojovaná zařízení píšu moduly do jádra, není to nic složitého. Jediné úskalí je v obtížnosti synchronního zpracování dat -- jedna akce trvá pokaždé jinou dobu. Ale hlavně, máš zařízení, na které nainstaluješ normální operační systém, se kterým můžeš komunikovat třeba přes SSH nebo si k němu připojit normální monitor a klávesnici, a zároveň máš cca 22 jednobitových portů libovolně nastavitelných. Arduino je spíš jednočipák bez terminálu.
Co se týče programování, dá se říct, že cokoli umí komunikovat s GPIO lze použít. Já například pro připojovaná zařízení píšu moduly do jádra, není to nic složitého. Jediné úskalí je v obtížnosti synchronního zpracování dat -- jedna akce trvá pokaždé jinou dobu. Ale hlavně, máš zařízení, na které nainstaluješ normální operační systém, se kterým můžeš komunikovat třeba přes SSH nebo si k němu připojit normální monitor a klávesnici, a zároveň máš cca 22 jednobitových portů libovolně nastavitelných. Arduino je spíš jednočipák bez terminálu.
0
Taky vás štve debilita a sopláctví? Na http://efis.tul.cz/forum běží experimentální odblbené fórum.
-
- Ultimate člen
- Príspevky: 1639
- Dátum registrácie: 23 Jan 2008, 00:00
- Bydlisko: Trenčianska Turná
- Vek: 33
- Kontaktovať používateľa:
Re: arduino projekty
gavinn, nevieš povedať aka je momentálne situacia ohladom prevádzky nejakého RTOS na Rasberry ? Čo som čítal na webe tak udajne existuje nejaký základný port FreeRTOS.
Pod RTOS si minimálne predstavujem systém kde sú ulohy zoradene podla priority (aspon 2 - 3 úrovne) a v prípdade nedostatku výkonu spúšťané podla priority. Úlohy sú vykonávané v nejakom definovatelnom časovom limite.
tažko stavať riadiacu jednotku s obyčajným linuxom ked ssh alebo iný systémový/hardvérový proces zaťaží ARM procák a pridá napríklad 10ms oneskorenie nejakej úlohy riadiacej jednotky.
Pod RTOS si minimálne predstavujem systém kde sú ulohy zoradene podla priority (aspon 2 - 3 úrovne) a v prípdade nedostatku výkonu spúšťané podla priority. Úlohy sú vykonávané v nejakom definovatelnom časovom limite.
tažko stavať riadiacu jednotku s obyčajným linuxom ked ssh alebo iný systémový/hardvérový proces zaťaží ARM procák a pridá napríklad 10ms oneskorenie nejakej úlohy riadiacej jednotky.
0
http://mkbci.com
FEL UNIZA 2015, Ing.
ľudstvo je vírus ktorý napadol Zem
nerobme si ťažkú hlavu z debilov čo nám ani po členky nesiahajú, buďme radi že my dačo dokážeme a smejme sa im akí sú sprostí
FEL UNIZA 2015, Ing.
ľudstvo je vírus ktorý napadol Zem
nerobme si ťažkú hlavu z debilov čo nám ani po členky nesiahajú, buďme radi že my dačo dokážeme a smejme sa im akí sú sprostí
- lucky62
- Zaslúžilý člen
- Príspevky: 1151
- Dátum registrácie: 14 Feb 2012, 20:16
- Bydlisko: Liptovský Mikuláš, SK
Re: arduino projekty
Aby sme mohli trochu pomôcť, môžeš sem dať schému a program? Aké máš arduino? UNO, Nano, Mega?E001 napísal:Tak trocha zneužijem túto tému. Už dva dni vlastním ten malý zázrak, zvaný Arduino ... Plánujem ho využiť na Up - Down počítadlo impulzov s ôsmimi sedemsegmentovkami cez MAX 7219. Tak som na začiatok chcel vyskúšať jednoduchý demo program, ktorý by na displeji vypísal arduino. No nevypísal...
0
Re: arduino projekty
Tak od číňana som kúpil DCcELe DDcdruimo uno , displej 8x7segmentovky s MAX7219.
Program používam Arduino 1.8.2. Vyskúšať som chcel na začiatok toto:
// Program: Display 7 segments - 8 digit MAX7219
// Load the LedControl library
#include "LedControl.h"
// Definitions pins and number of modules in the circuit
LedControl lc = LedControl ( 7 , 6 , 5 , 1 );
void setup ()
{
// Initialize the module
lc.shutdown ( 0 , false);
// display brightness adjustment
lc.setIntensity ( 0 , 3 );
// Delete the display
lc.clearDisplay ( 0 );
}
void loop ()
{
// Send Arduino for display
writeArduinoOn7Segment ();
// Countdown
countdown();
// Init counter 0 1 million
for ( long i = 0 ; i < 1000000 ; i ++)
{
printNumber (i);
}
delay ( 500 );
}
void printNumber ( long v)
{
// Variable value digit
int digito1;
int digito2;
int digito3;
int digito4;
int digito5;
int digito6;
int digito7;
int digito8;
// Calculate the value of each digit
digito1 v =% 10 ;
digito2 = (V / 10 )% 10 ;
digito3 = (V / 100 )% 10 ;
digito4 = (V / 1000 )% 10 ;
digito5 = (V / 10000 )% 10 ;
digito6 = (v / 100000 )% 10 ;
digito7 = (v / 1000000 )% 10 ;
digito8 = (v / 10000000 )% 10 ;
// Display the value of each digit in the display
lc.setDigit ( 0 , 7 , (byte) digito8, false);
lc.setDigit ( 0 , 6 , (byte) digito7, false);
lc.setDigit ( 0 , 5 , (byte) digito6, false);
lc.setDigit ( 0 , 4 , (byte) digito5, false);
lc.setDigit ( 0 , 3 , (byte) digito4, false);
lc.setDigit ( 0 , 2 , (byte) digito3, false);
lc.setDigit ( 0 , 1 , (byte) digito2, false);
lc.setDigit ( 0 , 0 , (byte) digito1, false);
delay ( 00 );
}
void writeArduinoOn7Segment ()
{
// Arduino on the display
for ( int i = 0 ; i < 21 ; i ++)
{
lc.setChar ( 0 , i, 'a' , false);
lc.setRow ( 0 , i 1 , 0x05 );
lc.setChar ( 0 , i- 2 , 'd' , false);
lc.setRow ( 0 , i- 3 , 0x1c );
lc.setRow ( 0 , i- 4 , B00010000);
lc.setRow ( 0 , i 5 , 0x15 );
lc.setRow ( 0 , i- 6 , 0x1D );
lc.setChar ( 0 , i- 7 , '' , false);
lc.setChar ( 0 , i- 8 , 'and' , false);
lc.setChar ( 0 , i- 9 , '' , false);
lc.setRow ( 0 , i- 10 , B1001110);
lc.setRow ( 0 , i- 11 , B0010000);
lc.setChar ( 0 , i- 12 , 'a' , false);
lc.setChar ( 0 , i- 13 , '' , false);
delay ( 300 );
}
Program používam Arduino 1.8.2. Vyskúšať som chcel na začiatok toto:
// Program: Display 7 segments - 8 digit MAX7219
// Load the LedControl library
#include "LedControl.h"
// Definitions pins and number of modules in the circuit
LedControl lc = LedControl ( 7 , 6 , 5 , 1 );
void setup ()
{
// Initialize the module
lc.shutdown ( 0 , false);
// display brightness adjustment
lc.setIntensity ( 0 , 3 );
// Delete the display
lc.clearDisplay ( 0 );
}
void loop ()
{
// Send Arduino for display
writeArduinoOn7Segment ();
// Countdown
countdown();
// Init counter 0 1 million
for ( long i = 0 ; i < 1000000 ; i ++)
{
printNumber (i);
}
delay ( 500 );
}
void printNumber ( long v)
{
// Variable value digit
int digito1;
int digito2;
int digito3;
int digito4;
int digito5;
int digito6;
int digito7;
int digito8;
// Calculate the value of each digit
digito1 v =% 10 ;
digito2 = (V / 10 )% 10 ;
digito3 = (V / 100 )% 10 ;
digito4 = (V / 1000 )% 10 ;
digito5 = (V / 10000 )% 10 ;
digito6 = (v / 100000 )% 10 ;
digito7 = (v / 1000000 )% 10 ;
digito8 = (v / 10000000 )% 10 ;
// Display the value of each digit in the display
lc.setDigit ( 0 , 7 , (byte) digito8, false);
lc.setDigit ( 0 , 6 , (byte) digito7, false);
lc.setDigit ( 0 , 5 , (byte) digito6, false);
lc.setDigit ( 0 , 4 , (byte) digito5, false);
lc.setDigit ( 0 , 3 , (byte) digito4, false);
lc.setDigit ( 0 , 2 , (byte) digito3, false);
lc.setDigit ( 0 , 1 , (byte) digito2, false);
lc.setDigit ( 0 , 0 , (byte) digito1, false);
delay ( 00 );
}
void writeArduinoOn7Segment ()
{
// Arduino on the display
for ( int i = 0 ; i < 21 ; i ++)
{
lc.setChar ( 0 , i, 'a' , false);
lc.setRow ( 0 , i 1 , 0x05 );
lc.setChar ( 0 , i- 2 , 'd' , false);
lc.setRow ( 0 , i- 3 , 0x1c );
lc.setRow ( 0 , i- 4 , B00010000);
lc.setRow ( 0 , i 5 , 0x15 );
lc.setRow ( 0 , i- 6 , 0x1D );
lc.setChar ( 0 , i- 7 , '' , false);
lc.setChar ( 0 , i- 8 , 'and' , false);
lc.setChar ( 0 , i- 9 , '' , false);
lc.setRow ( 0 , i- 10 , B1001110);
lc.setRow ( 0 , i- 11 , B0010000);
lc.setChar ( 0 , i- 12 , 'a' , false);
lc.setChar ( 0 , i- 13 , '' , false);
delay ( 300 );
}
0
Re: arduino projekty
Pri verifikácii napíše Exit status 1. Nastala chyba pri kompilácii pre dosku Arduino/Genuino uno.
0
Re: arduino projekty
nemas kniznicu "LedControl.h" v PC
-- Spojený príspevok 13 Máj 2017, 20:02 --
ten kod co si dal nefunguje, aj po natiahnuti kniznice ma v sebe vela chyb
vobec nepozna funckciu Countodwn, v kode sa nachadza velke "V" na mieste kde ma byt male, niekde chyba zatvorka, a dva minusy v "i - 1" a "i - 5"
odporucam pohladat nieco funkcne
-- Spojený príspevok 13 Máj 2017, 20:02 --
ten kod co si dal nefunguje, aj po natiahnuti kniznice ma v sebe vela chyb
vobec nepozna funckciu Countodwn, v kode sa nachadza velke "V" na mieste kde ma byt male, niekde chyba zatvorka, a dva minusy v "i - 1" a "i - 5"
odporucam pohladat nieco funkcne
0
- lucky62
- Zaslúžilý člen
- Príspevky: 1151
- Dátum registrácie: 14 Feb 2012, 20:16
- Bydlisko: Liptovský Mikuláš, SK
Re: arduino projekty
Inak Arduino IDE by malo zobraziť okrem tejto všeobecnej hlášky aj nejakú konkrétnejšiu a riadok, na ktorom je chyba, by mal byť farebne zvýraznený. Viď príklad...
Ja mám Arduino IDE nastavenú tmavú tému, ale je to vidieť - chybný riadok je tmavočervený.
EDIT: Konkrétne pre chýbajúcu knižnicu to napíše niečo takéto:
Ja mám Arduino IDE nastavenú tmavú tému, ale je to vidieť - chybný riadok je tmavočervený.
EDIT: Konkrétne pre chýbajúcu knižnicu to napíše niečo takéto:
/SHARED/SSD_DATA/00_MyProjects/ArduinoProjects/empty/empty.ino:1:22: fatal error: hovadina.h: No such file or directory
#include <hovadina.h>
^
compilation terminated.
exit status 1
0
Re: arduino projekty
Tak som ho rozchodil Knižnicu na Max som nainštaloval, našiel som aj iný demo program, ktorý je chodivý.
Sa teším, ako keď vnuk spravil prvý krôčik.
Sa teším, ako keď vnuk spravil prvý krôčik.
0
Re: arduino projekty
Ja mam oboje.Gavin Milarrr napísal:Nechci vám brát elán, ale Arduino mě přijde spíš jako marketingový projekt než seriozní platforma. Doporučuji Raspberry Pi.
Arduino bohate postaci na meranie teploty, kupis za babku v Cine, strcis do USB a bezi.
RPI pozivam s kamerou (doporucujem, za tu cenu som velmi spokojny s kvalitou). Uz mi znicil 3 SD cards ked vypadla elektrina, konfigurace mi vezme cele odpoledne.
Pripomina mi to: co je lepsie, kladivo alebo sroubovak?
0
Samozřejmě, že dědeček nemá kapesní hodinky poháněné elektřinou. Takový nesmysl si může vymyslit jen Saturnin. (Zdenek Jirotka, 1942)
-
- Ultimate člen
- Príspevky: 3963
- Dátum registrácie: 04 Feb 2013, 22:04
- Bydlisko: U alibabky v Poprade
- Vek: 32
Re: arduino projekty
Iniciativa zatial fajn.
Uz si nieco kupil?
Uz si nieco kupil?
0
Motto: Nikto nie je tak velky, aby sa nevosiel do truhly.
Re: arduino projekty
Iniciative sa medze nekladu.
Este bohuzial nie. Na bazosi uz to stiahli a inde su dost slahnute ceny za kit. Ak mas typa posli.
Este bohuzial nie. Na bazosi uz to stiahli a inde su dost slahnute ceny za kit. Ak mas typa posli.
0
Re: arduino projekty
Tak som si na tom simulatore urobil hada z 8 lediek, ale zacal som s blikacom o jednej ledke
tu je program. Urcite sa to daj nejako zjednodusit ale na zciatok celkom ok si myslim.
V prilohe je subor txt. Je konfiguracia komponentov v simulatore (aspon tak som to pochopil). Prejdi v programe simulatora do Configure / I/O Devices / Load
Daj nacitat a mas to. Program len skopiruj.
tu je program. Urcite sa to daj nejako zjednodusit ale na zciatok celkom ok si myslim.
Kód: Vybrať všetko
void setup() {
pinMode(01, OUTPUT); //nastav pin 01 ako vystup
pinMode(02, OUTPUT);
pinMode(03, OUTPUT);
pinMode(04, OUTPUT);
pinMode(05, OUTPUT);
pinMode(06, OUTPUT);
pinMode(07, OUTPUT);
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(01, HIGH); //na pin 01 pust prud
delay(50); //pockaj 50 ms
digitalWrite(01,LOW); //na pin 01 vypni prud
delay(50); //pockaj 50 ms
digitalWrite(02, HIGH);
delay(50);
digitalWrite(02,LOW);
delay(50);
digitalWrite(03, HIGH);
delay(50);
digitalWrite(03,LOW);
delay(50);
digitalWrite(04, HIGH);
delay(50);
digitalWrite(04,LOW);
delay(50);
digitalWrite(05, HIGH);
delay(50);
digitalWrite(05,LOW);
delay(50);
digitalWrite(06, HIGH);
delay(50);
digitalWrite(06,LOW);
delay(50);
digitalWrite(07, HIGH);
delay(50);
digitalWrite(07,LOW);
delay(50);
digitalWrite(13, HIGH);
delay(50);
digitalWrite(13, LOW);
delay(50);
}
Daj nacitat a mas to. Program len skopiruj.
- Prílohy
-
- led had 8 lediek.txt
- (385 Bajtov) 85 stiahnutí
0
-
- Ultimate člen
- Príspevky: 2587
- Dátum registrácie: 20 Júl 2010, 00:00
- Bydlisko: okolie KE
- Vek: 27
Re: arduino projekty
Pre začiatok, ten loop by sa dal podstatne skrátiť použitím cykla for. Indexy pinov, kde sú LEDky by som si nasypal do poľa.
0
Re: arduino projekty
Takze som to trocha upravil. Najprv to musim pochopit polopatisticky a potom budem zjednodusovat. Ale dik za radu.
Vedeli by ste mi povedat ako by sa to riesilo keby som chcel zapojit hada trebars z 15 alebo 20 led?
thx
Kód: Vybrať všetko
byte led[] = {1,2,3,4,5,6,7,13}; //vystupy s LED diodami
byte pocet = 8; //pocet diod
int rychlost = 50; //prestavka medzi bliknutiami
void setup() {
for(int i = 0; i < pocet; i++){
pinMode(led[i], OUTPUT); //nastavenie pinu
}
}
void loop() {
for(int i = 0; i < pocet; i++){
digitalWrite(led[i], HIGH);
delay(rychlost/1);
digitalWrite(led[i], LOW);
delay(rychlost/1);
}
}
thx
0
- roboulbricht
- Stály člen
- Príspevky: 156
- Dátum registrácie: 07 Jan 2015, 12:01
- Bydlisko: Banská Bystrica
- Vek: 54
- Kontaktovať používateľa:
Re: arduino projekty
Pokiaľ ti stačia piny na Arduine, tak zapájaš podľa tvojho príkladu. 15 sa ti ešte dá použiť, lebo môžeš použiť aj piny na Arduine, ktoré sú označená ako A0-A5. Vyskúšaj, či mu to bude fungovať aj v simulátore.
20 už takto nezapojíš, lebo na Arduino Uno (ATmega328P) máš len 13+6 pinov. Tam musíš použiť napríklad posuvný register.
https://www.arduinoslovakia.eu/page/74h ... y-register
20 už takto nezapojíš, lebo na Arduino Uno (ATmega328P) máš len 13+6 pinov. Tam musíš použiť napríklad posuvný register.
https://www.arduinoslovakia.eu/page/74h ... y-register
0
Arduino tools: AVR Timer Calculator, AVR Register Table
YouTube: Arduino
Moja hudba: SoundCloud, MuseScore
YouTube: Arduino
Moja hudba: SoundCloud, MuseScore
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: arduino projekty
Aby si mal nad čím rozmýšľať. Viem že arduinisti hw nemusia a tak končia pri knižničných funkciách, ale..
alebo
Čo sa týka pripojenia LED, tak sa síce zdá že na 20 LED to s arduinom uno už nepôjde, ale potom tu máme zase "hardveristov" a tak spravia 90 LED s desiatimi pinmi
https://en.wikipedia.org/wiki/Charlieplexing
Kód: Vybrať všetko
#include <avr/io.h>
#define RYCHLOST 50
void setup() {
DDRD = 0xFF; //cely port D nastav na vystup
}
void loop() {
for(char i =8, out=1; i; i--, out<=1){ //8 krat rotuj out dolava
PORTD = out; //zmen stav led na porte D podla out
delay(RYCHLOST);
}
}
Kód: Vybrať všetko
#include <avr/io.h>
#define RYCHLOST 50
void setup() {
DDRD = 0xFF;
}
char out=0x80;
void loop() {
if (!out){ //ak out==0 nastav vychodziu hodnotu
out=0x80;
}
PORTD = out;
delay(RYCHLOST);
out>=1; //rotuj doprava
}
https://en.wikipedia.org/wiki/Charlieplexing
0
Naposledy upravil/-a peterple v 06 Nov 2017, 18:38, upravené celkom 2 krát.
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: arduino projekty
Ano funguje. Jedno co mi nefunguje je pin "00" . Mam na nom vystup hned po zapnuti arduina. On sice spina ked ho zadefinujem, ale v pohotovostnom rezime arduina ma tam vystup cize "1" (led svieti)Vyskúšaj, či mu to bude fungovať aj v simulátore.
Ten posuvny register je celkom fajn. Jednoduche take polopatisticke asi tomu aj principialne rozumiem.
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 4 Odpovedí
- 1283 Zobrazení
-
Posledný príspevok od používateľa lucky62
-
- 10 Odpovedí
- 994 Zobrazení
-
Posledný príspevok od používateľa budvar10
-
- 20 Odpovedí
- 1485 Zobrazení
-
Posledný príspevok od používateľa jankrizan
-
- 12 Odpovedí
- 3611 Zobrazení
-
Posledný príspevok od používateľa Edgar
-
- 6 Odpovedí
- 856 Zobrazení
-
Posledný príspevok od používateľa pocitujlasku