Close

MiK

Vytvořené odpovědi

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,071. až 2,100. (celkem z 2,779)
  • Autor
    Příspěvky
  • odpověď na: Klon? ano ne #6640
    posjirka
    Účastník

    určitě je namístě zmínit HWKITCHEN kde sjem koupil svoj první Arduino Seeeduino v2
    https://www.hwkitchen.cz/
    Klasické obhcody jako např. GME mají originál ARDUINO UNO za 650Kč, klon 360Kč
    http://www.gme.cz/klon-arduino-uno-p772-163

    Já mám velmi dobré zkušenosti s MCU STORE (je i na aukru) kde pravidelně nakupujeme i pro kroužek elektra . Klon Funduino za 330 Kč s tím, že čip je v provedení DIP, takže jej mužeš vyměnit:

    k tomu bych si být tebou koupil desku na prototypy

    a desku LCD s klávesnicí

    odpověď na: Klon? ano ne #6639
    ArduXPP
    Účastník

    U ptshopu jsem taky nakupoval, prodávají klony, ale jedná se kompatibilní verze.

    Některé věci ihned nepotřebuji, ale v zahraničí nevím jestli to je bezpečné kupovat .
    Třeba aliexpress.com Čína nebo ebay.com USA atd.

    U arduino-shop jsem si chtěl něco objednat, co je mysleno tím prostředník ? Objednám si tam a oni mi to pošlou z jiné adresy třeba čínské ?

    odpověď na: Klon? ano ne #6636
    tribal.cz
    Účastník

    Z čeeských bych určitě doporučil ptshop, nebo arduino-shop.

    První jmenovaný je velmi levný, (tedy jak na co) ale obecně platí že se na něm dají sehnat pěkné věci za pěknou cenu. Prodává víceméně klony s přvodníkem ch340 . Zatímco druhý prodává převážně origo nebo takové neznáme zajímavé desky jako je digispark(bohužel jen classic, verzi pro nemají ani jako „podpulťák“), tento obchod je sice dražší ale velmi roste za půl roku co sem u něj udělal první a zatím poslední objednávku se rozšířil o více jak 100%. Tenkrát fungoval ještě jako sekce na laser-shopu. Od té doby ho sleduji a dá se říci že každý měsíc rozšíří svojí nabídku o několik (1-10) kusů.

    Jinak samozřejmě kupovat v zahraničí, tyto e-shopy jsou kvůli ne ideálním cenám vhodné akorát když potřebuješ něco rychle a nemůžeš čekat 2-3 týdny. I když arduino-shop je jen prostředník. Často narazíž u produktu na oznámení přijímáme předobjednávky což je zavádějící, ale znamená to jen že to prostě nemají skladem a musíš si počkat něž to ze zahraničí přijde. Skladové zásoby mají minimální.

    odpověď na: Klon? ano ne #6635
    ArduXPP
    Účastník

    Máte nějaké doporučené obchody, kde se dá koupit arduino levně a jiné součástky ?

    odpověď na: Klon? ano ne #6634
    posjirka
    Účastník

    asi přesnější vysvětlení najdeš tady:

    Mám funkční Arduino, nebo zmetek?

    Jinak u CH340G je potřeba najít na netu ovladač pro tyto čipy ale ani to není neřešitelný problém:

    CH340G converter Windows 7 driver download


    jen to není řešení plug n play. Prostě musíš si s tím vyhrát.

    Pokud vybíráš arduino pro začátečníka podívej se aby nemělo čip CH340g a nebyl to „noname“. Zkus řadu freeduino, seeeduino, freaduino, red board, …
    Jinak ztratíš tím zbytečně času pátráním jak nahrát „hello world“. Jako druhé si už kup co uznáš za vhodné.

    je otázka co s tím chceš dělat. Pro uplný začátek je super řada UNO, pro další řešení bych šel spíš do NANO nebo Micro případně samotný čip bez převodníku USB/UART

    odpověď na: c# a arduino seriova komunikace #6633
    dehtak
    Účastník

    Myslim ze jsem na to prisel, jeste to nemam otestovany uplne. Ma to cosi spolecnyho s delagatama a invoke , vubec nevim o co se jedna

     public partial class Form1 : Form
        {
    
            public delegate void DataReceivedEventHandler(int data);
            public event DataReceivedEventHandler OnSerialDataReceived;
    
     
    
            public Form1()
            {
                InitializeComponent();
                Control.CheckForIllegalCrossThreadCalls = false;
    arduino.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.DataReceivedHandler);
                OnSerialDataReceived += new DataReceivedEventHandler(SepnutySpinac);  
            }
            
    
            private void Form_load(object sender, EventArgs e)
            { 
                arduino.PortName = Properties.Settings.Default.ArduinoPort;
                arduino.BaudRate = Properties.Settings.Default.ArduinoBaudrate;
    
                try{
                    arduino.Open();
                    ArduinoSend(1, 1, 1);                
                }catch{
                    MessageBox.Show("Arduino neni pripojeny !!");  
                }
            }
    
            public void SepnutySpinac(int data)
            {
                this.Invoke(new EventHandler(delegate
                {
                    richTextBox1.Text += "" + data+"\n";  
                   
                }));
            }
    
            public void ArdConnected(bool v)
            {
                this.Invoke(new EventHandler(delegate
                {
                    if (v) { ArduinoStatus.Text = "Pripojeno"; } else { ArduinoStatus.Text = "Nepripojeno..."; }
                }));
            }
    
            void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
            {
                int spinac = 0; 
                int i = arduino.BytesToRead;
                if (i >= 2)
                {
                    byte[] data = new byte[i];
                    arduino.Read(data, 0, i);
                    if (data[1] == 1 && data[0] == 1) { ArdConnected(true); }
                    if (data[1] == 2) {spinac = data[0];} 
                    
                    if (OnSerialDataReceived != null){ OnSerialDataReceived(spinac); }
                }              
            }
    odpověď na: c# a arduino seriova komunikace #6628
    dehtak
    Účastník

    Abych vysvetlil o co se jedna. Jde o desku ovladajici elektroniku v domacim kine. Roztahovani zavesu, spusteni vodopadu, nekolik kanalu svetel , stmivani (ruzne nastavitelne efekty. Fotku plosnaku sem dal do prilohy.
    Dejme tomu ze kanal 1,2,3 je v podstate 1 RGB kanal crevena,zelena, modra , kanal 24 a 25 jsou 2 rele ktere prepinaji 12 V jednou stav 1 = +- stav 2 vypnuto stav3 -+
    Pro motor ktery zveda oponu. Vsechny tyhle vlastnosti kanalu jsou ulozeny v programu v pc. Kde si uzivatel naprogramuje co ma jakej kanal delat kdy se spinat. Tak treba pro kanal1 (tj na desce kanal 1,2,3) si nastavi ze se zapne cervene svetlo 10 sekund bude svitit pak se ztmavy pomalu dalsich 10 sekund az do vypnuti. Vsechno proste bude neprogramovatelne v pocitaci a ten jen bude odesilat data v arduinu.
    Stejne jako tech 16 spinacu v programu v pc si uzivatel navoli jakej spinac ma co delat. pokud se sepne spinac arduino odesle pocitaci ten najde patricnou sekvenci dat pro tento spinac a posle to zaptky arduinu. Dejme tomu spinac jedna ma rosvitit 1 svetlo cerveny 2 bili ale jen napul a zapne treba vodopad. Arduino odesle prikaz 1,2 pocitac koukne prvne na cislo 2 vi aha to je prikaz pro spinace vezme cislo 1 a vi aha to je spinac jedna , najede si do databaze vybere patricny data a odesle arduinu
    1,255,2 // 1 svetlo cerveny
    4,127,2 // kanal 1 2 svetla pul cervena
    5,127,2 // kanal 2 2 svetla pul zelena
    6,127,2 // kanal 3 2 svetla pul modra
    30,255,2 // zapne se vodopad.
    Jde o to ze v seriovy komunikaci nemuzu pouzivat Delay nebo thread.Sleep a ty data je potreba posilat co nejrychleji. Jelikoz tam jde o cas .
    Vsechno uz mam hotovy az na to ze nemuzu z kompu poslat zpracovana data
    jde maximalne poslat 1 sekvence 3 cisel ale odezva je dost dlouha asi 100ms
    pri odeslani vice sekvenci se ztrati spojeni s arduinem . Skousel jsem vsechno delay thread sleeep mezi sekvencemi nebo pockat 1 sekundu co se data prijmou a pak odeslat zpracovana data. Pokazde je to stejny .
    Prez try { odeslat} catch{vypys chybu} to nevyhazuje zadny chyby.Zkousel jsem i zavrit port a znovu ho otevrit a poslad data. Taky nejde

    Mozna by ste me mohli poradit serial je mozna dost pomalej nemel bych pouzut lan nebo neco jineho , nebo ted jsem narazil na docela zajimavou knihovnu pro arduino jmenuje se to cmdMessenger CmdMessenger Mate s tim nekdo zkusenosti ? Nebylo by mozna lepsi pouzit toto ?
    V podstate moje seriova komunikace vali perfektne a nerad bych ted prepisoval kod pro arduino a komplet program kvuji jiny seriovy komunikaci. Myslim ze problem je jen v ty funci v C# DataReceivedHandler jelikoiz je to funkce cteci z arduina a nemuzu z ni volat funci zapisovaci do arduina. Zkousel jsem ze to i tak ze funkce DataReceivedHandler nastavi statickou promenou spinac = prijata data a pak prez timer se kouknu jestli spinac ma nastavena data a zpracuje pozadavek a odesle. Taky nejde. Proste se ty funkce musi od sebe oddelit funkce precte nastavi a ukonci se. Druha funkce precte nastaveni zpracuje a odesle. Ale jak to kua vyresit.

    Attachments:
    odpověď na: Klon? ano ne #6627
    ArduXPP
    Účastník

    Ten šum na analogových vstupech, má to nějaký vliv ?

    odpověď na: c# a arduino seriova komunikace #6624
    dehtak
    Účastník

    u arduina mam v loop

       if(Serial.available()==3){
        int inData[3] = { Serial.read(), Serial.read() , Serial.read()};
       // odesle odpoved zda je arduino pripojeny 
        if (inData[2]==1){SendData[0]=1; SendData[1]=1; Serial.print(SendData);     
        // jedna se o akci nastavit kanal odesle prijmuta data funkci setRGB 
        if (inData[2] == 2){
            setRGB(inData[0],inData[1]); //odesle TLC5940    
       }
      }
    odpověď na: Klon? ano ne #6620
    posjirka
    Účastník

    záleží jaký klon máš na mysli.
    Obecně jsou na originální desky použité „testované“ proesory, na klony dají co jim přijde pod ruku. navíc některé klony využívají jako převodník USB-UART čip CH340G místo původních FT232, nebo Atmega8 (s programem převodníku).

    Co se týká samotných procesorů, občas narazíš na téme stability klonů, šumy na analogových vstupech, ….
    Já třeba používám klon SEEEDUINO V2 a jsem nadmíru spokojen. Krom toho mám jetě noname klon Arduino mini pro a pro ostatní aplikac epoužívám samotné čipy + krystal programované přes ICSP port (Arduino dělá programátor). …
    Snad jsem pomohl

    odpověď na: Watt meter pomocí TA12-100 #6619
    posjirka
    Účastník

    tady jsi ve střídavé soustavě. Jaký máš kosinus fi ?
    Ten se i mění podle typu zátěže (kapaciní, indukční, …)

    odpověď na: Bezdrátová komunikace #6617
    alan
    Účastník

    Zkoušel jsem také přidat další funkci níže v programu poslat. Dal jsem tam pauzu 20 vteřin než se pošle „end“. Ale mám s tím podoboný problém, Tentokrát jsem schopen odeslat čísla najednou ale celý program čeká 20s. Místo toho aby mi to nejdříve odeslalo čísla 123 a pak po 20s end, tak mi to odešle end a až pak čísla a pak znovu po 20 vteřinách end. Což nechápu, protože nedjříve volám void loop a az pak void poslat.
    end
    123

    end

    
    void setup (){
      Serial.begin(9600);
      Serial.flush();
      digitalWrite (13, HIGH);      //turn on debugging LED
    }
    
    void loop (){
    
      int i=0;
      char commandbuffer[100];
    
      if(Serial.available()){
         delay(100);
         while( Serial.available() && i< 99) {
            commandbuffer[i++] = Serial.read();
         }
         commandbuffer[i++]='\0';
      }
    
      if(i>0)
         Serial.println((char*)commandbuffer);
         
    poslat();
    }
    
    void poslat(){
      
      delay(20000);
      Serial.println("end");
    
      
    }
    
    
    odpověď na: Bezdrátová komunikace #6602
    alan
    Účastník

    Nevím proč, ale když nechám v arduinu jen `byte byteRead;

    void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600);

    }

    void loop() {
    // put your main code here, to run repeatedly:

    if(Serial.available( )){
    byteRead = Serial.read();
    Serial.write(byteRead);`
    Přečte a odešle mi to jednotlivá čísla dohromady. Tudíž, když zadám třeba i posloupnost dlouhoo(123456789), zobrazí se to i ve stejném pořadí. Když jsem zkoušel upravit kod v arduinu podle vašich rad, tak už v sériovém monitoru mi to ukazovalo ty prázdné znaky postupně „1 2 3 4“. Takže i kdyby se mi to povedlo úspěšně načíst v matlabu, tak by to odeslalo dřív další posloupnost než je potřeba. Myslím si, že je problém jen v arduinu, tam prostě potřebuji přijat ty čísla dohromady, pak je i dohromady odeslat. Počkat chvíli a odeslat nějaký indikátor, který budu schopný v matlabu načíst, když ho načtu, tak azdám další posloupnost čísel z klávesnice.
    Dám sem ještě originální kód, který používám v matlabu, ještě bez toho kroku kde má porovnat string nebo netisknutelný znak.

    
    clear all;
    clc;
    
    b=Bluetooth('HC-05', 1); %vytvoreni bluetooth objektu
    
    i = input('Zadej posloupnost: ','s'); % Zadávání číselné posloupnosti z klávesnice
    fopen(b); %otevreni komunikace
    
    fwrite(b,i); %zapis ciselne posloupnosti
    
    d = fscanf(b, '%s');   % oskenovani prijatych dat
           
       
       disp('Zadana posloupnost: '); %vypise na monitor
        disp(d);
    
        fclose(b);
        
    odpověď na: Bezdrátová komunikace #6601
    Zbyšek Voda
    Účastník

    Takže to bude spíš něco jako:

    if(Serial.available()){
    	prijato = Serial.read();
    	if(prijato == start){
    		prijato = Serial.read();
    		while(prijato != stop){
    			prijato = Serial.read();
    			//zpracování přijatých dat
    		}
    	}
    }
    odpověď na: Bezdrátová komunikace #6600
    posjirka
    Účastník

    to je přesně ono …
    a na druhé straně čekáš na přijem znaku „start“, pak budeš číst všechno ve smyčce dokud nepřijmeš znak „stop“

    odpověď na: Bezdrátová komunikace #6596
    alan
    Účastník

    Abych byl upřímný, tak úplně nevím co máte namysli nebo jak to mám zakomponovat do programu. Měl bych tedy na začátku programu vytvořit, ty proměnné

    char start = char(1);
    char stop = char(2);
    

    A poté upravit to přijímání a odesílání?

    
     if(Serial.available( )){
      byteRead = Serial.read();
      Serial.write(start);
      Serial.write(byteRead);
     Serial.write(stop);
      delay(20000);
      Serial.write("e");
    
    
    odpověď na: Bezdrátová komunikace #6594
    Zbyšek Voda
    Účastník

    Řekl bych, že tím Posjirka myslel to, že si vyberete dva znaky, které budou ohlašovat začátek a konec posílaného řetězce – ty budou vždy stejné, ať budete posílat cokoliv.

    Aby nemohlo dojít k tomu, že budete posílat data, která by mohla obsahovat počáteční, či koncový znak, navrhuje použít netisknutelné znaky – například ty, které mají v ASCII tabulce hodnotu 1 a 2. char(1) a char(2) tedy reprezeentují dva znaky s touto hodnotou.

    Mějme tedy dva znaky:

    char start = char(1);
    char stop = char(2);

    Obě strany pak budou vědět, že to, co přijaly mezi znaky 1 a 2 je požadovaná zpráva.
    Tedy pošlete start data stop.

    Lepší? 🙂

    odpověď na: Bezdrátová komunikace #6593
    alan
    Účastník

    Jde o to, že ta posloupnost čísel bude vždy jiná. Takže nemůžu nastavit natvrdo o bude začátek a co konec komunikace. Jinak nevím co jste tím myslel.

    odpověď na: Bezdrátová komunikace #6592
    posjirka
    Účastník

    Navrhni si komunikační portokol.
    asi bych šel cestou netisknutených znaků.
    Postě jeden znak bude označovat začátek komunikace, druhý konec komunikace.
    Třeba Char(1) bude začátek, char(2) bude konec. Vše mezi tím je string.

    odpověď na: Bezdrátová komunikace #6591
    alan
    Účastník

    Ještě pro vysvětlení by to mělo být takhle

    1. nejdříve odeslat 123 z amtlabu do arduina a ihned zpátky do maltabu
    2. spoté poslat string „e“ z arduina do matlabu
    3. tento string porovnám v matlabu a odešlu další čísla do arduina

    odpověď na: Digispark USB ATtiny85 Mini Arduino #6572
    tribal.cz
    Účastník

    tento problém jsem měl také a řešení je prakticky na facku kterou jsem si chtěl dát když se mi poprvé podařilo nahrát program. Pokud máš vše nainstalované podle toho http://digistump.com/wiki/digispark/tutorials/connecting. Tak dále postupuj následovně z příkladu vyber například blink. Poté bez zapojené desky do pc dej náhrat program. Ve stavovém řádku se ti zobrazí tato informace:

    Projekt zabírá 718 bytů (11%) úložného místa pro program. Maximum je 6 012 bytů.
    Globalní proměnné využívají 9 bytů dynamické paměti.
    Running Digispark Uploader…
    Plug in device now… (will timeout in 60 seconds)

    Nyní máš 1 minutu na připojení digisparku po jeho zapojení se vše nahraje a bude fungovat. Na linuxu je to trochu složitější je potřeba doinstalovat nějaké utilitky.

    Je to řešené takto protože digispark využívá jako uploader micronucleus. Nikoliv standartní arduino nástroje

    posjirka
    Účastník

    máš 5 variant:
    1, použij jiný připojovací bod napíjení. Na Arduinu máš vstup Vin a to je to samé jako napájecí konektor.
    2, jdi cestou vlastního zdroje : stabilizátor 7805 + pořádné kondenzátory na vstupu.
    Pak to přivedeš na +5V a je hotov.
    3, Použij napájení přes USB. Prost2 nabije4ku na mobil p5es redukci na velke USB.
    4, Bateriové napájení
    5, na vstup připájej superkondenzátor o kapacitě třeba 1 až 10F. Ten je malý a je schopný ti překlenout tuto kolizní dobu. Pozor na velikost napětí ! Nejspíš budeš muset dát 2 do serie.

    Simakai
    Účastník

    Ahoj všem,

    narazil jsem na problém s napájením. Natočil jsem krátké video, kde je to ukázané

    https://youtu.be/pK4rGK4NWjo

    Jde o to, že když zahýbu s napájecím kabelem, tak se megaduino resetne, vypne, protože mu vypadne „šťáva“. Koncovka adaptéru se v „zástrčce“ trochu hýbe.

    Jak se to dá řešit?

    Problém je, že deska je součástí krabice, ke které je připojených několik termočlánků, a loguje z nich teploty. Krabice by právě měla být napájená z adaptéru. Ale pokud do ní někdo drbne, což se „v provozu“ může stát, tak se megaduino resetne a je to v čudu.

    odpověď na: Napájení Arduina #6561
    TomasN
    Účastník

    Díky za odpověď. Je rozdíl, když použiji 7805 s kondíky a budu Arduino napájet přes USB port? Tak jsem to taky zkoušel a neuspěl jsem….

    odpověď na: Napájení Arduina #6560
    posjirka
    Účastník

    jojo zdroje. Já používám Arduino jako vývojový kit a pro reálný výrobek používám samotný čip AT Mega 328 + krystal a stadardní zdroj ze 7805 a kondenzátory 1m0.
    Originální Arduino má stabilizátory pro max. 150mA a kondenzátory 47u. To není nic moc.
    čip programuju přes icsp rozhraní.

    odpověď na: Individuálne adresovateľný RGB led pás #6546
    dodo1001
    Účastník

    Toto sú tie 3 cykly:

    odpověď na: Propojeni nastenneho vypinace s Arduinem #6544
    majkee
    Účastník

    Díky za odpoved a priklad posjirko,

    zkusim tedy objednat normalni otocny vypinac typu 0->1->0 a rozchodit to s ledkou pro test.

    Prislo mi akorat elegantnejsi pouzit pouze tlacitko pro kratky pulz, nez tam drzet hodnoty HIGH, LOW dle stavu vypinace, ale snad to tedy nicemu nebude vadit.

    Predpokladam, ze vypinac aby se choval jako tlacitko nepredelam 😉

    Michal

    odpověď na: Propojeni nastenneho vypinace s Arduinem #6543
    posjirka
    Účastník

    trochu nechápu požadavek = dotaz.
    Potřebuješ mít vypínač/tlačítko na stěně (klasické na 230V) a porpojené s arduinem.
    Když stisknu tlačítko/vypínač tak arduino něco udělá.
    Resp. bude reagovat na změnu stavu tlačítka, takže ať nastane zapnutí ne bu vypnutí arduino musí udělat příslušnou akci.

    Zjednodušeně řečený příklad : na arduinu je LED dioda na pinu č.13.
    Na pinu 2 a 3 bude po jednom vypínači.
    1, Přepnu jeden vypínač = LED se rozsvítí
    2, přepnu libovolný vypínač = LED zhasne.
    3, přepnu libovolný vypínač = LED se rozsvítí.

    Chápu to správně?

    Pokud ano je třeba si uvědomit, že přepnutí vypínače neznamená pevné a trvalé spojení kontaktů. Realitou je, že přepnutí doprovází spoustu hazardních impuzů, které po chvilce utichnou. Takže rychlost arduina/atmegy je spíš na škodu. Budeš muset udělat to, že uděláš tzv. „switch boucing“.
    Já to třeba řeším časovou prodlevou.
    Zjistím si stav tlačítek a když se změní, tak určitou dobu (cca 250ms) na další změnu nereaguji.

    odpověď na: 1-wire teplomer a bluetooth #6537
    posjirka
    Účastník

    po hrubé kontrole to vypadá funkčně.
    Máš tam 2x delay podle mě zbytečně.
    Jen výsledný proces podmínky „if“ bych dal do složených závorek.
    Napadá mě, že jestli se neresetuje sám procesor.
    Bluetooth modul má celkem velkou spotřebu a po čase může zahřát a přetížit stabilizátor na desce. TO by pak znamenalo reset.
    Dej si na začátek něco jako text „start“.
    Když se ti objeví před změnou hodnot „start“ tak se ti resetoval čip.

    i tak neni nic ztraceno. můžeš si ti hodnoty zaznamenat do EEPROM a při startu si je znovu načíst. Vlastně by pokračoval tam, kde posledně skončil.
    Po stisku tlačítka (nový tlačítko) + reset by si ty udaje mohl resetovat.
    TO udělal tjde. jen pozor EEPRm má max.100 000 zápisu do každé buńky. Pak ta bunka není stabilní.

    odpověď na: Príkaz switch #6534
    poprad
    Účastník

    Myslel jsem si to, jen jsem se chtěl ujistit. Ale je to škoda….

Aktuálně je na stránce zobrazeno 30 příspěvků - 2,071. až 2,100. (celkem z 2,779)