Editor Version ×
Standard

1.Easy to use and quick to get started

2.The process supports design scales of 300 devices or 1000 pads

3.Supports simple circuit simulation

4.For students, teachers, creators

Profession

1.Brand new interactions and interfaces

2.Smooth support for design sizes of over 5,000 devices or 10,000 pads

3.More rigorous design constraints, more standardized processes

4.For enterprises, more professional users

Ongoing

STD Garek_V1

License:

Mode: Editors' pick

  • 761
  • 0
  • 0
Update time: 2020-09-28 15:02:58
Creation time: 2020-04-13 15:03:06
Description
##ElektroGarek ![jak żywy.jpg](https://cdn.discordapp.com/attachments/386853515185618947/726417932346982470/IMG_20200627_144450.jpg) ####Lutowanie: Informacje co i gdzie przylutować są dostępne w tabeli BOM*. Przeszkolenie będzie jak się zbierzemy w Kapitolu lub na Discordzie. Wizualizacja z której łatwo czerpać informacje co gdzie i w którą stronę przylutować jest dostępna niżej. Trzeba znaleźć schemat płytki, otworzyć go w edytorze używając dobrze widocznego przycisku, a następnie na gornym pasku znaleźć 3d view. Tymczasem wrzucam obrazki ukradzione z [przypadkowej aukcji na Aliexpress](https://www.aliexpress.com/item/4000209948810.html) ![Podstawowa instrukcja](https://ae01.alicdn.com/kf/H7dc3d1f1471249e1bec640155fb10fd7U.jpg) ![Praktyczne zdjęcie](https://ae01.alicdn.com/kf/Hae2a04c31770418fa5146ee4e96aafd91.jpg) ![Przycisk, identyfikacja elementów](https://ae01.alicdn.com/kf/H404682e9eac044fa8176e7d297a43be1y.jpg) ####Programowanie - wstęp Mikrokontroler najłatwiej zaprogramować używając ArduinoIDE, dostępnego [tutaj](https://www.arduino.cc/en/main/software). Po instalacji, trzeba wejść w File->Preferences->Additional Board manager URLs i dodać tam link ``` http://digistump.com/package_digistump_index.json ``` Następnie trzeba wejść w Tools->Board->Board manager, i tam wyszukać i zainstalować ``` Digistump AVR Boards by Digistump ``` Potem znowu w Tools->Board trzeba przescrollować w dół i wybrać ``` Digispark (Default - 16.5MHz) ``` a w Tools->Programmer wybrać ``` Micronucleus ``` Potem można wybrać przykładowy sketch z File->Examples->Examples for Digispark (Default - 16.5MHz) lub Built-in examples i kliknąć przycisk ze strzałką żeby skompilować i wgrać. W dolnej części ekranu IDE da znać kiedy należy odłączyć i ponownie podłączyć kabel USB, alternatywnie jeśli reset nie został wyłączony można użyć prawego przycisku żeby zresetować mikronontroler. ####Jeśli nie działa Prawdopodobnie system ma problem ze sterownikami. Aby to naprawić najlepiej ściągnąć i zainstalować paczkę sterowników dostępną [tutaj](https://github.com/digistump/DigistumpArduino/releases), bezpośredni link do pobrania: [https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip](https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip) #####Jeśli dalej nie działa Wtedy trzeba po podłączeniu Garka pod USB wejść w Windowsie w Ten komputer->Właściwości->Menedżer urządzeń, tam znaleźć urządzenie. Jeśli wszystko działa poprawnie będzie widoczne w kategorii Atmel USB Devices jako Digispark Bootloader, jeśli nie prawdopodobnie pokaże się jako niezidentyfikowane urządzenie USB. W takim wypadku trzeba ręcznie wybrać sterownik Digispark. ####Programowanie - informacje różne Chip ma wgrany bootloader [Micronucleus](https://github.com/micronucleus/micronucleus), taki sam jak w fabrycznej płytce Digispark. Wszystkie materiały na temat programowania Digisparka mają zastosowanie tutaj, z zastrzeżeniem że większośc GPIO** ma na sztywno przypisane role: - PIN0: Sterowanie oczami WS2812; - PIN1: Wyciągnięty na zewnątrz, do zagospodarowania; - PIN2: Przycisk lewy; - PIN3: Przewód D- portu USB; - PIN4: Przewód D+ portu USB; - PIN5: Przycisk prawy, reset. Digispark w ArduinoIDE ma sporo przykładowych programów, większość powinna działać. Niestety biblioteka DigiCDC służąca do emulowania portu szeregowego odmawia współpracy z Windowsem 10. ####Kod podstawowy, miganie oczami na różne sposoby przełączane przyciskiem Do działania potrzebna jest biblioteka Adafruit NeoPixel. Żeby ją zainstalować trzeba w ArduinoIDE wejść w Sketch->Include Library->Manage libraries, tam wyszukać NeoPixel i zainstalować najnowszą wersję. Trzeba zwrócić uwagę na wybranie właściwej biblioteki, na pierwszym miejscu może być inna tego samego producenta, która tutaj nie zadziała. Kod składa się głównie z przerobionego przykładu Adafruit_NeoPixel->buttoncycler, przerobionego i poprawionego w celu umożliwienia zmiany koloru w dowolnym momencie. Żeby dodać własną animację trzeba dopisać nową funkcję, dodać ją do switcha w funkcji startShow oraz zwiększyć stałą ANIMATION_NUMBER. Funkcje przy każdej zmianie kolorów wpisują do zmiennej frameTime aktualny czas w milisekundach, można używać tej zmiennej do kontrolowania szybkości animacji. Analogicznie można użyć frameIndex jako indeksu klatki w bardziej skomplikowanych animacjach. animationIndex jest używany do wyboru animacji, obsługuje go funkcja getGlobalIndex. Zmienne switched, oldState, newState i changeTime są używane do obsługi przycisku, lepiej nie używać ich w animacjach. W linii 6 po #include powinno być Adafruit_NeoPixel.h w nawiasach trójkątnych, ale ta strona to usuwa. Nie rozumiem. ```cpp // This is a demonstration on how to use an input device to trigger changes on your neo pixels. // You should wire a momentary push button to connect from ground to a digital IO pin. When you // press the button it will change to a new pixel animation. Note that you need to press the // button once to start the first animation! #include #define BUTTON_PIN 2 // Digital IO pin connected to the button. This will be // driven with a pull-up resistor so the switch should // pull the pin to ground momentarily. On a high -> low // transition the button press logic will execute. #define PIXEL_PIN 0 // Digital IO pin connected to the NeoPixels. #define PIXEL_COUNT 2 // ilość LEDów, 2 oczy #define ANIMATION_NUMBER 10 // ilość animacji, zwiększyć jeśli dodajesz animacje #define MAX_UINT16 65536 // 2^16 uint8_t animationIndex = 1;//Numer aktualnej animacji uint8_t frameIndex = 0;//Numer klatki, używane przez funkcje do zmiany kolor, globalny dla uniknięcia delay'ów uint8_t switched = false;//Czy w danej iteracji naciśnięto przycisk uint8_t oldState = LOW;//stary stan przycisku uint8_t newState;//nowy stan przycisku uint16_t changeTime = 0;//czas przejścia przycisku w stan wysoki uint16_t frameTime = 0;//Czas ostatniej zmiany klatki, dla uniknięcia delay'ów // Parameter 1 = number of pixels in strip, neopixel stick has 8 // Parameter 2 = pin number (most are valid) // Parameter 3 = pixel type flags, add together as needed: // NEO_RGB Pixels are wired for RGB bitstream // NEO_GRB Pixels are wired for GRB bitstream, correct for neopixel stick // NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels) // NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip), correct for neopixel stick Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800); void setup() { pinMode(BUTTON_PIN, INPUT_PULLUP); strip.begin(); strip.show(); // Initialize all pixels to 'off' changeTime = frameTime = millis(); } uint8_t getGlobalIndex() { const static uint8_t dbtime = 20; newState = digitalRead(BUTTON_PIN); if (oldState == HIGH && newState == LOW)//initial button press { changeTime = millis() % MAX_UINT16; } if (oldState == LOW && newState == LOW && (millis() - changeTime) % MAX_UINT16 >= dbtime && !switched ) //Button still pressed { animationIndex = (animationIndex + 1) % (ANIMATION_NUMBER + 1); switched = true; } if (newState == HIGH) { switched = false; } oldState = newState; return animationIndex; } void loop() { getGlobalIndex(); startShow(animationIndex); } uint16_t lastFrame; void startShow(int i) { switch (i) { case 0: colorWipe(strip.Color(0, 0, 0)); // Black/off break; case 1: colorWipe(strip.Color(255, 0, 0)); // Red break; case 2: colorWipe(strip.Color(0, 255, 0)); // Green break; case 3: colorWipe(strip.Color(0, 0, 255)); // Blue break; case 4: theaterChase(strip.Color(127, 127, 127), 50); // White break; case 5: theaterChase(strip.Color(127, 0, 0), 50); // Red break; case 6: theaterChase(strip.Color( 0, 0, 127), 50); // Blue break; case 7: rainbow(20); break; case 8: rainbowCycle(20); break; case 9: theaterChaseRainbow(50); break; case 10: police(250); break; } } // Fill the dots one after the other with a color void colorWipe(uint32_t c) { strip.fill(c, 0, PIXEL_COUNT); strip.show(); } void rainbow(uint8_t wait) { uint16_t thisTime = millis() % MAX_UINT16; if ((thisTime - frameTime) % MAX_UINT16 > wait) { frameTime = thisTime; frameIndex += 1; uint16_t i; for (i = 0; i wait) { frameTime = thisTime; frameIndex += 1; uint16_t i; for (i = 0; i wait) { for (int i = 0; i wait) { for (int i = 0; i wait) { strip.setPixelColor(0, strip.Color(255 * part, 0, 255 * (1 - part))); strip.setPixelColor(1, strip.Color(255 * (1 - part), 0, 255 * part)); part = 1 - part; frameTime = thisTime; strip.show(); } } // Input a value 0 to 255 to get a color value. // The colours are a transition r - g - b - back to r. uint32_t Wheel(byte WheelPos) { WheelPos = 255 - WheelPos; if (WheelPos - *BOM - Bill of materials, lista elementów z przypisaniem do symboli na płytce >- **GPIO - general purpose input/output, piny mikrokontrolera
Design Drawing
schematic diagram
1 /
PCB
1 /
The preview image was not generated, please save it again in the editor.
ID Name Designator Footprint Quantity BOM_Supplier BOM_Manufacturer BOM_Manufacturer Part BOM_Supplier Part
1 K2-1127SN-A4SW-01 SW1,SW2 KEY-SMD_ 4P-L4.3-W4.5-P3.40-LS6.0 2 LCSC HRO K2-1127SN-A4SW-01 C145886
2 ZMM3V6 D2,D1 LL-34_L3.5-W1.5-RD 2 LCSC SEMTECH ZMM3V6 C8057
3 4.7uF C2,C3 C0805 2 LCSC YAGEO CC0805ZRY5V6BB475 C326951
4 470 R1 R0805 1 LCSC Walsin Tech Corp WR08X471 JTL C384093
5 100nF C5,C4,C6,C8,C7,C9 C0805 6 LCSC WTC 0805B104M500 C94108
6 SMF30CA_C353289 D3 SOD-123FL_L2.8-W1.8-LS3.7-BI 1 LCSC Shandong Jingdao Microelectronics SMF30CA C353289
7 ATTINY85-20SU U1 SOIC-8_L5.3-W5.3-P1.27-LS8.0-BL 1 LCSC MICROCHIP ATTINY85-20SU C89852
8 WS2812S-W LED1,LED2 LED-SMD_6P-L5.0-W5.0-TL 2 LCSC Worldsemi WS2812S-W C114584
9 2KΩ L1 L0805 1 LCSC TAITEC FCM2012HF-202T02 C155075
10 U254-051N-4BH806 USB1 MICRO-USB-SMD_U254-051N-4BH806 1 LCSC XKB Enterprise U254-051N-4BH806 C319170
11 RE-H022TD-1190 (LF)(SN) CN1 HDR-TH_2P-P2.54-V 1 LCSC JST Sales America - C160332
12 66.5 R3,R4,R6 R0805 3 LCSC Walsin Tech Corp WR08X66R5FTL C424788
13 1.5K R2 R0805 1 LCSC Guangdong Fenghua Advanced Tech RS-05K152JT C304820
14 22uF C1 C0805 1 LCSC SAMSUNG CL21A226MQQNNNE C5674

Unfold

Project Attachments
Empty
Project Members
Target complaint
Related Projects
Change a batch
Loading...
Add to album ×

Loading...

reminder ×

Do you need to add this project to the album?

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn