Kirjoitusalusta.fi
Koko ruutu

Server Notice:

hide

Julkinen työtila Latest text of pad hacklab-arduinokurssi Tallennettu Maaliskuu 18, 2014

 
     
 
 
  
 
 
Helsinki Hacklab - Arduino-workshop
 
Hyviä kytekntäkalvoja löytyy täältä: http://www.oomlout.com/a/products/ardx/
 
e
Newbie-lecture
  • Useful for introducing new people to Arduino, and e.g. for conventions and such.
  • Connecting LED to 5V and GND on arduino with a resistor
  • Connecting the LED to pin 13 and making it blink
  • Edit the program, change blinking time and pattern
  • Introduce RGB LED, wire it up with resistors to pins 9, 10, 11
  • Introduce PWM, make the RGB led fade
  • If there is still interest and time, introduce inputs, e.g. potentiometer, and use it to control led fade speed or color or other variables.
 
 
TODO: 
  • Arduino environment can cause problems, check board type and serial port combination with blinking LED example as soon as possible (hint: unplug/plug USB cable)
  • Have 2 extra computers ready in case people forget to bring own ones or they run into environment problems
  • Common cathode LEDs would be a bit easier to grasp.
  • Better examples
  • Remember to specify pinmode in the start, it's missing for some arduino examples and causes loss of time on debugging
  • Some examples of function use for things like setColor(), and different color fades - making it easier to create more interesting programs faster
  • Maybe even write the animation library that takes care of fading and tweening pins between values.
  • Mount some of the arduinos (in a removable way) on wood panels together with a breadboard
 
Group workshop session
  • After people have learned the basics
  • Idea is to have the people build some interesting device with many parts together
  • Split into 2-3 person groups, each group works on some specific part of the final device
  • The general subdivision of the device can be done in advance by the organizers, as well as the interfaces between the parts.
  • Each part could have an own arduino board for easiest division of work.
  • But could also be a function or set of functions in arduino environment, and a breadboard with interfaces to the arduino -> more useful for actual devices, and easier for participants to replicate
  • Requires merge of the code (opportunity to learn github, but for sake of simplicity could be done using etherpad).  Merge could be done by one of the organizers if necessary.
  • Initial base code could also be copied from etherpad..
  • In subsequent workshop, people could create a circuit board and build a copy off the device for themselves
  • Device ideas:
  • Wake up light alarm clock with moodlight, brighlight, and birdsound, etc.
  • Has modes that can be switched between manually, or set to activate at certain times of the day
  • Session 1
  • Clock display on LED segments or LCD panel
  • Possibly clock crystal to keep accurate time
  • Driving 12 volt halogen light, also power input for the clock (arduino can run off 12V)
  • Maybe use 12V Led light instead of halogen, halogen grows pretty hot and needs correctly designed case
  • Might use power LEDs, or LED light strips (available..) + some bright warm white leds
  • RGB Moodlight, and modes for it
  • UI for doing clock settings and mood selection and editing
  • Set wakeup time
  • Select mood
  • Edit mood?
  • Button panel
  • Display UI on LCD panel or alphanumeric LED segments
  • Sound part
  • Read sounds from SD card, or generate them on arduino
  • Trigger them randomly depending on mood settings and events
  • Session 2
  • Finishing whatever was unfinished from session 1
  • Designing and building the enclosure
  • Designing and etching the PCBs
  • Maybe use frizing?
  • Drilling and soldering the PCBs
  • Program AVR chips with the sketch on a programmer
  • Reactor panel?
  •  
 
 
 
 
Secondbie-lecture 
  • For people that already have been on the newbie lecture, or know the basics
  • Main goal is to learn more about sensors and input, as well as various interesting things that can be controlled or done with arduinos
  • Photoresistor
  • Buttons
  • Potentiometer
  • Servo
  • Sound
  • Using LCD displays
  • Example projects
  • Spelit -type of reaction speed game
 
 
Advanced lectures
  • For people that already have some electronics and programming knowledge
  • How to drive stepper motors in microstepping mode (software PWM)
  • How to emulate keyboard/joystick with Arduino UNO (USB-HID)
  • Playing sound and samples from an SD card or similar (Project: Talking robot!)
 
 
 
Ostoslistaa:
  • ~5 Photoresistors
  • ~10 Common cathode RGB LEDs (or alternatively compensate for common anode in example code)
  • ~5 potentiometers
  • ~5 servos
  • ~10 push buttons for breadboard
  • Sound output circuits?
  • Small speakers x 5
 
 
 
Sound and servo shields for arduino could be suitable PCB projects
 
 
 
 
Tutorial & project idea linkgs: 
  • Simple tutorials with printable breadboard overlays:
  • Tutorials for various projects (including animatronics): 
 
 
 
TODO: Move to hackweekend planning page:
 
PCB making and soldering lecture
  • We'll design a PCB with eagle, and make it with UV mask and copper etching technique, then drill holes and solder in components.
  • A few example schemes given
  • Could be held on a hackweekend
 
3D printing workshop
  • Learn to create and print a 3D model
  • could turn out to be very popular, be prepared (two printers needed?)
  • Also something for the hackweekend.
 
Robot workshop 
  • Building a simple robot
  • For hackweekend?
 
 
 
 
 
 
Last years notes:
 
 
Pidetään myös altpartyillä
  • temmi pitää yhteyttä alt-orgiin
 
Osaanottajamäärää rajoittaa lähinnä tila ja opetusläppärit - tällä hetkellä 6 kpl.
  • Optionaalisesti voi olla kaksi henkilöä / läppäri
 
Kurssin kohderyhmä ja oletettu osaamistaso
  • mikro-ohjaimista kiinnostunut mutta muuten taidoton
  • saattaa osata ohjelmoida tai ainakin ymmärtää ohjelmoinnin perusteista ettei DWIM-kieliä ole olemassa
 
Opetusohjelmasta:
  • Jaettu jaksoihin jossa jokaisessa kytkentä, ohjelma, ja lyhyt teoria speaking pointti
  • Jokaisen sähkökytkennän esittely lyhyesti teorioineen
  • Joka sähkökytkennällä on oma koodinpalansa joka myös esitellään siinä samassa
  • Jaksot rakentavat edellisen kytkennän päälle, lopputuloksena Aika Makee Säädettävä Äänellinen Värivalovilkutusvehje
  • Jokaisen jakson jälkeen on hyvä antaa aikaa oppilaiden tehdä hands on kokeilua ja sulattaa tietoa.
 
Opetusohjelma
  • Yksinkertainen led kytkentä (the very basics) - Slidet [ ] Schema [x] Koodi [NA] - 00_Basic_Led
  • Kytkentä:  Arduinon +5v ja groundin väliin etuvastuksella (ei väliä kummalla  puolella vastus on tai kummin päin, ledillä on väliä kummin päin on (jos  väärin päin niin ei syty))
  • Ledin pitäisi loistaa, hyvä!  Ensimmäinen askel tehty
  • Jos ei, tarkista ledin suunta, poweri, kytkennät, ledin toimivuus
  • Teoria: Pari lausetta siitä mikä on vastus, mikä on LED, ja mikä on etuvastus.
  • Vilkkuled - Slidet [ ] Schema [x] Koodi [x] - 01_LED
  • Kytkentä: Kytketään ledi output pinniin (digital 13 tjms) ja groundin väliin etuvastuksella
  • Ohjelma: Arduino ympäristöstä avataan esimerkeistä blinking led ohjelma
  • Arduino ohjelma uploadataan arduinolle
  • Ledin pitäisi vilkkua
  • Jos ei, tarkista ledin suunta, kytkennät, että ohjelma uploadaantuu
  • Teoria:  Mikä on mikrokontrolleri (pieni ohjelmoitava tietokone jossa suoraan  output pinnejä), mikä on arduino (open source piirilevy  mikrokontrollerilla ja ympäristö sen ohjelmoimiseen).  Mikä on tietokoneohjelma (sarja käskyjä - katso esimerkkiohjelma).  Mikä on workflow - kirjoitetaan ohjelma, painetaan nappia, ja ohjelma siirty mikrokontrollerille jos kaapeli on kytkettynä ja asetukset oikein).
  • Hands on: Säädetään vilkkumisnopeutta muuttamalla ohjelmaa, tehdään eri vilkkupatterneja, kokeillaan RGB ledeillä
  • RGB Led - Slidet [ ] Schema [x] Koodi [x] - 02_RGB_LED
  • Teoria: Esitellään  RGB Led (common anode) - Kolme eri väristä lediä samassa kuoressa,  yhteisellä maapinnillä.  Sekoittamalla saadaan  useimmat värit.  Kuva mikä jalka on mikin.
  • Kytkentä: kytketään pisin jalka GND ja kolme muuta pinniä mikrokontrollerin output portteihin (esim 9,10,11).
  • Ohjelma: Ladataan kurssin esimerkkikansiosta RGB led vilkutin ohjelma
  • Hands on: Kokeillaan värien kombinaatioita
  • Fade-LED - Slidet [ ] Schema [02] Koodi [x] 03_RGB_Fade_LED
  • Kytkentä: Kytketään RGB led pinneihin joka on merkitty PWM:llä (9,10,11), etuvastuksen kanssa.
  • Ohjelma: Kurssin hakemistosta ladataan RGB PWM ohjelma ja uploadataan
  • Ledin pitäisi sykkiä eri värisenä
  • Teoria:  PWM Tarkoittaa sitä että nopeasti vaihdetaan virta päälle ja pois ja  vaihdetaan osuutta kuinka pitkään ledi on joka jaksossa päällä.   Käytännöllisin tapa himmentää ledejä jos halutaan tarkkaa kontrollia  himmennysasteelle.  
  • Esitys: Havainnollistetaan oskiloskoopilla tuotettua PWM signaalia
  • Hands on: Vaihdellaan nopeutta, muutellaan ohjelmaa, kokeillaan eri värejä, tehdään rgb ledi demoja
  • Säätöpyörä - Slidet [ ] Schema [ ] Koodi [ ]
  • Kytkentä: Säätövastus (toinen puoli +5v, toinen GND, keskimmäinen analog input pinniin.  LEDi PWM pinniin
  • Teoria: Analog input
  • Ohjelma: Ohjelma joka säätää ledin valoisuuttaa potentiometrillä
  • Hands on: Sovellusta aikaisempiin ohjelmiin
  • Ääni mukaan - Slidet [ ] Schema [ ] Koodi [ ]
  • Kytkentä: Kytketään kaiutin plussan ja fetin drainin väliin kytkien fetin gate PWM pinniin ja source maaha
  • Aikaisemman kytkennän voi jättää paikoilleen
  • Ohjelma: Ladataan kurssin hakemistosta äänellinen led vilkutusohjelma
  • Teoria:  Ääni on ilman värähtelyä, kaiutin liikuttaa ilmaa ja tuottaa  ääniaaltoja.  Isompien virtojen kontrolloimiseen tarvitaan FET:ejä,  arduino tuottaa vain noin 20 ma joka riittää LEDille, muttei minkäänlaiselle kaiuttimelle.
  • Hands on: Minkälaisia ääniä pystyt tuottamaan?
 
 
  • Painonappi (Vois jättää pois, ei lisää kovin paljoa, ja aika tylsähkö)
  • Kytkentä: Painonappi groundin ja jonkun pinnin väliin, muu kytkentä ennallaan
  • Ohjelma: Painonapilla esim käynnistetään äänieffekti tjms.  Debounssaus?
  • Teoria:  Painonappi ei suoraan liitä tai katkaise, vaan tuottaa mikrosekunttien  pituista värähtelyä on ja off tilojen välillä kun liitos muodostuu tai  katkeaa (bouncing).  Tämän takia tarvitaan sovelluksesta riippuen  debounssaus softassa.
  • Hands on: Sovelletaan aikaisempaan ohjelmaan
  • mä haluisin painonappeja ainakin sikäli että esittelisin joka kytkennän ohjauksen ensin painonapilla manuaalisesti ennen kun käydään siihen kytkentään liittyvä koodi läpi ja tässä mielessä vois olla ihan loogista lyhyesti esitellä myös miten 1/0 signaaleja luetaan inputtina - temmi
 
 
 
Materiaali
  • Hacklab koulutusläppäri - löytyy 6 kpl 
  • Joku live-cd installatio, joss esim:
  • Ubuntu
  • Arduino ympäristö
  • avr-gcc yms
  • Koekytkentälevy - zzorn tilannut 5 kpl pientä - saapuivat
  • Arduino 
  • Dist tilannut 5 kpl
  • Olis kätevää jos sekä arduino että koekytkentälevy olis kiinnitetty pienelle puulevylle tjms niin että projekti pysyy kasassa kannatetaan
  • Hyppylankoja - on
  • Mä toin kaks pakettia niitä labille, saa käyttää vapaasti. Löytyy varmaan mun laatikosta -kim
  • Rambo toi yhden paketin hyppylankoja tilalle viime viikolla yleiseen käyttöön, sen voi yhtä hyvin pyhittää tälle.
  • Dist tuo labille jonkunmoisen läjän noita halpisjohtoja.
  • Usb johtoja
  • Messmer hankki
  • Komponentteja:
  • Tavallisia punaisia ledejä noin tusina
  • Löytyy esim zzornilta
  • RGB Ledejä noin tusina (common anode - järkevämpiä käyttää)
  • sureelectronicsista 100 kpl / 33$ 
  • zzorn tilasi, saapuivat
  • Vastuksia jotka sopivat yllä mainittuihin ledeihin
  • Tulivat RGB LEdien mukana
  • Potentiometrejä 6 kpl lineaarisia 100 kohm, 1M tjms, jotka saa reikälevyyn kiinni
  • Kytkimiä noin tusina jotka saa reikälevyyn
  • Pieniä kaiuttimia, juotetut hyppylangat x 6
  • FETejä kaiuttimien ohjaamiseen x 6 - TODO: Mikä malli olis sopiva?
 
 
 
 
 
Ennen kurssin alkua kaikilta osallistujilta ja/tai huoltajilta kuittaus että  on lukenut elektroniikkatilan säännöt (tai mitä tässä nyt sovelletaan)  ja ymmärtää ne. Ihan vaan ettei kukaan pistä esim. 9V pattereita  oikosulkuun ja räjäytä tjsp.... 
 
(Jossain (jatkokurssin) vaihees ois kiva näyttää mitä käy kun käyttää huonoa kaapelia jne niin rupee tulee siirtovirheitä, sit vois selittää että digitaalinen on oikeesti analogista ja ottaa häiriötä ympäriltään jne)